Nebula
Loading...
Searching...
No Matches
euler.h File Reference

Go to the source code of this file.

Classes

struct  QuatX
 

Macros

#define EulFrmS   0
 
#define EulFrmR   1
 
#define EulFrm(ord)
 
#define EulRepNo   0
 
#define EulRepYes   1
 
#define EulRep(ord)
 
#define EulParEven   0
 
#define EulParOdd   1
 
#define EulPar(ord)
 
#define EulSafe   "\000\001\002\000"
 
#define EulNext   "\001\002\000\001"
 
#define EulAxI(ord)
 
#define EulAxJ(ord)
 
#define EulAxK(ord)
 
#define EulAxH(ord)
 
#define EulGetOrd(ord, i, j, k, h, n, s, f)
 
#define EulOrd(i, p, r, f)
 
#define EulOrdXYZs   EulOrd(X,EulParEven,EulRepNo,EulFrmS)
 
#define EulOrdXYXs   EulOrd(X,EulParEven,EulRepYes,EulFrmS)
 
#define EulOrdXZYs   EulOrd(X,EulParOdd,EulRepNo,EulFrmS)
 
#define EulOrdXZXs   EulOrd(X,EulParOdd,EulRepYes,EulFrmS)
 
#define EulOrdYZXs   EulOrd(Y,EulParEven,EulRepNo,EulFrmS)
 
#define EulOrdYZYs   EulOrd(Y,EulParEven,EulRepYes,EulFrmS)
 
#define EulOrdYXZs   EulOrd(Y,EulParOdd,EulRepNo,EulFrmS)
 
#define EulOrdYXYs   EulOrd(Y,EulParOdd,EulRepYes,EulFrmS)
 
#define EulOrdZXYs   EulOrd(Z,EulParEven,EulRepNo,EulFrmS)
 
#define EulOrdZXZs   EulOrd(Z,EulParEven,EulRepYes,EulFrmS)
 
#define EulOrdZYXs   EulOrd(Z,EulParOdd,EulRepNo,EulFrmS)
 
#define EulOrdZYZs   EulOrd(Z,EulParOdd,EulRepYes,EulFrmS)
 
#define EulOrdZYXr   EulOrd(X,EulParEven,EulRepNo,EulFrmR)
 
#define EulOrdXYXr   EulOrd(X,EulParEven,EulRepYes,EulFrmR)
 
#define EulOrdYZXr   EulOrd(X,EulParOdd,EulRepNo,EulFrmR)
 
#define EulOrdXZXr   EulOrd(X,EulParOdd,EulRepYes,EulFrmR)
 
#define EulOrdXZYr   EulOrd(Y,EulParEven,EulRepNo,EulFrmR)
 
#define EulOrdYZYr   EulOrd(Y,EulParEven,EulRepYes,EulFrmR)
 
#define EulOrdZXYr   EulOrd(Y,EulParOdd,EulRepNo,EulFrmR)
 
#define EulOrdYXYr   EulOrd(Y,EulParOdd,EulRepYes,EulFrmR)
 
#define EulOrdYXZr   EulOrd(Z,EulParEven,EulRepNo,EulFrmR)
 
#define EulOrdZXZr   EulOrd(Z,EulParEven,EulRepYes,EulFrmR)
 
#define EulOrdXYZr   EulOrd(Z,EulParOdd,EulRepNo,EulFrmR)
 
#define EulOrdZYZr   EulOrd(Z,EulParOdd,EulRepYes,EulFrmR)
 

Typedefs

typedef float HMatrix[4][4]
 
typedef QuatX EulerAngles
 

Enumerations

enum  QuatPart { X , Y , Z , W }
 

Functions

EulerAngles Eul_ (float ai, float aj, float ah, int order)
 
QuatX Eul_ToQuat (EulerAngles ea)
 
void Eul_ToHMatrix (EulerAngles ea, HMatrix M)
 
EulerAngles Eul_FromHMatrix (HMatrix M, int order)
 
EulerAngles Eul_FromQuat (QuatX q, int order)
 

Macro Definition Documentation

◆ EulAxH

#define EulAxH ( ord)
Value:
((EulRep(ord)==EulRepNo)?EulAxK(ord):EulAxI(ord))
#define EulAxI(ord)
Definition euler.h:35
#define EulRepNo
Definition euler.h:27
#define EulAxK(ord)
Definition euler.h:37
#define EulRep(ord)
Definition euler.h:29

◆ EulAxI

#define EulAxI ( ord)
Value:
((int)(EulSafe[(((unsigned)(ord)>>3)&3)]))
#define EulSafe
Definition euler.h:33

◆ EulAxJ

#define EulAxJ ( ord)
Value:
((int)(EulNext[EulAxI(ord)+(EulPar(ord)==EulParOdd)]))
#define EulPar(ord)
Definition euler.h:32
#define EulNext
Definition euler.h:34
#define EulParOdd
Definition euler.h:31

◆ EulAxK

#define EulAxK ( ord)
Value:
((int)(EulNext[EulAxI(ord)+(EulPar(ord)!=EulParOdd)]))

◆ EulFrm

#define EulFrm ( ord)
Value:
((unsigned)(ord)&1)

◆ EulFrmR

#define EulFrmR   1

◆ EulFrmS

#define EulFrmS   0

◆ EulGetOrd

#define EulGetOrd ( ord,
i,
j,
k,
h,
n,
s,
f )
Value:
{unsigned o=ord;f=o&1;o>>=1;s=o&1;o>>=1;\
n=o&1;o>>=1;i=EulSafe[o&3];j=EulNext[i+n];k=EulNext[i+1-n];h=s?k:i;}

◆ EulNext

#define EulNext   "\001\002\000\001"

◆ EulOrd

#define EulOrd ( i,
p,
r,
f )
Value:
(((((((i)<<1)+(p))<<1)+(r))<<1)+(f))

◆ EulOrdXYXr

#define EulOrdXYXr   EulOrd(X,EulParEven,EulRepYes,EulFrmR)

◆ EulOrdXYXs

#define EulOrdXYXs   EulOrd(X,EulParEven,EulRepYes,EulFrmS)

◆ EulOrdXYZr

#define EulOrdXYZr   EulOrd(Z,EulParOdd,EulRepNo,EulFrmR)

◆ EulOrdXYZs

#define EulOrdXYZs   EulOrd(X,EulParEven,EulRepNo,EulFrmS)

◆ EulOrdXZXr

#define EulOrdXZXr   EulOrd(X,EulParOdd,EulRepYes,EulFrmR)

◆ EulOrdXZXs

#define EulOrdXZXs   EulOrd(X,EulParOdd,EulRepYes,EulFrmS)

◆ EulOrdXZYr

#define EulOrdXZYr   EulOrd(Y,EulParEven,EulRepNo,EulFrmR)

◆ EulOrdXZYs

#define EulOrdXZYs   EulOrd(X,EulParOdd,EulRepNo,EulFrmS)

◆ EulOrdYXYr

#define EulOrdYXYr   EulOrd(Y,EulParOdd,EulRepYes,EulFrmR)

◆ EulOrdYXYs

#define EulOrdYXYs   EulOrd(Y,EulParOdd,EulRepYes,EulFrmS)

◆ EulOrdYXZr

#define EulOrdYXZr   EulOrd(Z,EulParEven,EulRepNo,EulFrmR)

◆ EulOrdYXZs

#define EulOrdYXZs   EulOrd(Y,EulParOdd,EulRepNo,EulFrmS)

◆ EulOrdYZXr

#define EulOrdYZXr   EulOrd(X,EulParOdd,EulRepNo,EulFrmR)

◆ EulOrdYZXs

#define EulOrdYZXs   EulOrd(Y,EulParEven,EulRepNo,EulFrmS)

◆ EulOrdYZYr

#define EulOrdYZYr   EulOrd(Y,EulParEven,EulRepYes,EulFrmR)

◆ EulOrdYZYs

#define EulOrdYZYs   EulOrd(Y,EulParEven,EulRepYes,EulFrmS)

◆ EulOrdZXYr

#define EulOrdZXYr   EulOrd(Y,EulParOdd,EulRepNo,EulFrmR)

◆ EulOrdZXYs

#define EulOrdZXYs   EulOrd(Z,EulParEven,EulRepNo,EulFrmS)

◆ EulOrdZXZr

#define EulOrdZXZr   EulOrd(Z,EulParEven,EulRepYes,EulFrmR)

◆ EulOrdZXZs

#define EulOrdZXZs   EulOrd(Z,EulParEven,EulRepYes,EulFrmS)

◆ EulOrdZYXr

#define EulOrdZYXr   EulOrd(X,EulParEven,EulRepNo,EulFrmR)

◆ EulOrdZYXs

#define EulOrdZYXs   EulOrd(Z,EulParOdd,EulRepNo,EulFrmS)

◆ EulOrdZYZr

#define EulOrdZYZr   EulOrd(Z,EulParOdd,EulRepYes,EulFrmR)

◆ EulOrdZYZs

#define EulOrdZYZs   EulOrd(Z,EulParOdd,EulRepYes,EulFrmS)

◆ EulPar

#define EulPar ( ord)
Value:
(((unsigned)(ord)>>2)&1)

◆ EulParEven

#define EulParEven   0

◆ EulParOdd

#define EulParOdd   1

◆ EulRep

#define EulRep ( ord)
Value:
(((unsigned)(ord)>>1)&1)

◆ EulRepNo

#define EulRepNo   0

◆ EulRepYes

#define EulRepYes   1

◆ EulSafe

#define EulSafe   "\000\001\002\000"

Typedef Documentation

◆ EulerAngles

typedef QuatX EulerAngles

◆ HMatrix

typedef float HMatrix[4][4]

Enumeration Type Documentation

◆ QuatPart

enum QuatPart
Enumerator

Function Documentation

◆ Eul_()

EulerAngles Eul_ ( float ai,
float aj,
float ah,
int order )

◆ Eul_FromHMatrix()

EulerAngles Eul_FromHMatrix ( HMatrix M,
int order )

◆ Eul_FromQuat()

EulerAngles Eul_FromQuat ( QuatX q,
int order )

◆ Eul_ToHMatrix()

void Eul_ToHMatrix ( EulerAngles ea,
HMatrix M )

◆ Eul_ToQuat()

QuatX Eul_ToQuat ( EulerAngles ea)