summaryrefslogtreecommitdiff
path: root/cogl/cogl-matrix.c
diff options
context:
space:
mode:
authorRobert Bragg <robert@linux.intel.com>2010-02-25 01:40:29 +0000
committerRobert Bragg <robert@linux.intel.com>2011-05-16 14:11:47 +0100
commitd1434d1c335755955c41df0366478986e81ad650 (patch)
treeb5398f8145a351592cee4dcba5160ca2ba083cc2 /cogl/cogl-matrix.c
parentb316241612c43b24867c0be6c77b70087ead72be (diff)
downloadcogl-d1434d1c335755955c41df0366478986e81ad650.tar.gz
math: Adds an experimental quaternion API
This adds an experimental quaternion utility API. It's not yet fully documented but it's complete enough that people can start to experiment with using it. It adds the following functions: cogl_quaternion_init_identity cogl_quaternion_init cogl_quaternion_init_from_angle_vector cogl_quaternion_init_from_array cogl_quaternion_init_from_x_rotation cogl_quaternion_init_from_y_rotation cogl_quaternion_init_from_z_rotation cogl_quaternion_equal cogl_quaternion_copy cogl_quaternion_free cogl_quaternion_get_rotation_angle cogl_quaternion_get_rotation_axis cogl_quaternion_normalize cogl_quaternion_dot_product cogl_quaternion_invert cogl_quaternion_multiply cogl_quaternion_pow cogl_quaternion_slerp cogl_quaternion_nlerp cogl_quaternion_squad cogl_get_static_identity_quaternion cogl_get_static_zero_quaternion Since it's experimental API you'll need to define COGL_ENABLE_EXPERIMENTAL_API before including cogl.h.
Diffstat (limited to 'cogl/cogl-matrix.c')
-rw-r--r--cogl/cogl-matrix.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/cogl/cogl-matrix.c b/cogl/cogl-matrix.c
index 625b89f6..6e45d1db 100644
--- a/cogl/cogl-matrix.c
+++ b/cogl/cogl-matrix.c
@@ -32,6 +32,8 @@
#include <cogl.h>
#include "cogl-debug.h"
+#include <cogl-quaternion.h>
+#include <cogl-quaternion-private.h>
#include <cogl-matrix.h>
#include <cogl-matrix-private.h>
#ifdef USE_MESA_MATRIX_API
@@ -74,6 +76,13 @@ cogl_matrix_init_identity (CoglMatrix *matrix)
}
void
+cogl_matrix_init_from_quaternion (CoglMatrix *matrix,
+ CoglQuaternion *quaternion)
+{
+ _math_matrix_init_from_quaternion (matrix, quaternion);
+}
+
+void
cogl_matrix_multiply (CoglMatrix *result,
const CoglMatrix *a,
const CoglMatrix *b)