45#define MTXDegToRad(d) (d * 0.01745329252f)
46#define MTXRadToDeg(r) (r * 57.29577951f)
86#define MTXIdentity C_MTXIdentity
87#define MTXCopy C_MTXCopy
88#define MTXConcat C_MTXConcat
89#define MTXInverse C_MTXInverse
90#define MTXTranspose C_MTXTranspose
91#define MTXInverse C_MTXInverse
92#define MTXInvXpose C_MTXInvXpose
93#define MTXRotRad C_MTXRotRad
94#define MTXRotTrig C_MTXRotTrig
95#define MTXRotAxisRad C_MTXRotAxisRad
96#define MTXTrans C_MTXTrans
97#define MTXTransApply C_MTXTransApply
98#define MTXScale C_MTXScale
99#define MTXScaleApply C_MTXScaleApply
100#define MTXQuat C_MTXQuat
101#define MTXReflect C_MTXReflect
103#define MTXIdentity PSMTXIdentity
104#define MTXCopy PSMTXCopy
105#define MTXConcat PSMTXConcat
106#define MTXInverse PSMTXInverse
107#define MTXTranspose PSMTXTranspose
108#define MTXInverse PSMTXInverse
109#define MTXInvXpose PSMTXInvXpose
110#define MTXRotRad PSMTXRotRad
111#define MTXRotTrig PSMTXRotTrig
112#define MTXRotAxisRad PSMTXRotAxisRad
113#define MTXTrans PSMTXTrans
114#define MTXTransApply PSMTXTransApply
115#define MTXScale PSMTXScale
116#define MTXScaleApply PSMTXScaleApply
117#define MTXQuat PSMTXQuat
118#define MTXReflect PSMTXReflect
127#define MTXLookAt C_MTXLookAt
128#define MTXLightFrustum C_MTXLightFrustum
129#define MTXLightPerspective C_MTXLightPerspective
130#define MTXLightOrtho C_MTXLightOrtho
146#define MTXMultVec C_MTXMultVec
147#define MTXMultVecArray C_MTXMultVecArray
148#define MTXMultVecSR C_MTXMultVecSR
149#define MTXMultVecArraySR C_MTXMultVecArraySR
151#define MTXMultVec PSMTXMultVec
152#define MTXMultVecArray PSMTXMultVecArray
153#define MTXMultVecSR PSMTXMultVecSR
154#define MTXMultVecArraySR PSMTXMultVecArraySR
185#define MTX44Identity C_MTX44Identity
186#define MTX44Copy C_MTX44Copy
187#define MTX44Concat C_MTX44Concat
188#define MTX44Transpose C_MTX44Transpose
189#define MTX44Trans C_MTX44Trans
190#define MTX44TransApply C_MTX44TransApply
191#define MTX44Scale C_MTX44Scale
192#define MTX44ScaleApply C_MTX44ScaleApply
193#define MTX44RotRad C_MTX44RotRad
194#define MTX44RotTrig C_MTX44RotTrig
195#define MTX44RotAxisRad C_MTX44RotAxisRad
197#define MTX44Identity PSMTX44Identity
198#define MTX44Copy PSMTX44Copy
199#define MTX44Concat PSMTX44Concat
200#define MTX44Transpose PSMTX44Transpose
201#define MTX44Trans PSMTX44Trans
202#define MTX44TransApply PSMTX44TransApply
203#define MTX44Scale PSMTX44Scale
204#define MTX44ScaleApply PSMTX44ScaleApply
205#define MTX44RotRad PSMTX44RotRad
206#define MTX44RotTrig PSMTX44RotTrig
207#define MTX44RotAxisRad PSMTX44RotAxisRad
216#define MTXFrustum C_MTXFrustum
217#define MTXPerspective C_MTXPerspective
218#define MTXOrtho C_MTXOrtho
219#define MTX44Inverse C_MTX44Inverse
235#define MTX44MultVec C_MTX44MultVec
236#define MTX44MultVecArray C_MTX44MultVecArray
237#define MTX44MultVecSR C_MTX44MultVecSR
238#define MTX44MultVecArraySR C_MTX44MultVecArraySR
240#define MTX44MultVec PSMTX44MultVec
241#define MTX44MultVecArray PSMTX44MultVecArray
242#define MTX44MultVecSR PSMTX44MultVecSR
243#define MTX44MultVecArraySR PSMTX44MultVecArraySR
288#define VECAdd C_VECAdd
289#define VECSubtract C_VECSubtract
290#define VECScale C_VECScale
291#define VECNormalize C_VECNormalize
292#define VECSquareMag C_VECSquareMag
293#define VECMag C_VECMag
294#define VECDotProduct C_VECDotProduct
295#define VECCrossProduct C_VECCrossProduct
296#define VECSquareDistance C_VECSquareDistance
297#define VECDistance C_VECDistance
299#define VECAdd PSVECAdd
300#define VECSubtract PSVECSubtract
301#define VECScale PSVECScale
302#define VECNormalize PSVECNormalize
303#define VECSquareMag PSVECSquareMag
304#define VECMag PSVECMag
305#define VECDotProduct PSVECDotProduct
306#define VECCrossProduct PSVECCrossProduct
307#define VECSquareDistance PSVECSquareDistance
308#define VECDistance PSVECDistance
314#define VECHalfAngle C_VECHalfAngle
315#define VECReflect C_VECReflect
339#define QUATAdd C_QUATAdd
340#define QUATSubtract C_QUATSubtract
341#define QUATMultiply C_QUATMultiply
342#define QUATScale C_QUATScale
343#define QUATDotProduct C_QUATDotProduct
344#define QUATNormalize C_QUATNormalize
345#define QUATInverse C_QUATInverse
346#define QUATDivide C_QUATDivide
348#define QUATAdd PSQUATAdd
349#define QUATSubtract PSQUATSubtract
350#define QUATMultiply PSQUATMultiply
351#define QUATScale PSQUATScale
352#define QUATDotProduct PSQUATDotProduct
353#define QUATNormalize PSQUATNormalize
354#define QUATInverse PSQUATInverse
355#define QUATDivide PSQUATDivide
369#define QUATExp C_QUATExp
370#define QUATLogN C_QUATLogN
371#define QUATMakeClosest C_QUATMakeClosest
372#define QUATRotAxisRad C_QUATRotAxisRad
373#define QUATMtx C_QUATMtx
374#define QUATLerp C_QUATLerp
375#define QUATSlerp C_QUATSlerp
376#define QUATSquad C_QUATSquad
377#define QUATCompA C_QUATCompA
u32 dest
Definition GXTev.c:8
const void * src
Definition __os.h:116
void PSVECSquareDistance()
static void * target
Definition d_a_npc_cd2.cpp:1908
static SECTION_DATA u8 normal[12]
Definition d_a_npc_pouya.cpp:546
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
struct Vec Vec
Definition m_Do_lib.h:8
void PSMTXReflect(Mtx m, const Vec *p, const Vec *n)
const f32(* CMtxP)[4]
Definition mtx.h:36
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 C_QUATDotProduct(const Quaternion *p, const Quaternion *q)
Definition quat.c:137
f32(* Mtx44Ptr)[4]
Definition mtx.h:26
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
f32 Mtx33[3][3]
Definition mtx.h:32
MtxPtr MTXGetStackPtr(const MTXStack *sPtr)
Definition mtxstack.c:104
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
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)
void PSMTX44MultVec(const Mtx44 m, const Vec *src, Vec *dst)
u32 C_MTXInverse(const Mtx src, Mtx inv)
Definition mtx.c:346
f32(* MtxP)[4]
Definition mtx.h:35
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
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
void C_QUATAdd(const Quaternion *p, const Quaternion *q, Quaternion *r)
Definition quat.c:5
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
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
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)
f32(* MtxPtr)[4]
Definition mtx.h:23
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 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)
void C_QUATDivide(const Quaternion *p, const Quaternion *q, Quaternion *r)
Definition quat.c:265
void PSQUATInverse(const Quaternion *src, Quaternion *inv)
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
f32 ROMtx[4][3]
Definition mtx.h:28
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
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
f32 Mtx23[2][3]
Definition mtx.h:33
f32 PSQUATDotProduct(const Quaternion *p, const Quaternion *q)
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 C_VECReflect(const Vec *src, const Vec *normal, Vec *dst)
Definition vec.c:250
f32(* ROMtxPtr)[4]
Definition mtx.h:29
void C_MTX44MultVecArraySR(const Mtx44 m, const Vec *srcBase, Vec *dstBase, u32 count)
Definition mtx44vec.c:185
f32(* Mtx3P)[3]
Definition mtx.h:34
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
void PSVECSubtract(const Vec *a, const Vec *b, Vec *a_b)
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
f32 Mtx44[4][4]
Definition mtx.h:25
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 PSMTXROMultS16VecArray(const Mtx m, const S16Vec *srcBase, Vec *dstBase, u32 count)
f32 QuaternionP[4]
Definition mtx.h:37
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)
f32 Mtx[3][4]
Definition mtx.h:22
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
u32 numMtx
Definition mtx.h:40
MtxPtr stackBase
Definition mtx.h:41
MtxPtr stackPtr
Definition mtx.h:42
Definition d_a_hozelda.cpp:16
Definition d_a_hozelda.cpp:18
unsigned long u32
Definition types.h:9
signed short int s16
Definition types.h:6
float f32
Definition types.h:22