Fixed Point Arithmetic  0
Fixed-point math library.
Macros | Functions
quaternion.h File Reference
#include "../quaternion.h"
#include "../vector.h"
#include "../fixed_point.h"

Go to the source code of this file.

Macros

#define _QTR(e)   s.e = df_to_f(q.e)
 
#define _QSUM(e)   s.e = df_add(q.e, p.e)
 
#define _QSUM(e)   s.e = f_add(q.e, p.e)
 

Functions

quat dq_to_q (dquat q)
 Truncate double precision quaternion to single precision. More...
 
frac q_xnormerror (quat q)
 Pseudo-error of the quaternion norm. More...
 
dquat q_scale_dq (quat q, frac f)
 Scale a quaternion by a fractional, return double precision quaternion. More...
 
quat q_scale (quat q, frac f)
 Scale a quaternion by a fractional, return simple precision quaternion. More...
 
quat q_conj (quat q)
 Conjugate quaternion. More...
 
quat q_mul (quat q, quat p)
 Quaternion multiplication, return value is simple precision. More...
 
dquat q_mul_s_dq (quat q, quat p, int f)
 Scaled Quaternion multiplication, return value is double precision. More...
 
dquat q_mul_dq (quat q, quat p)
 Quaternion multiplication, return value is double precision. More...
 
dquat dq_add (dquat q, dquat p)
 Quaternion addition (double precision). More...
 
quat q_add (quat q, quat p)
 Quaternion addition (single precision) More...
 
vec3 q_rot (quat q, vec3 v)
 Rotate 3D vector by quaternion. More...
 
quat q_xrenorm (quat q)
 Renormalize quaternion (single precision) More...
 
dquat dq_xrenorm (dquat q)
 Renormalize quaternion. More...
 
quat q_udecompose (quat q, vec_axis axis)
 Extract a component from a unit quaternion. More...
 
vec3 q_error (quat setp, quat pos)
 The magnitude of this error reaches its maximum at 90 degrees and goes to zero at 180 degrees. More...
 
vec3 q_error2 (quat setp, quat pos)
 This error has a discontinuity at 180 degrees. More...
 

Detailed Description

Author
Juan I Carrano
Andrés Calcabrini

Quaternion inline definitions

Definition in file quaternion.h.

Macro Definition Documentation

◆ _QSUM [1/2]

#define _QSUM (   e)    s.e = df_add(q.e, p.e)

◆ _QSUM [2/2]

#define _QSUM (   e)    s.e = f_add(q.e, p.e)

◆ _QTR

#define _QTR (   e)    s.e = df_to_f(q.e)