mirror of
https://github.com/recp/cglm.git
synced 2025-12-26 10:35:10 +00:00
made quat struct and also exported it
This commit is contained in:
@@ -25,6 +25,30 @@ CGLM_EXPORT
|
||||
void
|
||||
glmc_quat_init(versor q, float x, float y, float z, float w);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_euler_xyz_quat(versor q, vec3 angles);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_euler_xzy_quat(versor q, vec3 angles);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_euler_yxz_quat(versor q, vec3 angles);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_euler_yzx_quat(versor q, vec3 angles);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_euler_zxy_quat(versor q, vec3 angles);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_euler_zyx_quat(versor q, vec3 angles);
|
||||
|
||||
CGLM_EXPORT
|
||||
void
|
||||
glmc_quat(versor q, float angle, float x, float y, float z);
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
Functions:
|
||||
CGLM_INLINE void glm_quat_identity(versor q);
|
||||
CGLM_INLINE void glm_quat_init(versor q, float x, float y, float z, float w);
|
||||
CGLM_INLINE void glm_euler_xyz_quat(versor q, vec3 angles);
|
||||
CGLM_INLINE void glm_euler_xzy_quat(versor q, vec3 angles);
|
||||
CGLM_INLINE void glm_euler_yxz_quat(versor q, vec3 angles);
|
||||
CGLM_INLINE void glm_euler_yzx_quat(versor q, vec3 angles);
|
||||
CGLM_INLINE void glm_euler_zxy_quat(versor q, vec3 angles);
|
||||
CGLM_INLINE void glm_euler_zyx_quat(versor q, vec3 angles);
|
||||
CGLM_INLINE void glm_quat(versor q, float angle, float x, float y, float z);
|
||||
CGLM_INLINE void glm_quatv(versor q, float angle, vec3 axis);
|
||||
CGLM_INLINE void glm_quat_copy(versor q, versor dest);
|
||||
@@ -139,8 +145,6 @@ glm_quat_init(versor q, float x, float y, float z, float w) {
|
||||
q[3] = w;
|
||||
}
|
||||
|
||||
//TODO: telephone001's eulertoquat
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in x y z order (roll pitch yaw)
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
CGLM_INLINE versors glms_quat_identity(void)
|
||||
CGLM_INLINE void glms_quat_identity_array(versor *q, size_t count)
|
||||
CGLM_INLINE versors glms_quat_init(float x, float y, float z, float w)
|
||||
CGLM_INLINE versors glms_euler_xyz_quat(versors q, vec3s angles)
|
||||
CGLM_INLINE versors glms_euler_xzy_quat(versors q, vec3s angles)
|
||||
CGLM_INLINE versors glms_euler_yxz_quat(versors q, vec3s angles)
|
||||
CGLM_INLINE versors glms_euler_yzx_quat(versors q, vec3s angles)
|
||||
CGLM_INLINE versors glms_euler_zxy_quat(versors q, vec3s angles)
|
||||
CGLM_INLINE versors glms_euler_zyx_quat(versors q, vec3s angles)
|
||||
CGLM_INLINE versors glms_quatv(float angle, vec3s axis)
|
||||
CGLM_INLINE versors glms_quat(float angle, float x, float y, float z)
|
||||
CGLM_INLINE versors glms_quat_from_vecs(vec3s a, vec3s b)
|
||||
@@ -120,6 +126,97 @@ glms_quat_(init)(float x, float y, float z, float w) {
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in x y z order (roll pitch yaw)
|
||||
*
|
||||
* @param[out] q quaternion
|
||||
* @param[in] angle angles x y z (radians)
|
||||
*/
|
||||
CGLM_INLINE
|
||||
versors
|
||||
glms_euler_xyz_quat(versors q, vec3s angles) {
|
||||
versors dest;
|
||||
glm_euler_xyz_quat(dest.raw, angles.raw);
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in x z y order (roll yaw pitch)
|
||||
*
|
||||
* @param[out] q quaternion
|
||||
* @param[in] angle angles x y z (radians)
|
||||
*/
|
||||
CGLM_INLINE
|
||||
versors
|
||||
glms_euler_xzy_quat(versors q, vec3s angles) {
|
||||
versors dest;
|
||||
glm_euler_xzy_quat(dest.raw, angles.raw);
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in y x z order (pitch roll yaw)
|
||||
*
|
||||
* @param[out] q quaternion
|
||||
* @param[in] angle angles x y z (radians)
|
||||
*/
|
||||
CGLM_INLINE
|
||||
versors
|
||||
glms_euler_yxz_quat(versors q, vec3s angles) {
|
||||
versors dest;
|
||||
glm_euler_yxz_quat(dest.raw, angles.raw);
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in y z x order (pitch yaw roll)
|
||||
*
|
||||
* @param[out] q quaternion
|
||||
* @param[in] angle angles x y z (radians)
|
||||
*/
|
||||
CGLM_INLINE
|
||||
versors
|
||||
glms_euler_yzx_quat(versors q, vec3s angles) {
|
||||
versors dest;
|
||||
glm_euler_yzx_quat(dest.raw, angles.raw);
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in z x y order (yaw roll pitch)
|
||||
*
|
||||
* @param[out] q quaternion
|
||||
* @param[in] angle angles x y z (radians)
|
||||
*/
|
||||
CGLM_INLINE
|
||||
versors
|
||||
glms_euler_zxy_quat(versors q, vec3s angles) {
|
||||
versors dest;
|
||||
glm_euler_zxy_quat(dest.raw, angles.raw);
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion using rotation angles and does
|
||||
* rotations in z y x order (yaw pitch roll)
|
||||
*
|
||||
* @param[out] q quaternion
|
||||
* @param[in] angle angles x y z (radians)
|
||||
*/
|
||||
CGLM_INLINE
|
||||
versors
|
||||
glms_euler_zyx_quat(versors q, vec3s angles) {
|
||||
versors dest;
|
||||
glm_euler_zyx_quat(dest.raw, angles.raw);
|
||||
return dest;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* @brief creates NEW quaternion with axis vector
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user