00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _ODE_ROTATION_H_
00024 #define _ODE_ROTATION_H_
00025
00026 #include <ode/common.h>
00027 #include <ode/compatibility.h>
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033
00034 ODE_API void dRSetIdentity (dMatrix3 R);
00035
00036 ODE_API void dRFromAxisAndAngle (dMatrix3 R, dReal ax, dReal ay, dReal az,
00037 dReal angle);
00038
00039 ODE_API void dRFromEulerAngles (dMatrix3 R, dReal phi, dReal theta, dReal psi);
00040
00041 ODE_API void dRFrom2Axes (dMatrix3 R, dReal ax, dReal ay, dReal az,
00042 dReal bx, dReal by, dReal bz);
00043
00044 ODE_API void dRFromZAxis (dMatrix3 R, dReal ax, dReal ay, dReal az);
00045
00046 ODE_API void dQSetIdentity (dQuaternion q);
00047
00048 ODE_API void dQFromAxisAndAngle (dQuaternion q, dReal ax, dReal ay, dReal az,
00049 dReal angle);
00050
00051
00052
00053 ODE_API void dQMultiply0 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc);
00054
00055 ODE_API void dQMultiply1 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc);
00056
00057 ODE_API void dQMultiply2 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc);
00058
00059 ODE_API void dQMultiply3 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc);
00060
00061 ODE_API void dRfromQ (dMatrix3 R, const dQuaternion q);
00062 ODE_API void dQfromR (dQuaternion q, const dMatrix3 R);
00063 ODE_API void dDQfromW (dReal dq[4], const dVector3 w, const dQuaternion q);
00064
00065
00066 #ifdef __cplusplus
00067 }
00068 #endif
00069
00070 #endif