4#ifdef __REVOLUTION_SDK__
48#define MTXDegToRad(d) (d * 0.01745329252f)
49#define MTXRadToDeg(r) (r * 57.29577951f)
89#define MTXIdentity C_MTXIdentity
90#define MTXCopy C_MTXCopy
91#define MTXConcat C_MTXConcat
92#define MTXInverse C_MTXInverse
93#define MTXTranspose C_MTXTranspose
94#define MTXInverse C_MTXInverse
95#define MTXInvXpose C_MTXInvXpose
96#define MTXRotRad C_MTXRotRad
97#define MTXRotTrig C_MTXRotTrig
98#define MTXRotAxisRad C_MTXRotAxisRad
99#define MTXTrans C_MTXTrans
100#define MTXTransApply C_MTXTransApply
101#define MTXScale C_MTXScale
102#define MTXScaleApply C_MTXScaleApply
103#define MTXQuat C_MTXQuat
104#define MTXReflect C_MTXReflect
106#define MTXIdentity PSMTXIdentity
107#define MTXCopy PSMTXCopy
108#define MTXConcat PSMTXConcat
109#define MTXInverse PSMTXInverse
110#define MTXTranspose PSMTXTranspose
111#define MTXInverse PSMTXInverse
112#define MTXInvXpose PSMTXInvXpose
113#define MTXRotRad PSMTXRotRad
114#define MTXRotTrig PSMTXRotTrig
115#define MTXRotAxisRad PSMTXRotAxisRad
116#define MTXTrans PSMTXTrans
117#define MTXTransApply PSMTXTransApply
118#define MTXScale PSMTXScale
119#define MTXScaleApply PSMTXScaleApply
120#define MTXQuat PSMTXQuat
121#define MTXReflect PSMTXReflect
130#define MTXLookAt C_MTXLookAt
131#define MTXLightFrustum C_MTXLightFrustum
132#define MTXLightPerspective C_MTXLightPerspective
133#define MTXLightOrtho C_MTXLightOrtho
149#define MTXMultVec C_MTXMultVec
150#define MTXMultVecArray C_MTXMultVecArray
151#define MTXMultVecSR C_MTXMultVecSR
152#define MTXMultVecArraySR C_MTXMultVecArraySR
154#define MTXMultVec PSMTXMultVec
155#define MTXMultVecArray PSMTXMultVecArray
156#define MTXMultVecSR PSMTXMultVecSR
157#define MTXMultVecArraySR PSMTXMultVecArraySR
188#define MTX44Identity C_MTX44Identity
189#define MTX44Copy C_MTX44Copy
190#define MTX44Concat C_MTX44Concat
191#define MTX44Transpose C_MTX44Transpose
192#define MTX44Trans C_MTX44Trans
193#define MTX44TransApply C_MTX44TransApply
194#define MTX44Scale C_MTX44Scale
195#define MTX44ScaleApply C_MTX44ScaleApply
196#define MTX44RotRad C_MTX44RotRad
197#define MTX44RotTrig C_MTX44RotTrig
198#define MTX44RotAxisRad C_MTX44RotAxisRad
200#define MTX44Identity PSMTX44Identity
201#define MTX44Copy PSMTX44Copy
202#define MTX44Concat PSMTX44Concat
203#define MTX44Transpose PSMTX44Transpose
204#define MTX44Trans PSMTX44Trans
205#define MTX44TransApply PSMTX44TransApply
206#define MTX44Scale PSMTX44Scale
207#define MTX44ScaleApply PSMTX44ScaleApply
208#define MTX44RotRad PSMTX44RotRad
209#define MTX44RotTrig PSMTX44RotTrig
210#define MTX44RotAxisRad PSMTX44RotAxisRad
219#define MTXFrustum C_MTXFrustum
220#define MTXPerspective C_MTXPerspective
221#define MTXOrtho C_MTXOrtho
222#define MTX44Inverse C_MTX44Inverse
238#define MTX44MultVec C_MTX44MultVec
239#define MTX44MultVecArray C_MTX44MultVecArray
240#define MTX44MultVecSR C_MTX44MultVecSR
241#define MTX44MultVecArraySR C_MTX44MultVecArraySR
243#define MTX44MultVec PSMTX44MultVec
244#define MTX44MultVecArray PSMTX44MultVecArray
245#define MTX44MultVecSR PSMTX44MultVecSR
246#define MTX44MultVecArraySR PSMTX44MultVecArraySR
291#define VECAdd C_VECAdd
292#define VECSubtract C_VECSubtract
293#define VECScale C_VECScale
294#define VECNormalize C_VECNormalize
295#define VECSquareMag C_VECSquareMag
296#define VECMag C_VECMag
297#define VECDotProduct C_VECDotProduct
298#define VECCrossProduct C_VECCrossProduct
299#define VECSquareDistance C_VECSquareDistance
300#define VECDistance C_VECDistance
302#define VECAdd PSVECAdd
303#define VECSubtract PSVECSubtract
304#define VECScale PSVECScale
305#define VECNormalize PSVECNormalize
306#define VECSquareMag PSVECSquareMag
307#define VECMag PSVECMag
308#define VECDotProduct PSVECDotProduct
309#define VECCrossProduct PSVECCrossProduct
310#define VECSquareDistance PSVECSquareDistance
311#define VECDistance PSVECDistance
317#define VECHalfAngle C_VECHalfAngle
318#define VECReflect C_VECReflect
342#define QUATAdd C_QUATAdd
343#define QUATSubtract C_QUATSubtract
344#define QUATMultiply C_QUATMultiply
345#define QUATScale C_QUATScale
346#define QUATDotProduct C_QUATDotProduct
347#define QUATNormalize C_QUATNormalize
348#define QUATInverse C_QUATInverse
349#define QUATDivide C_QUATDivide
351#define QUATAdd PSQUATAdd
352#define QUATSubtract PSQUATSubtract
353#define QUATMultiply PSQUATMultiply
354#define QUATScale PSQUATScale
355#define QUATDotProduct PSQUATDotProduct
356#define QUATNormalize PSQUATNormalize
357#define QUATInverse PSQUATInverse
358#define QUATDivide PSQUATDivide
372#define QUATExp C_QUATExp
373#define QUATLogN C_QUATLogN
374#define QUATMakeClosest C_QUATMakeClosest
375#define QUATRotAxisRad C_QUATRotAxisRad
376#define QUATMtx C_QUATMtx
377#define QUATLerp C_QUATLerp
378#define QUATSlerp C_QUATSlerp
379#define QUATSquad C_QUATSquad
380#define QUATCompA C_QUATCompA
u32 dest
Definition GXTev.c:8
static void * target
Definition d_a_npc_cd2.cpp:1780
static void normal(obj_rw_class *i_this)
Definition d_a_obj_rw.cpp:148
void PSMTXReflect(Mtx m, const Vec *p, const Vec *n)
u32 C_MTX44Inverse(const Mtx44 src, Mtx44 inv)
Definition mtx44.c:358
f32 C_VECMag(const Vec *v)
Definition vec.c:134
MtxPtr MTXPush(MTXStack *sPtr, const Mtx m)
Definition mtxstack.c:14
void PSVECScale(const Vec *src, Vec *dst, f32 scale)
f32 PSVECMag(const Vec *v)
f32 Mtx44[4][4]
Definition mtx.h:28
f32 C_QUATDotProduct(const Quaternion *p, const Quaternion *q)
Definition quat.c:137
void C_MTXRotAxisRad(Mtx m, const Vec *axis, f32 rad)
Definition mtx.c:749
void PSMTX44ScaleApply(const Mtx44 src, Mtx44 dst, f32 xS, f32 yS, f32 zS)
void PSMTX44RotAxisRad(Mtx44 m, const Vec *axis, f32 rad)
Definition mtx44.c:881
MtxPtr MTXGetStackPtr(const MTXStack *sPtr)
Definition mtxstack.c:104
u32 PSMTXInverse(const Mtx src, Mtx inv)
void PSMTXTrans(Mtx m, f32 xT, f32 yT, f32 zT)
void C_VECAdd(const Vec *a, const Vec *b, Vec *ab)
Definition vec.c:5
f32 C_VECSquareMag(const Vec *v)
Definition vec.c:111
f32 PSVECDistance(const Vec *a, const Vec *b)
void PSMTXMultS16VecArray(const ROMtx *m, const S16Vec *srcBase, Vec *dstBase, u32 count)
void PSMTX44Trans(Mtx44 m, f32 xT, f32 yT, f32 zT)
struct S16Vec * S16VecPtr
const f32(* CMtxP)[4]
Definition mtx.h:39
void C_MTX44Scale(Mtx44 m, f32 xS, f32 yS, f32 zS)
Definition mtx44.c:518
void C_MTXMultVecSR(const Mtx m, const Vec *src, Vec *dst)
Definition mtxvec.c:106
void C_MTXConcat(const Mtx a, const Mtx b, Mtx ab)
Definition mtx.c:78
void C_MTXCopy(const Mtx src, Mtx dst)
Definition mtx.c:44
void C_QUATMakeClosest(const Quaternion *q, const Quaternion *qto, Quaternion *r)
Definition quat.c:326
void PSQUATNormalize(const Quaternion *src, Quaternion *unit)
void C_MTXMultVecArray(const Mtx m, const Vec *srcBase, Vec *dstBase, u32 count)
Definition mtxvec.c:45
void C_VECHalfAngle(const Vec *a, const Vec *b, Vec *half)
Definition vec.c:223
u32 C_MTXInvXpose(const Mtx src, Mtx invX)
Definition mtx.c:456
void C_MTX44ScaleApply(const Mtx44 src, Mtx44 dst, f32 xS, f32 yS, f32 zS)
Definition mtx44.c:559
void PSVECCrossProduct(const Vec *a, const Vec *b, Vec *axb)
f32(* ROMtxPtr)[4]
Definition mtx.h:32
u32 C_MTXInverse(const Mtx src, Mtx inv)
Definition mtx.c:346
void PSMTXReorder(const Mtx src, ROMtx dest)
void C_MTX44MultVec(const Mtx44 m, const Vec *src, Vec *dst)
Definition mtx44vec.c:5
void C_MTX44RotAxisRad(Mtx44 m, const Vec *axis, f32 rad)
Definition mtx44.c:766
void C_MTXQuat(Mtx m, const Quaternion *q)
Definition mtx.c:940
void PSMTX44Concat(const Mtx44 a, const Mtx44 b, Mtx44 ab)
MtxPtr MTXPushFwd(MTXStack *sPtr, const Mtx m)
Definition mtxstack.c:31
f32 Mtx33[3][3]
Definition mtx.h:35
void C_MTXConcatArray(const Mtx a, const Mtx *srcBase, Mtx *dstBase, u32 count)
Definition mtx.c:167
void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, f32 scaleS, f32 scaleT, f32 transS, f32 transT)
Definition mtx.c:1152
f32 QuaternionP[4]
Definition mtx.h:40
void C_QUATAdd(const Quaternion *p, const Quaternion *q, Quaternion *r)
Definition quat.c:5
f32 Mtx[3][4]
Definition mtx.h:25
void C_QUATSlerp(const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t)
Definition quat.c:421
void C_MTXIdentity(Mtx m)
Definition mtx.c:10
void PSMTXMultVecArray(const Mtx m, const Vec *srcBase, Vec *dstBase, u32 count)
void C_QUATMultiply(const Quaternion *p, const Quaternion *q, Quaternion *pq)
Definition quat.c:57
f32 PSVECDotProduct(const Vec *a, const Vec *b)
void PSMTXIdentity(Mtx m)
void C_QUATExp(const Quaternion *q, Quaternion *r)
Definition quat.c:282
f32 PSVECSquareDistance(const Vec *a, const Vec *b)
void C_QUATNormalize(const Quaternion *src, Quaternion *unit)
Definition quat.c:160
void PSQUATDivide(const Quaternion *p, const Quaternion *q, Quaternion *r)
Definition quat.c:275
void C_MTX44Trans(Mtx44 m, f32 xT, f32 yT, f32 zT)
Definition mtx44.c:417
void PSMTXRotRad(Mtx m, char axis, f32 rad)
Definition mtx.c:564
void C_MTXTransApply(const Mtx src, Mtx dst, f32 xT, f32 yT, f32 zT)
Definition mtx.c:822
void PSQUATAdd(const Quaternion *p, const Quaternion *q, Quaternion *r)
void PSMTXTranspose(const Mtx src, Mtx xPose)
f32 C_VECDistance(const Vec *a, const Vec *b)
Definition vec.c:301
void C_QUATSubtract(const Quaternion *p, const Quaternion *q, Quaternion *r)
Definition quat.c:31
void C_MTXMultVecArraySR(const Mtx m, const Vec *srcBase, Vec *dstBase, u32 count)
Definition mtxvec.c:146
f32(* Mtx3P)[3]
Definition mtx.h:37
f32(* MtxPtr)[4]
Definition mtx.h:26
void C_MTXFrustum(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f)
Definition mtx44.c:7
void PSMTXConcatArray(const Mtx a, const Mtx *srcBase, Mtx *dstBase, u32 count)
struct Quaternion * QuaternionPtr
void C_MTX44MultVecSR(const Mtx44 m, const Vec *src, Vec *dst)
Definition mtx44vec.c:146
void C_MTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS)
Definition mtx.c:897
void PSMTX44MultVecSR(const Mtx44 m, const Vec *src, Vec *dst)
void PSMTX44Scale(Mtx44 m, f32 xS, f32 yS, f32 zS)
void C_VECCrossProduct(const Vec *a, const Vec *b, Vec *axb)
Definition vec.c:191
void C_MTXMultVec(const Mtx m, const Vec *src, Vec *dst)
Definition mtxvec.c:5
void PSMTXConcat(const Mtx a, const Mtx b, Mtx ab)
void C_MTX44Concat(const Mtx44 a, const Mtx44 b, Mtx44 ab)
Definition mtx44.c:178
void PSMTXROMultVecArray(const ROMtx m, const Vec *srcBase, Vec *dstBase, u32 count)
u32 PSMTXInvXpose(const Mtx src, Mtx invX)
void C_QUATMtx(Quaternion *r, const Mtx m)
Definition quat.c:362
void PSMTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA)
MtxPtr MTXPushInvXpose(MTXStack *sPtr, const Mtx m)
Definition mtxstack.c:67
void PSMTX44RotTrig(Mtx44 m, char axis, f32 sinA, f32 cosA)
void PSMTX44Copy(const Mtx44 src, Mtx44 dst)
f32 PSVECSquareMag(const Vec *v)
void C_QUATDivide(const Quaternion *p, const Quaternion *q, Quaternion *r)
Definition quat.c:265
void PSQUATInverse(const Quaternion *src, Quaternion *inv)
struct Vec Vec
Definition m_Do_lib.h:8
void PSMTX44MultVecArraySR(const Mtx44 m, const Vec *srcBase, Vec *dstBase, u32 count)
void C_MTXLightOrtho(Mtx m, f32 t, f32 b, f32 l, f32 r, f32 scaleS, f32 scaleT, f32 transS, f32 transT)
Definition mtx.c:1177
void PSMTXScale(Mtx m, f32 xS, f32 yS, f32 zS)
void C_MTXReflect(Mtx m, const Vec *p, const Vec *n)
Definition mtx.c:1034
void C_QUATRotAxisRad(Quaternion *r, const Vec *axis, f32 rad)
Definition quat.c:343
void C_MTX44MultVecArray(const Mtx44 m, const Vec *srcBase, Vec *dstBase, u32 count)
Definition mtx44vec.c:58
f32(* MtxP)[4]
Definition mtx.h:38
void PSMTXRotAxisRad(Mtx m, const Vec *axis, f32 rad)
Definition mtx.c:740
void C_MTX44Transpose(const Mtx44 src, Mtx44 xPose)
Definition mtx44.c:286
void PSMTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS)
void PSQUATScale(const Quaternion *q, Quaternion *r, f32 scale)
void C_MTXPerspective(Mtx44 m, f32 fovY, f32 aspect, f32 n, f32 f)
Definition mtx44.c:35
void C_MTX44RotRad(Mtx44 m, char axis, f32 rad)
Definition mtx44.c:614
void PSMTX44Transpose(const Mtx44 src, Mtx44 xPose)
void PSMTXMultVecArraySR(const Mtx m, const Vec *srcBase, Vec *dstBase, u32 count)
void PSVECNormalize(const Vec *src, Vec *dst)
void C_QUATScale(const Quaternion *q, Quaternion *r, f32 scale)
Definition quat.c:114
void PSMTXROSkin2VecArray(const ROMtx m0, const ROMtx m1, const f32 *wtBase, const Vec *srcBase, Vec *dstBase, u32 count)
void C_QUATInverse(const Quaternion *src, Quaternion *inv)
Definition quat.c:210
void PSMTXQuat(Mtx m, const Quaternion *q)
f32 PSQUATDotProduct(const Quaternion *p, const Quaternion *q)
f32 ROMtx[4][3]
Definition mtx.h:31
void C_MTX44Identity(Mtx44 m)
Definition mtx44.c:94
struct Quaternion * QtrnPtr
void PSMTX44MultVecArray(const Mtx44 m, const Vec *srcBase, Vec *dstBase, u32 count)
void PSMTX44RotRad(Mtx44 m, char axis, f32 rad)
Definition mtx44.c:624
void C_MTXRotRad(Mtx m, char axis, f32 rad)
Definition mtx.c:554
void PSMTXCopy(const Mtx src, Mtx dst)
void C_VECReflect(const Vec *src, const Vec *normal, Vec *dst)
Definition vec.c:250
f32 Mtx23[2][3]
Definition mtx.h:36
void C_MTX44MultVecArraySR(const Mtx44 m, const Vec *srcBase, Vec *dstBase, u32 count)
Definition mtx44vec.c:185
void PSQUATMultiply(const Quaternion *p, const Quaternion *q, Quaternion *pq)
void C_VECScale(const Vec *src, Vec *dst, f32 scale)
Definition vec.c:45
f32 C_VECSquareDistance(const Vec *a, const Vec *b)
Definition vec.c:273
f32(* Mtx44Ptr)[4]
Definition mtx.h:29
f32 C_VECDotProduct(const Vec *a, const Vec *b)
Definition vec.c:172
void C_QUATCompA(const Quaternion *qprev, const Quaternion *q, const Quaternion *qnext, Quaternion *a)
Definition quat.c:470
void C_MTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA)
Definition mtx.c:571
void C_QUATSquad(const Quaternion *p, const Quaternion *a, const Quaternion *b, const Quaternion *q, Quaternion *r, f32 t)
Definition quat.c:454
void C_MTX44Copy(const Mtx44 src, Mtx44 dst)
Definition mtx44.c:133
void C_MTXLookAt(Mtx m, const Point3d *camPos, const Vec *camUp, const Point3d *target)
Definition mtx.c:1098
void PSMTX44TransApply(const Mtx44 src, Mtx44 dst, f32 xT, f32 yT, f32 zT)
void MTXInitStack(MTXStack *sPtr, u32 numMtx)
Definition mtxstack.c:5
void C_MTXScale(Mtx m, f32 xS, f32 yS, f32 zS)
Definition mtx.c:866
void C_MTXTrans(Mtx m, f32 xT, f32 yT, f32 zT)
Definition mtx.c:788
void C_MTXOrtho(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f)
Definition mtx44.c:66
void PSMTXTransApply(const Mtx src, Mtx dst, f32 xT, f32 yT, f32 zT)
void PSVECAdd(const Vec *a, const Vec *b, Vec *ab)
void C_VECNormalize(const Vec *src, Vec *unit)
Definition vec.c:66
void PSMTX44Identity(Mtx44 m)
void C_MTX44TransApply(const Mtx44 src, Mtx44 dst, f32 xT, f32 yT, f32 zT)
Definition mtx44.c:462
void C_QUATLogN(const Quaternion *q, Quaternion *r)
Definition quat.c:301
MtxPtr MTXPushInv(MTXStack *sPtr, const Mtx m)
Definition mtxstack.c:48
void PSQUATSubtract(const Quaternion *p, const Quaternion *q, Quaternion *r)
void PSMTXMultVec(const Mtx m, const Vec *src, Vec *dst)
void C_MTXTranspose(const Mtx src, Mtx xPose)
Definition mtx.c:280
void C_MTXLightFrustum(Mtx m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 scaleS, f32 scaleT, f32 transS, f32 transT)
Definition mtx.c:1129
void C_QUATLerp(const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t)
Definition quat.c:410
MtxPtr MTXPop(MTXStack *sPtr)
Definition mtxstack.c:87
void C_VECSubtract(const Vec *a, const Vec *b, Vec *a_b)
Definition vec.c:25
void PSMTXMultVecSR(const Mtx m, const Vec *src, Vec *dst)
void C_MTX44RotTrig(Mtx44 m, char axis, f32 sinA, f32 cosA)
Definition mtx44.c:633
const void * src
Definition __os.h:116
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
double x double x
Definition e_atan2.c:58
int m
Definition e_atan2.c:62
double x double y
Definition e_atan2.c:58
double v
Definition e_pow.c:163
static const static double double half
Definition k_sin.c:49
void PSMTX44MultVec(const Mtx44 m, const Vec *src, Vec *dst)
void PSVECSubtract(const Vec *a, const Vec *b, Vec *a_b)
void PSMTXROMultS16VecArray(const Mtx m, const S16Vec *srcBase, Vec *dstBase, u32 count)
u32 numMtx
Definition mtx.h:43
MtxPtr stackBase
Definition mtx.h:44
MtxPtr stackPtr
Definition mtx.h:45