126 lines
5.1 KiB
C
126 lines
5.1 KiB
C
/* ***********************************************************************************/
|
|
/* * "a3x_int.h" **/
|
|
/* * Written by : Sébastien Rubens **/
|
|
/* * Tabulations : 4 char **/
|
|
/* ***********************************************************************************/
|
|
#ifndef A3X_INT_H
|
|
#define A3X_INT_H
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
enum { eQX, eQY, eQZ, eQW };
|
|
|
|
|
|
#ifndef A3X_INT_C
|
|
/* ***********************************************************************************/
|
|
/* Precalculations*/
|
|
|
|
extern void fn_v_InitSinTab( void );
|
|
extern signed short ax_SinTab[];
|
|
extern tdxQuater4 a4_xQuater1;
|
|
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
/* Matrices tests*/
|
|
|
|
extern unsigned short fn_uw_IsDiagonale( tdxMatrix33 _a3a3_xMtx );
|
|
extern unsigned short fn_uw_IsOrthogonale( tdxMatrix33 _a3a3_xMtx );
|
|
extern unsigned short fn_uw_IsOrthonormee( tdxMatrix33 _a3a3_xMtx );
|
|
extern unsigned short fn_uw_IsUnitQuat( tdxQuater4 _a4_xQuat );
|
|
extern unsigned short fn_uw_AreSameMatrix( tdxMatrix33 _a3a3_xMtx1,
|
|
tdxMatrix33 _a3a3_xMtx2 );
|
|
extern unsigned short fn_uw_AreSameQuat( tdxQuater4 _a4_xQuat1,
|
|
tdxQuater4 _a4_xQuat2 );
|
|
extern unsigned short fn_uw_AreSameVect( tdxVector3 _a3_xVect1,
|
|
tdxVector3 _a3_xVect2 );
|
|
extern unsigned short fn_uw_CompQuat( tdxQuater4 _a4_xQuat1,
|
|
tdxQuater4 _a4_xQuat2 );
|
|
extern unsigned short fn_uw_CompVect( tdxVector3 _a3_xVect1,
|
|
tdxVector3 _a3_xVect2 );
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
/* Miscellaneous matrices operations*/
|
|
|
|
extern void fn_v_SetIdMatrix( tdxMatrix33 _a3a3_xMatrix );
|
|
extern void fn_v_SetZeroVector( tdxVector3 _a3_xVector );
|
|
extern void fn_v_SetOneVector( tdxVector3 _a3_xVector );
|
|
extern void fn_v_SetIdQuater( tdxQuater4 _a4_xQuater );
|
|
extern void fn_v_ExpandQuat( tdxQuater4 _a4_xQuatD,
|
|
tdxSShortQuater4 _a4_xQuatS );
|
|
extern void fn_v_CopyQuat( tdxQuater4 _a4_xQuatD,
|
|
tdxQuater4 _a4_xQuatS );
|
|
extern void fn_v_CopyVect( tdxVector3 _a3_xVectD,
|
|
tdxVector3 _a3_xVectS );
|
|
extern void fn_v_CopyMatrix( tdxMatrix33 _a3a3_xMtxD,
|
|
tdxMatrix33 _a3a3_xMtxS );
|
|
extern void fn_v_MatrixToVecDia( tdxVector3 _a3_xVec,
|
|
tdxMatrix33 _a3a3_xMtx );
|
|
extern void fn_v_TranMatrix( tdxMatrix33 _a3a3_xMtxD,
|
|
tdxMatrix33 _a3a3_xMtxS );
|
|
extern void fn_v_TranMatrixOne( tdxMatrix33 _a3a3_xMtxD );
|
|
extern unsigned short fn_uw_AngleBetweenVect( tdxVector3 _a3_xVec1,
|
|
tdxVector3 _a3_xVec2 );
|
|
extern unsigned short fn_uw_AngleBetweenQuat( tdxQuater4 _a4_xQuat1,
|
|
tdxQuater4 _a4_xQuat2 );
|
|
extern SEB_xReal fn_x_VectorLength( tdxVector3 _a3_xVect );
|
|
extern void fn_v_NormalizeVector( tdxVector3 _a3_xVect );
|
|
extern SEB_xReal fn_x_NormalizeVector( tdxVector3 _a3_xVect );
|
|
extern SEB_xReal fn_x_QuaterLength( tdxQuater4 _a4_xQuat );
|
|
extern SEB_xReal fn_x_NormalizeQuater( tdxQuater4 _a4_xQuat );
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
/* Matrices computations*/
|
|
|
|
extern void fn_v_MatrixByVector( tdxVector3 _a3_xVecD,
|
|
tdxMatrix33 _a3a3_xMtxS,
|
|
tdxVector3 _a3_xVecS );
|
|
extern void fn_v_DiaByMatrix( tdxVector3 _a3a3_xMtxD,
|
|
tdxVector3 _a3_xVecS,
|
|
tdxMatrix33 _a3a3_xMtxS );
|
|
extern void fn_v_MatrixByDia( tdxMatrix33 _a3a3_xMtxD,
|
|
tdxMatrix33 _a3a3_xMtxS,
|
|
tdxVector3 _a3_xVecS );
|
|
extern void fn_v_MultMatrix( tdxMatrix33 _a3a3_xMtxR,
|
|
tdxMatrix33 _a3a3_xMtx1,
|
|
tdxMatrix33 _a3a3_xMtx2 );
|
|
extern void fn_v_InvRotDiaRot( tdxMatrix33 _a3a3_xMtxD,
|
|
tdxMatrix33 _a3a3_xMtxS,
|
|
tdxVector3 _a3_xVecS );
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
/* Matrices / Quaternions conversions*/
|
|
|
|
extern void fn_v_QuatToMatrix( tdxMatrix33 _a3a3_xMtx,
|
|
tdxQuater4 _a4_xQuat );
|
|
extern void fn_v_MatrixToQuat( tdxQuater4 _a4_xQuat,
|
|
tdxMatrix33 _a3a3_xMtx );
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
/* Interpolations computations*/
|
|
|
|
extern void fn_v_InterpolVect( tdxVector3 _a3_xVecD,
|
|
tdxVector3 _a3_xVecS1,
|
|
tdxVector3 _a3_xVecS2,
|
|
register SEB_xReal _xT );
|
|
extern void fn_v_InterpolQuat( tdxQuater4 _a4_xQuatD,
|
|
tdxQuater4 _a4_xQuatS1,
|
|
tdxQuater4 _a4_xQuatS2,
|
|
register SEB_xReal _xT );
|
|
extern void fn_v_InterpolQuatWithOmega( tdxQuater4 _a4_xQuatD,
|
|
tdxQuater4 _a4_xQuatS1,
|
|
tdxQuater4 _a4_xQuatS2,
|
|
register SEB_xReal _xT,
|
|
register signed short _swOmega );
|
|
|
|
|
|
|
|
/* ***********************************************************************************/
|
|
#endif
|
|
|
|
#endif
|