GLUS
glus_quaternion.h
Go to the documentation of this file.
1 /*
2  * GLUS - Modern OpenGL, OpenGL ES and OpenVG Utilities. Copyright (C) since 2010 Norbert Nopper
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef GLUS_QUATERNION_H_
19 #define GLUS_QUATERNION_H_
20 
27 
34 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionCopyf(GLUSfloat result[4], const GLUSfloat quaternion[4]);
35 
44 
53 
61 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionAddQuaternionf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4]);
62 
70 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionSubQuaternionf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4]);
71 
79 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionMultiplyQuaternionf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4]);
80 
87 
96 
103 
113 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotatef(GLUSfloat quaternion[4], const GLUSfloat angle, const GLUSfloat x, const GLUSfloat y, const GLUSfloat z);
114 
122 
130 
138 
147 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRxRyf(GLUSfloat quaternion[4], const GLUSfloat anglez, const GLUSfloat anglex, const GLUSfloat angley);
148 
157 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRyRxf(GLUSfloat quaternion[4], const GLUSfloat anglez, const GLUSfloat angley, const GLUSfloat anglex);
158 
166 
174 
184 
194 
202 
210 
219 GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionSlerpf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4], const GLUSfloat t);
220 
221 #endif /* GLUS_QUATERNION_H_ */
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzf(GLUSfloat quaternion[4], const GLUSfloat angle)
Creates a rotation Quaternion around a the z axis.
Definition: glus_quaternion.c:167
GLUSAPI GLUSboolean GLUSAPIENTRY glusQuaternionNormalizef(GLUSfloat quaternion[4])
Normalized a Quaternion.
Definition: glus_quaternion.c:46
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionGetEulerRzRyRxf(GLUSfloat angles[3], const GLUSfloat quaternion[4])
Extracts the Euler angles from a Quaternion, created by Rz * Ry * Rx.
Definition: glus_quaternion.c:313
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionConjugatef(GLUSfloat quaternion[4])
Calculates the conjugate of a Quaternion.
Definition: glus_quaternion.c:97
float GLUSfloat
Definition: glus_typedef.h:37
void GLUSvoid
Definition: glus_typedef.h:51
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRxf(GLUSfloat quaternion[4], const GLUSfloat angle)
Creates a rotation Quaternion around a the x axis.
Definition: glus_quaternion.c:147
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionCopyf(GLUSfloat result[4], const GLUSfloat quaternion[4])
Copies a Quaternion.
Definition: glus_quaternion.c:28
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionInverseUnitf(GLUSfloat quaternion[4])
Calculates the inverse of a unit Quaternion.
Definition: glus_quaternion.c:126
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionGetMatrix3x3f(GLUSfloat matrix[9], const GLUSfloat quaternion[4])
Creates a 3x3 matrix out of a Quaternion.
Definition: glus_quaternion.c:233
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionGetEulerRzRxRyf(GLUSfloat angles[3], const GLUSfloat quaternion[4])
Extracts the Euler angles from a Quaternion, created by Rz * Rx * Ry.
Definition: glus_quaternion.c:282
GLUSAPI GLUSboolean GLUSAPIENTRY glusQuaternionGetVector3f(GLUSfloat vector[3], const GLUSfloat quaternion[4])
Creates a 3D Vector, out of a Quaternion.
Definition: glus_quaternion.c:268
GLUSAPI GLUSfloat GLUSAPIENTRY glusQuaternionNormf(const GLUSfloat quaternion[4])
Calculates the norm of a Quaternion.
Definition: glus_quaternion.c:36
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRyRxf(GLUSfloat quaternion[4], const GLUSfloat anglez, const GLUSfloat angley, const GLUSfloat anglex)
Creates a rotation Quaternion out of Euler angels: Rz * Ry * Rx.
Definition: glus_quaternion.c:191
#define GLUSAPI
Definition: glus_function.h:38
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionIdentityf(GLUSfloat quaternion[4])
Creates the identity Quaternion.
Definition: glus_quaternion.c:20
unsigned char GLUSboolean
Definition: glus_typedef.h:21
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionGetMatrix4x4f(GLUSfloat matrix[16], const GLUSfloat quaternion[4])
Creates a 4x4 matrix out of a Quaternion.
Definition: glus_quaternion.c:205
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRzRxRyf(GLUSfloat quaternion[4], const GLUSfloat anglez, const GLUSfloat anglex, const GLUSfloat angley)
Creates a rotation Quaternion out of Euler angels: Rz * Rx * Ry.
Definition: glus_quaternion.c:177
GLUSAPI GLUSboolean GLUSAPIENTRY glusQuaternionGetPoint4f(GLUSfloat point[4], const GLUSfloat quaternion[4])
Creates a 3D Point, given as homogeneous coordinates, out of a Quaternion.
Definition: glus_quaternion.c:253
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionSubQuaternionf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4])
Subtracts two Quaternions: quaternion0 - quaternion1.
Definition: glus_quaternion.c:75
GLUSAPI GLUSboolean GLUSAPIENTRY glusQuaternionInversef(GLUSfloat quaternion[4])
Calculates the inverse of a Quaternion.
Definition: glus_quaternion.c:105
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionAddQuaternionf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4])
Adds two Quaternions.
Definition: glus_quaternion.c:65
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotateRyf(GLUSfloat quaternion[4], const GLUSfloat angle)
Creates a rotation Quaternion around a the y axis.
Definition: glus_quaternion.c:157
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionRotatef(GLUSfloat quaternion[4], const GLUSfloat angle, const GLUSfloat x, const GLUSfloat y, const GLUSfloat z)
Creates a rotation Quaternion around a given axis.
Definition: glus_quaternion.c:131
#define GLUSAPIENTRY
Definition: glus_function.h:31
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionSlerpf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4], const GLUSfloat t)
Spherical interpolation of two Quaternions.
Definition: glus_quaternion.c:345
GLUSAPI GLUSvoid GLUSAPIENTRY glusQuaternionMultiplyQuaternionf(GLUSfloat result[4], const GLUSfloat quaternion0[4], const GLUSfloat quaternion1[4])
Multiplies two Quaternions: quaternion0 * quaternion1.
Definition: glus_quaternion.c:85