mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
Compare commits
7 Commits
new-affine
...
v0.8.7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8cfc98d283 | ||
|
|
074189163f | ||
|
|
bfbd9ba1dc | ||
|
|
89cee7912a | ||
|
|
da5c66d735 | ||
|
|
c4b45a0917 | ||
|
|
8034073965 |
@@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.8.2)
|
||||
project(cglm
|
||||
VERSION 0.8.6
|
||||
VERSION 0.8.7
|
||||
HOMEPAGE_URL https://github.com/recp/cglm
|
||||
DESCRIPTION "OpenGL Mathematics (glm) for C"
|
||||
LANGUAGES C
|
||||
|
||||
@@ -45,6 +45,8 @@ cglm_HEADERS = include/cglm/version.h \
|
||||
include/cglm/mat4.h \
|
||||
include/cglm/mat3.h \
|
||||
include/cglm/mat2.h \
|
||||
include/cglm/affine-pre.h \
|
||||
include/cglm/affine-post.h \
|
||||
include/cglm/affine.h \
|
||||
include/cglm/affine-mat.h \
|
||||
include/cglm/vec2.h \
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#*****************************************************************************
|
||||
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([cglm], [0.8.6], [info@recp.me])
|
||||
AC_INIT([cglm], [0.8.7], [info@recp.me])
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects serial-tests])
|
||||
|
||||
# Don't use the default cflags (-O2 -g), we set ours manually in Makefile.am.
|
||||
|
||||
@@ -62,9 +62,9 @@ author = u'Recep Aslantas'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = u'0.8.6'
|
||||
version = u'0.8.7'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = u'0.8.6'
|
||||
release = u'0.8.7'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
||||
@@ -5,12 +5,6 @@
|
||||
* Full license can be found in the LICENSE file
|
||||
*/
|
||||
|
||||
/*
|
||||
Functions:
|
||||
CGLM_INLINE void glm_mul(mat4 m1, mat4 m2, mat4 dest);
|
||||
CGLM_INLINE void glm_inv_tr(mat4 mat);
|
||||
*/
|
||||
|
||||
#ifndef cglm_affine_post_h
|
||||
#define cglm_affine_post_h
|
||||
|
||||
@@ -40,6 +34,8 @@
|
||||
* @brief translate existing transform matrix by v vector
|
||||
* and stores result in same matrix
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] v translate vector [x, y, z]
|
||||
*/
|
||||
@@ -55,6 +51,8 @@ glm_translated(mat4 m, vec3 v) {
|
||||
*
|
||||
* source matrix will remain same
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] v translate vector [x, y, z]
|
||||
* @param[out] dest translated matrix
|
||||
@@ -69,6 +67,8 @@ glm_translated_to(mat4 m, vec3 v, mat4 dest) {
|
||||
/*!
|
||||
* @brief translate existing transform matrix by x factor
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] x x factor
|
||||
*/
|
||||
@@ -81,6 +81,8 @@ glm_translated_x(mat4 m, float x) {
|
||||
/*!
|
||||
* @brief translate existing transform matrix by y factor
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] y y factor
|
||||
*/
|
||||
@@ -93,6 +95,8 @@ glm_translated_y(mat4 m, float y) {
|
||||
/*!
|
||||
* @brief translate existing transform matrix by z factor
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] z z factor
|
||||
*/
|
||||
@@ -106,6 +110,8 @@ glm_translated_z(mat4 m, float z) {
|
||||
* @brief rotate existing transform matrix around X axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[out] dest rotated matrix
|
||||
@@ -131,6 +137,8 @@ glm_rotated_x(mat4 m, float angle, mat4 dest) {
|
||||
* @brief rotate existing transform matrix around Y axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[out] dest rotated matrix
|
||||
@@ -156,6 +164,8 @@ glm_rotated_y(mat4 m, float angle, mat4 dest) {
|
||||
* @brief rotate existing transform matrix around Z axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[out] dest rotated matrix
|
||||
@@ -180,6 +190,8 @@ glm_rotated_z(mat4 m, float angle, mat4 dest) {
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
@@ -196,6 +208,8 @@ glm_rotated(mat4 m, float angle, vec3 axis) {
|
||||
* @brief rotate existing transform
|
||||
* around given axis by angle at given pivot point (rotation center)
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] pivot rotation center
|
||||
* @param[in] angle angle (radians)
|
||||
@@ -216,6 +230,8 @@ glm_rotated_at(mat4 m, vec3 pivot, float angle, vec3 axis) {
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle around self (doesn't affected by position)
|
||||
*
|
||||
* this is POST transform, applies to existing transform as last transfrom
|
||||
*
|
||||
* @param[in, out] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
|
||||
@@ -5,12 +5,6 @@
|
||||
* Full license can be found in the LICENSE file
|
||||
*/
|
||||
|
||||
/*
|
||||
Functions:
|
||||
CGLM_INLINE void glm_mul(mat4 m1, mat4 m2, mat4 dest);
|
||||
CGLM_INLINE void glm_inv_tr(mat4 mat);
|
||||
*/
|
||||
|
||||
#ifndef cglm_affine_pre_h
|
||||
#define cglm_affine_pre_h
|
||||
|
||||
|
||||
184
include/cglm/struct/affine-post.h
Normal file
184
include/cglm/struct/affine-post.h
Normal file
@@ -0,0 +1,184 @@
|
||||
/*
|
||||
* Copyright (c), Recep Aslantas.
|
||||
*
|
||||
* MIT License (MIT), http://opensource.org/licenses/MIT
|
||||
* Full license can be found in the LICENSE file
|
||||
*/
|
||||
|
||||
/*
|
||||
Functions:
|
||||
CGLM_INLINE mat4s glms_translated(mat4s m, vec3s v);
|
||||
CGLM_INLINE mat4s glms_translated_x(mat4s m, float x);
|
||||
CGLM_INLINE mat4s glms_translated_y(mat4s m, float y);
|
||||
CGLM_INLINE mat4s glms_translated_z(mat4s m, float z);
|
||||
CGLM_INLINE mat4s glms_rotated_x(mat4s m, float angle);
|
||||
CGLM_INLINE mat4s glms_rotated_y(mat4s m, float angle);
|
||||
CGLM_INLINE mat4s glms_rotated_z(mat4s m, float angle);
|
||||
CGLM_INLINE mat4s glms_rotated(mat4s m, float angle, vec3s axis);
|
||||
CGLM_INLINE mat4s glms_rotated_at(mat4s m, vec3s pivot, float angle, vec3s axis);
|
||||
CGLM_INLINE mat4s glms_spinned(mat4s m, float angle, vec3s axis);
|
||||
*/
|
||||
|
||||
#ifndef cglms_affines_post_h
|
||||
#define cglms_affines_post_h
|
||||
|
||||
#include "../common.h"
|
||||
#include "../types-struct.h"
|
||||
#include "../affine.h"
|
||||
#include "vec3.h"
|
||||
#include "vec4.h"
|
||||
#include "mat4.h"
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by v vector
|
||||
* and stores result in same matrix
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] v translate vector [x, y, z]
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translated(mat4s m, vec3s v) {
|
||||
glm_translated(m.raw, v.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by x factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] x x factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translated_x(mat4s m, float x) {
|
||||
glm_translated_x(m.raw, x);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by y factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] y y factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translated_y(mat4s m, float y) {
|
||||
glm_translated_y(m.raw, y);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by z factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] z z factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translated_z(mat4s m, float z) {
|
||||
glm_translated_z(m.raw, z);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around X axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotated_x(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotated_x(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around Y axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotated_y(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotated_y(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around Z axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotated_z(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotated_z(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotated(mat4s m, float angle, vec3s axis) {
|
||||
glm_rotated(m.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform
|
||||
* around given axis by angle at given pivot point (rotation center)
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] pivot rotation center
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotated_at(mat4s m, vec3s pivot, float angle, vec3s axis) {
|
||||
glm_rotated_at(m.raw, pivot.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle around self (doesn't affected by position)
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_spinned(mat4s m, float angle, vec3s axis) {
|
||||
glm_spinned(m.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
#endif /* cglms_affines_post_h */
|
||||
184
include/cglm/struct/affine-pre.h
Normal file
184
include/cglm/struct/affine-pre.h
Normal file
@@ -0,0 +1,184 @@
|
||||
/*
|
||||
* Copyright (c), Recep Aslantas.
|
||||
*
|
||||
* MIT License (MIT), http://opensource.org/licenses/MIT
|
||||
* Full license can be found in the LICENSE file
|
||||
*/
|
||||
|
||||
/*
|
||||
Functions:
|
||||
CGLM_INLINE mat4s glms_translate(mat4s m, vec3s v);
|
||||
CGLM_INLINE mat4s glms_translate_x(mat4s m, float x);
|
||||
CGLM_INLINE mat4s glms_translate_y(mat4s m, float y);
|
||||
CGLM_INLINE mat4s glms_translate_z(mat4s m, float z);
|
||||
CGLM_INLINE mat4s glms_rotate_x(mat4s m, float angle);
|
||||
CGLM_INLINE mat4s glms_rotate_y(mat4s m, float angle);
|
||||
CGLM_INLINE mat4s glms_rotate_z(mat4s m, float angle);
|
||||
CGLM_INLINE mat4s glms_rotate(mat4s m, float angle, vec3s axis);
|
||||
CGLM_INLINE mat4s glms_rotate_at(mat4s m, vec3s pivot, float angle, vec3s axis);
|
||||
CGLM_INLINE mat4s glms_spin(mat4s m, float angle, vec3s axis);
|
||||
*/
|
||||
|
||||
#ifndef cglms_affines_pre_h
|
||||
#define cglms_affines_pre_h
|
||||
|
||||
#include "../common.h"
|
||||
#include "../types-struct.h"
|
||||
#include "../affine.h"
|
||||
#include "vec3.h"
|
||||
#include "vec4.h"
|
||||
#include "mat4.h"
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by v vector
|
||||
* and stores result in same matrix
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] v translate vector [x, y, z]
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate(mat4s m, vec3s v) {
|
||||
glm_translate(m.raw, v.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by x factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] x x factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate_x(mat4s m, float x) {
|
||||
glm_translate_x(m.raw, x);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by y factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] y y factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate_y(mat4s m, float y) {
|
||||
glm_translate_y(m.raw, y);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by z factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] z z factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate_z(mat4s m, float z) {
|
||||
glm_translate_z(m.raw, z);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around X axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_x(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotate_x(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around Y axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_y(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotate_y(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around Z axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_z(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotate_z(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate(mat4s m, float angle, vec3s axis) {
|
||||
glm_rotate(m.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform
|
||||
* around given axis by angle at given pivot point (rotation center)
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] pivot rotation center
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_at(mat4s m, vec3s pivot, float angle, vec3s axis) {
|
||||
glm_rotate_at(m.raw, pivot.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle around self (doesn't affected by position)
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_spin(mat4s m, float angle, vec3s axis) {
|
||||
glm_spin(m.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
#endif /* cglms_affines_pre_h */
|
||||
@@ -40,63 +40,6 @@
|
||||
#include "vec4.h"
|
||||
#include "mat4.h"
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by v vector
|
||||
* and stores result in same matrix
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] v translate vector [x, y, z]
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate(mat4s m, vec3s v) {
|
||||
glm_translate(m.raw, v.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by x factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] x x factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate_x(mat4s m, float x) {
|
||||
glm_translate_x(m.raw, x);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by y factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] y y factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate_y(mat4s m, float y) {
|
||||
glm_translate_y(m.raw, y);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief translate existing transform matrix by z factor
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] z z factor
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_translate_z(mat4s m, float z) {
|
||||
glm_translate_z(m.raw, z);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW translate transform matrix by v vector
|
||||
*
|
||||
@@ -156,54 +99,6 @@ glms_scale_uni(mat4s m, float s) {
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around X axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_x(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotate_x(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around Y axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_y(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotate_y(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around Z axis by angle
|
||||
* and store result in dest
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @returns rotated matrix
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_z(mat4s m, float angle) {
|
||||
mat4s r;
|
||||
glm_rotate_z(m.raw, angle, r.raw);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW rotation matrix by angle and axis
|
||||
*
|
||||
@@ -221,38 +116,6 @@ glms_rotate_make(float angle, vec3s axis) {
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate(mat4s m, float angle, vec3s axis) {
|
||||
glm_rotate(m.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform
|
||||
* around given axis by angle at given pivot point (rotation center)
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] pivot rotation center
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_rotate_at(mat4s m, vec3s pivot, float angle, vec3s axis) {
|
||||
glm_rotate_at(m.raw, pivot.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW rotation matrix by angle and axis at given point
|
||||
*
|
||||
@@ -274,21 +137,6 @@ glms_rotate_atm(mat4s m, vec3s pivot, float angle, vec3s axis) {
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief rotate existing transform matrix around given axis by angle around self (doesn't affected by position)
|
||||
*
|
||||
* @param[in] m affine transfrom
|
||||
* @param[in] angle angle (radians)
|
||||
* @param[in] axis axis
|
||||
* @returns affine transfrom
|
||||
*/
|
||||
CGLM_INLINE
|
||||
mat4s
|
||||
glms_spin(mat4s m, float angle, vec3s axis) {
|
||||
glm_spin(m.raw, angle, axis.raw);
|
||||
return m;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief decompose scale vector
|
||||
*
|
||||
@@ -346,4 +194,7 @@ glms_decompose(mat4s m, vec4s * __restrict t, mat4s * __restrict r, vec3s * __re
|
||||
glm_decompose(m.raw, t->raw, r->raw, s->raw);
|
||||
}
|
||||
|
||||
#include "affine-pre.h"
|
||||
#include "affine-post.h"
|
||||
|
||||
#endif /* cglms_affines_h */
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
|
||||
#define CGLM_VERSION_MAJOR 0
|
||||
#define CGLM_VERSION_MINOR 8
|
||||
#define CGLM_VERSION_PATCH 6
|
||||
#define CGLM_VERSION_PATCH 7
|
||||
|
||||
#endif /* cglm_version_h */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project('cglm', 'c',
|
||||
version : '0.8.6',
|
||||
version : '0.8.7',
|
||||
license : 'mit',
|
||||
default_options : [
|
||||
'c_std=c11',
|
||||
|
||||
@@ -158,6 +158,8 @@
|
||||
<ClInclude Include="..\include\cglm\simd\x86.h" />
|
||||
<ClInclude Include="..\include\cglm\sphere.h" />
|
||||
<ClInclude Include="..\include\cglm\struct.h" />
|
||||
<ClInclude Include="..\include\cglm\struct\affine-post.h" />
|
||||
<ClInclude Include="..\include\cglm\struct\affine-pre.h" />
|
||||
<ClInclude Include="..\include\cglm\struct\affine.h" />
|
||||
<ClInclude Include="..\include\cglm\struct\affine2d.h" />
|
||||
<ClInclude Include="..\include\cglm\struct\box.h" />
|
||||
|
||||
@@ -597,5 +597,11 @@
|
||||
<ClInclude Include="..\include\cglm\affine-pre.h">
|
||||
<Filter>include\cglm</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\include\cglm\struct\affine-post.h">
|
||||
<Filter>include\cglm\struct</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\include\cglm\struct\affine-pre.h">
|
||||
<Filter>include\cglm\struct</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user