Quanternions

Quanternions — Quaternions algebra and mapping to matrix

Description

FIXME

Details

struct NcmTriVector

struct NcmTriVector {
};

FIXME


NC_TRIVEC_SCALE()

#define             NC_TRIVEC_SCALE(a, b)

NC_TRIVEC_NEW

#define NC_TRIVEC_NEW {{0.0, 0.0, 0.0}}

NC_TRIVEC_SET_0()

#define NC_TRIVEC_SET_0(v) memset(&(v), 0, sizeof(NcmTriVector))

NC_TRIVEC_MEMCPY()

#define NC_TRIVEC_MEMCPY(a, b) memcpy (&(a), &(b), sizeof (NcmTriVector))

NC_TRIVEC_NORM()

#define NC_TRIVEC_NORM(a) sqrt((a).c[0]*(a).c[0] + (a).c[1]*(a).c[1] + (a).c[2]*(a).c[2])

NC_TRIVEC_NORMALIZE()

#define NC_TRIVEC_NORMALIZE(a) NC_TRIVEC_SCALE(a, 1.0/NC_TRIVEC_NORM(a))

NC_TRIVEC_DOT()

#define NC_TRIVEC_DOT(a, b) ((a).c[0]*(b).c[0] + (a).c[1]*(b).c[1] + (a).c[2]*(b).c[2])

struct NcmQ

struct NcmQ {
};

FIXME


NC_QUATERNION_NEW

#define NC_QUATERNION_NEW {0.0, {{0.0, 0.0, 0.0}}}

NC_QUATERNION_NEW_I

#define NC_QUATERNION_NEW_I {1.0, {{0.0, 0.0, 0.0}}}

NC_QUATERNION_SET_I()

#define             NC_QUATERNION_SET_I(q)

FIXME

q :

FIXME

NC_QUATERNION_SET_0()

#define             NC_QUATERNION_SET_0(q)

FIXME

q :

FIXME

NC_QUATERNION_NORM()

#define             NC_QUATERNION_NORM(q)

FIXME

q :

FIXME

NC_QUATERNION_MEMCPY()

#define NC_QUATERNION_MEMCPY(a,b) memcpy (a, b, sizeof(NcmQ))

FIXME

a :

FIXME

b :

FIXME

ncm_quaternion_new ()

NcmQ *              ncm_quaternion_new                  ();

FIXME

Returns :

FIXME

ncm_quaternion_new_from_vector ()

NcmQ *              ncm_quaternion_new_from_vector      (NcmTriVector v);

FIXME

v :

a NcmTriVector

Returns :

FIXME

ncm_quaternion_new_from_data ()

NcmQ *              ncm_quaternion_new_from_data        (gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gdouble theta);

FIXME

x :

FIXME

y :

FIXME

z :

FIXME

theta :

FIXME

Returns :

FIXME

ncm_quaternion_set_from_data ()

void                ncm_quaternion_set_from_data        (NcmQ *q,
                                                         gdouble x,
                                                         gdouble y,
                                                         gdouble z,
                                                         gdouble theta);

FIXME

q :

FIXME

x :

FIXME

y :

FIXME

z :

FIXME

theta :

FIXME

ncm_quaternion_set_random ()

void                ncm_quaternion_set_random           (NcmQ *q);

FIXME

q :

FIXME

ncm_quaternion_free ()

void                ncm_quaternion_free                 (NcmQ *q);

FIXME

q :

a NcmQ

ncm_quaternion_normalize ()

void                ncm_quaternion_normalize            (NcmQ *q);

FIXME

q :

FIXME

ncm_quaternion_conjugate ()

void                ncm_quaternion_conjugate            (NcmQ *q);

FIXME

q :

FIXME

ncm_quaternion_mul ()

void                ncm_quaternion_mul                  (NcmQ *q,
                                                         NcmQ *u,
                                                         NcmQ *res);

FIXME

q :

FIXME

u :

FIXME

res :

FIXME

ncm_quaternion_lmul ()

void                ncm_quaternion_lmul                 (NcmQ *q,
                                                         NcmQ *u);

FIXME

q :

FIXME

u :

FIXME

ncm_quaternion_rmul ()

void                ncm_quaternion_rmul                 (NcmQ *q,
                                                         NcmQ *u);

FIXME

q :

FIXME

u :

FIXME

ncm_quaternion_conjugate_u_mul ()

void                ncm_quaternion_conjugate_u_mul      (NcmQ *q,
                                                         NcmQ *u,
                                                         NcmQ *res);

FIXME

q :

FIXME

u :

FIXME

res :

FIXME

ncm_quaternion_conjugate_q_mul ()

void                ncm_quaternion_conjugate_q_mul      (NcmQ *q,
                                                         NcmQ *u,
                                                         NcmQ *res);

FIXME

q :

FIXME

u :

FIXME

res :

FIXME

ncm_quaternion_rotate ()

void                ncm_quaternion_rotate               (NcmQ *q,
                                                         NcmTriVector v);

FIXME

q :

FIXME

v :

FIXME

ncm_quaternion_inv_rotate ()

void                ncm_quaternion_inv_rotate           (NcmQ *q,
                                                         NcmTriVector v);

FIXME

q :

FIXME

v :

FIXME