NcmQ

NcmQ — Quaternions algebra and mapping to matrix.

Types and Values

Description

FIXME

Functions

NC_TRIVEC_SCALE()

#define             NC_TRIVEC_SCALE(a, b)

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])

NC_QUATERNION_SET_I()

#define             NC_QUATERNION_SET_I(q)

FIXME

Parameters

q

FIXME

 

NC_QUATERNION_SET_0()

#define             NC_QUATERNION_SET_0(q)

FIXME

Parameters

q

FIXME

 

NC_QUATERNION_NORM()

#define             NC_QUATERNION_NORM(q)

FIXME

Parameters

q

FIXME

 

NC_QUATERNION_MEMCPY()

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

FIXME

Parameters

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

Parameters

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

Parameters

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

Parameters

q

FIXME

 

x

FIXME

 

y

FIXME

 

z

FIXME

 

theta

FIXME

 

ncm_quaternion_set_random ()

void
ncm_quaternion_set_random (NcmQ *q);

FIXME

Parameters

q

FIXME

 

ncm_quaternion_free ()

void
ncm_quaternion_free (NcmQ *q);

FIXME

Parameters

q

a NcmQ

 

ncm_quaternion_normalize ()

void
ncm_quaternion_normalize (NcmQ *q);

FIXME

Parameters

q

FIXME

 

ncm_quaternion_conjugate ()

void
ncm_quaternion_conjugate (NcmQ *q);

FIXME

Parameters

q

FIXME

 

ncm_quaternion_mul ()

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

FIXME

Parameters

q

FIXME

 

u

FIXME

 

res

FIXME

 

ncm_quaternion_lmul ()

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

FIXME

Parameters

q

FIXME

 

u

FIXME

 

ncm_quaternion_rmul ()

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

FIXME

Parameters

q

FIXME

 

u

FIXME

 

ncm_quaternion_conjugate_u_mul ()

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

FIXME

Parameters

q

FIXME

 

u

FIXME

 

res

FIXME

 

ncm_quaternion_conjugate_q_mul ()

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

FIXME

Parameters

q

FIXME

 

u

FIXME

 

res

FIXME

 

ncm_quaternion_rotate ()

void
ncm_quaternion_rotate (NcmQ *q,
                       NcmTriVector v);

FIXME

Parameters

q

FIXME

 

v

FIXME

 

ncm_quaternion_inv_rotate ()

void
ncm_quaternion_inv_rotate (NcmQ *q,
                           NcmTriVector v);

FIXME

Parameters

q

FIXME

 

v

FIXME

 

Types and Values

struct NcmTriVector

struct NcmTriVector {
};

FIXME


NC_TRIVEC_NEW

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

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}}}

NCM_QUATERNION_RNG_NAME

#define NCM_QUATERNION_RNG_NAME "quaternion"