Loading [MathJax]/extensions/MathMenu.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
c_m3d.h File Reference

Go to the source code of this file.

Classes

struct  cM3d_Range
 

Functions

static void cM3d_InDivPos1 (const Vec *, const Vec *, f32, Vec *)
 
void cM3d_InDivPos2 (const Vec *, const Vec *, f32, Vec *)
 
f32 cM3d_Len2dSq (f32, f32, f32, f32)
 
bool cM3d_Len2dSqPntAndSegLine (f32, f32, f32, f32, f32, f32, f32 *, f32 *, f32 *)
 
bool cM3d_Len3dSqPntAndSegLine (const cM3dGLin *, const Vec *, Vec *, f32 *)
 
f32 cM3d_SignedLenPlaAndPos (const cM3dGPla *, const Vec *)
 
f32 cM3d_VectorProduct2d (f32, f32, f32, f32, f32, f32)
 
void cM3d_VectorProduct (const cXyz *, const cXyz *, const cXyz *, cXyz *)
 
void cM3d_CalcPla (const Vec *, const Vec *, const Vec *, Vec *, f32 *)
 
bool cM3d_Cross_AabAab (const cM3dGAab *, const cM3dGAab *)
 
bool cM3d_Cross_AabCyl (const cM3dGAab *, const cM3dGCyl *)
 
bool cM3d_Cross_AabSph (const cM3dGAab *, const cM3dGSph *)
 
static int cM3d_Check_LinLin (const cM3dGLin *, const cM3dGLin *, f32 *, f32 *)
 
static bool cM3d_CrossInfLineVsInfPlane_proc (f32, f32, const Vec *, const Vec *, Vec *)
 
bool cM3d_Cross_LinPla (const cM3dGLin *, const cM3dGPla *, Vec *, bool, bool)
 
bool cM3d_Cross_MinMaxBoxLine (const Vec *, const Vec *, const Vec *, const Vec *)
 
static bool cM3d_InclusionCheckPosIn3PosBox3d (const Vec *, const Vec *, const Vec *, const Vec *, f32)
 
static bool cM3d_InclusionCheckPosIn3PosBox2d (f32, f32, f32, f32, f32, f32, f32, f32, f32)
 
static bool cM3d_CrossX_Tri (const cM3dGTri *, const Vec *, f32)
 
static bool cM3d_CrossX_Tri (const cM3dGTri *, const Vec *)
 
static bool cM3d_CrossX_LinTri_proc (const cM3dGTri *, const Vec *)
 
bool cM3d_CrossY_Tri (const cM3dGTri *, const Vec *)
 
static bool cM3d_CrossY_LinTri_proc (const cM3dGTri *, const Vec *)
 
bool cM3d_CrossY_Tri (const Vec &, const Vec &, const Vec &, const cM3dGPla &, const Vec *)
 
bool cM3d_CrossY_Tri_Front (const Vec &, const Vec &, const Vec &, const Vec *)
 
static bool cM3d_CrossY_Tri (const cM3dGTri *, const Vec *, f32 *)
 
static bool cM3d_CrossY_Tri (const cM3dGTri *, const Vec *, f32)
 
static bool cM3d_CrossY_Tri (const cM3dGTri *, const Vec *, const cM3d_Range *, f32 *)
 
static bool cM3d_CrossZ_Tri (const cM3dGTri *, const Vec *, f32)
 
static bool cM3d_CrossZ_Tri (const cM3dGTri *, const Vec *)
 
static bool cM3d_CrossZ_LinTri_proc (const cM3dGTri *, const Vec *)
 
bool cM3d_Cross_LinTri (const cM3dGLin *, const cM3dGTri *, Vec *, bool, bool)
 
static bool cM3d_Cross_LinTri_Easy (const cM3dGTri *, const Vec *)
 
static bool cM3d_Cross_SphPnt (const cM3dGSph *, const Vec *)
 
bool cM3d_Cross_LinSph (const cM3dGLin *, const cM3dGSph *, Vec *)
 
int cM3d_Cross_LinSph_CrossPos (const cM3dGSph &, const cM3dGLin &, Vec *, Vec *)
 
bool cM3d_Cross_CylSph (const cM3dGCyl *, const cM3dGSph *, f32 *)
 
bool cM3d_Cross_CylSph (const cM3dGCyl *, const cM3dGSph *, Vec *, f32 *)
 
bool cM3d_Cross_SphSph (const cM3dGSph *, const cM3dGSph *, f32 *)
 
static bool cM3d_Cross_SphSph (const cM3dGSph *, const cM3dGSph *, f32 *, f32 *)
 
bool cM3d_Cross_SphSph (const cM3dGSph *, const cM3dGSph *, Vec *)
 
static void cM3d_CalcSphVsTriCrossPoint (const cM3dGSph *, const cM3dGTri *, Vec *)
 
bool cM3d_Cross_SphTri (const cM3dGSph *, const cM3dGTri *, Vec *)
 
bool cM3d_Cross_SphTri (const cM3dGSph *param_0, const cM3dGTri *param_1)
 
bool cM3d_Cross_CylCyl (const cM3dGCyl *, const cM3dGCyl *, f32 *)
 
bool cM3d_Cross_CylCyl (const cM3dGCyl *, const cM3dGCyl *, Vec *)
 
bool cM3d_Cross_CylTri (const cM3dGCyl *, const cM3dGTri *, Vec *)
 
int cM3d_Cross_CylLin (const cM3dGCyl *, const cM3dGLin *, Vec *, Vec *)
 
static int cM3d_Cross_CylPntPnt (const cM3dGCyl *, const Vec *, const Vec *, Vec *, Vec *)
 
static bool cM3d_Cross_CylPnt (const cM3dGCyl *, const Vec *)
 
bool cM3d_Cross_CpsCps (const cM3dGCps &, const cM3dGCps &, Vec *)
 
bool cM3d_Cross_CpsCyl (const cM3dGCps &, const cM3dGCyl &, Vec *)
 
static void cM3d_Cross_CpsSph_CrossPos (const cM3dGCps &, const cM3dGSph &, const Vec &, Vec *)
 
bool cM3d_Cross_CpsSph (const cM3dGCps &, const cM3dGSph &, Vec *)
 
bool cM3d_Cross_TriTri (const cM3dGTri &, const cM3dGTri &, Vec *)
 
bool cM3d_Cross_CpsTri (const cM3dGCps &, cM3dGTri, Vec *)
 
void cM3d_CalcVecAngle (const Vec &, short *, short *)
 
void cM3d_CalcVecZAngle (const Vec &, csXyz *)
 
static void cM3d_PlaneCrossLineProcWork (f32, f32, f32, f32, f32, f32, f32, f32 *, f32 *)
 
static int cM3d_2PlaneCrossLine (const cM3dGPla &, const cM3dGPla &, cM3dGLin *)
 
BOOL cM3d_3PlaneCrossPos (const cM3dGPla &, const cM3dGPla &, const cM3dGPla &, Vec *)
 
f32 cM3d_lineVsPosSuisenCross (const cM3dGLin *, const Vec *, Vec *)
 
f32 cM3d_lineVsPosSuisenCross (const Vec &, const Vec &, const Vec &, Vec *)
 
int cM3d_2PlaneLinePosNearPos (const cM3dGPla &, const cM3dGPla &, const Vec *, Vec *)
 
void cM3d_CrawVec (const Vec &, const Vec &, Vec *)
 
bool cM3d_IsZero (f32 f)
 
bool cM3d_IsZero_inverted (f32 param_0)
 
f32 cM3d_LenSq (const Vec *a, const Vec *b)
 
bool cM3d_Cross_LinSph (const cM3dGLin *lin_p, const cM3dGSph *sph_p)
 
bool cM3d_Cross_CylSph (const cM3dGCyl *cyl, const cM3dGSph *sph, Vec *out)
 

Variables

const f32 G_CM3D_F_ABS_MIN
 

Function Documentation

◆ cM3d_2PlaneCrossLine()

static int cM3d_2PlaneCrossLine ( const cM3dGPla & ,
const cM3dGPla & ,
cM3dGLin *  )
static

◆ cM3d_2PlaneLinePosNearPos()

int cM3d_2PlaneLinePosNearPos ( const cM3dGPla & pPlaneA,
const cM3dGPla & pPlaneB,
const Vec * pVec,
Vec * pVecOut )

◆ cM3d_3PlaneCrossPos()

BOOL cM3d_3PlaneCrossPos ( const cM3dGPla & pPlaneA,
const cM3dGPla & pPlaneB,
const cM3dGPla & pPlaneC,
Vec * pVecOut )

◆ cM3d_CalcPla()

void cM3d_CalcPla ( const Vec * pVecA,
const Vec * pVecB,
const Vec * pVecC,
Vec * pVecOut,
f32 * pD )

◆ cM3d_CalcSphVsTriCrossPoint()

static void cM3d_CalcSphVsTriCrossPoint ( const cM3dGSph * pSphere,
const cM3dGTri * pTriangle,
Vec * pVecOut )
static

◆ cM3d_CalcVecAngle()

void cM3d_CalcVecAngle ( const Vec & ,
short * ,
short *  )

◆ cM3d_CalcVecZAngle()

void cM3d_CalcVecZAngle ( const Vec & param_0,
csXyz * param_1 )

◆ cM3d_Check_LinLin()

static int cM3d_Check_LinLin ( const cM3dGLin * lin_a,
const cM3dGLin * lin_b,
f32 * dst_a,
f32 * dst_b )
static

◆ cM3d_CrawVec()

void cM3d_CrawVec ( const Vec & pVecA,
const Vec & pVecB,
Vec * pVecOut )

◆ cM3d_Cross_AabAab()

bool cM3d_Cross_AabAab ( const cM3dGAab * pAabA,
const cM3dGAab * pAabB )

◆ cM3d_Cross_AabCyl()

bool cM3d_Cross_AabCyl ( const cM3dGAab * pAab,
const cM3dGCyl * pCyl )

◆ cM3d_Cross_AabSph()

bool cM3d_Cross_AabSph ( const cM3dGAab * pAab,
const cM3dGSph * pSph )

◆ cM3d_Cross_CpsCps()

bool cM3d_Cross_CpsCps ( const cM3dGCps & cps1,
const cM3dGCps & cps2,
Vec * param_2 )

◆ cM3d_Cross_CpsCyl()

bool cM3d_Cross_CpsCyl ( const cM3dGCps & cps,
const cM3dGCyl & cyl,
Vec * param_2 )

◆ cM3d_Cross_CpsSph()

bool cM3d_Cross_CpsSph ( const cM3dGCps & param_1,
const cM3dGSph & param_2,
Vec * param_3 )

◆ cM3d_Cross_CpsSph_CrossPos()

static void cM3d_Cross_CpsSph_CrossPos ( const cM3dGCps & ,
const cM3dGSph & ,
const Vec & ,
Vec *  )
static

◆ cM3d_Cross_CpsTri()

bool cM3d_Cross_CpsTri ( const cM3dGCps & cps,
cM3dGTri tri,
Vec * param_2 )

◆ cM3d_Cross_CylCyl() [1/2]

bool cM3d_Cross_CylCyl ( const cM3dGCyl * cyl1,
const cM3dGCyl * cyl2,
f32 * param_2 )

◆ cM3d_Cross_CylCyl() [2/2]

bool cM3d_Cross_CylCyl ( const cM3dGCyl * cyl1,
const cM3dGCyl * cyl2,
Vec * param_2 )

◆ cM3d_Cross_CylLin()

int cM3d_Cross_CylLin ( const cM3dGCyl * cyl,
const cM3dGLin * line,
Vec * param_2,
Vec * param_3 )

◆ cM3d_Cross_CylPnt()

static bool cM3d_Cross_CylPnt ( const cM3dGCyl * pCylinder,
const Vec * pPoint )
static

◆ cM3d_Cross_CylPntPnt()

static int cM3d_Cross_CylPntPnt ( const cM3dGCyl * ,
const Vec * ,
const Vec * ,
Vec * ,
Vec *  )
static

◆ cM3d_Cross_CylSph() [1/3]

bool cM3d_Cross_CylSph ( const cM3dGCyl * cyl,
const cM3dGSph * sph,
f32 * param_2 )

◆ cM3d_Cross_CylSph() [2/3]

bool cM3d_Cross_CylSph ( const cM3dGCyl * cyl,
const cM3dGSph * sph,
Vec * param_2,
f32 * param_3 )

◆ cM3d_Cross_CylSph() [3/3]

bool cM3d_Cross_CylSph ( const cM3dGCyl * cyl,
const cM3dGSph * sph,
Vec * out )
inline

◆ cM3d_Cross_CylTri()

bool cM3d_Cross_CylTri ( const cM3dGCyl * cyl,
const cM3dGTri * tri,
Vec * param_2 )

◆ cM3d_Cross_LinPla()

bool cM3d_Cross_LinPla ( const cM3dGLin * lin,
const cM3dGPla * pla,
Vec * dst,
bool a,
bool b )

◆ cM3d_Cross_LinSph() [1/2]

bool cM3d_Cross_LinSph ( const cM3dGLin * line,
const cM3dGSph * sph,
Vec * param_2 )

◆ cM3d_Cross_LinSph() [2/2]

bool cM3d_Cross_LinSph ( const cM3dGLin * lin_p,
const cM3dGSph * sph_p )
inline

◆ cM3d_Cross_LinSph_CrossPos()

int cM3d_Cross_LinSph_CrossPos ( const cM3dGSph & sph,
const cM3dGLin & line,
Vec * param_2,
Vec * param_3 )

◆ cM3d_Cross_LinTri()

bool cM3d_Cross_LinTri ( const cM3dGLin * line,
const cM3dGTri * tri,
Vec * vec,
bool param_3,
bool param_4 )

◆ cM3d_Cross_LinTri_Easy()

static bool cM3d_Cross_LinTri_Easy ( const cM3dGTri * ,
const Vec *  )
static

◆ cM3d_Cross_MinMaxBoxLine()

bool cM3d_Cross_MinMaxBoxLine ( const Vec * param_0,
const Vec * param_1,
const Vec * param_2,
const Vec * param_3 )

◆ cM3d_Cross_SphPnt()

static bool cM3d_Cross_SphPnt ( const cM3dGSph * ,
const Vec *  )
static

◆ cM3d_Cross_SphSph() [1/3]

bool cM3d_Cross_SphSph ( const cM3dGSph * sph1,
const cM3dGSph * sph2,
f32 * param_2 )

◆ cM3d_Cross_SphSph() [2/3]

static bool cM3d_Cross_SphSph ( const cM3dGSph * ,
const cM3dGSph * ,
f32 * ,
f32 *  )
static

◆ cM3d_Cross_SphSph() [3/3]

bool cM3d_Cross_SphSph ( const cM3dGSph * pSphereA,
const cM3dGSph * pSphereB,
Vec * pVecOut )

◆ cM3d_Cross_SphTri() [1/2]

bool cM3d_Cross_SphTri ( const cM3dGSph * sph,
const cM3dGTri * tri,
Vec * param_2 )

◆ cM3d_Cross_SphTri() [2/2]

bool cM3d_Cross_SphTri ( const cM3dGSph * param_0,
const cM3dGTri * param_1 )
inline

◆ cM3d_Cross_TriTri()

bool cM3d_Cross_TriTri ( const cM3dGTri & tri1,
const cM3dGTri & tri2,
Vec * param_2 )

◆ cM3d_CrossInfLineVsInfPlane_proc()

static bool cM3d_CrossInfLineVsInfPlane_proc ( f32 ,
f32 ,
const Vec * ,
const Vec * ,
Vec *  )
static

◆ cM3d_CrossX_LinTri_proc()

static bool cM3d_CrossX_LinTri_proc ( const cM3dGTri * ,
const Vec *  )
static

◆ cM3d_CrossX_Tri() [1/2]

static bool cM3d_CrossX_Tri ( const cM3dGTri * ,
const Vec *  )
static

◆ cM3d_CrossX_Tri() [2/2]

static bool cM3d_CrossX_Tri ( const cM3dGTri * ,
const Vec * ,
f32  )
static

◆ cM3d_CrossY_LinTri_proc()

static bool cM3d_CrossY_LinTri_proc ( const cM3dGTri * ,
const Vec *  )
static

◆ cM3d_CrossY_Tri() [1/5]

bool cM3d_CrossY_Tri ( const cM3dGTri * tri,
const Vec * vec )

◆ cM3d_CrossY_Tri() [2/5]

static bool cM3d_CrossY_Tri ( const cM3dGTri * ,
const Vec * ,
const cM3d_Range * ,
f32 *  )
static

◆ cM3d_CrossY_Tri() [3/5]

static bool cM3d_CrossY_Tri ( const cM3dGTri * ,
const Vec * ,
f32 *  )
static

◆ cM3d_CrossY_Tri() [4/5]

static bool cM3d_CrossY_Tri ( const cM3dGTri * ,
const Vec * ,
f32  )
static

◆ cM3d_CrossY_Tri() [5/5]

bool cM3d_CrossY_Tri ( const Vec & a,
const Vec & b,
const Vec & c,
const cM3dGPla & plane,
const Vec * vec )

◆ cM3d_CrossY_Tri_Front()

bool cM3d_CrossY_Tri_Front ( const Vec & a,
const Vec & b,
const Vec & c,
const Vec * vec )

◆ cM3d_CrossZ_LinTri_proc()

static bool cM3d_CrossZ_LinTri_proc ( const cM3dGTri * ,
const Vec *  )
static

◆ cM3d_CrossZ_Tri() [1/2]

static bool cM3d_CrossZ_Tri ( const cM3dGTri * ,
const Vec *  )
static

◆ cM3d_CrossZ_Tri() [2/2]

static bool cM3d_CrossZ_Tri ( const cM3dGTri * ,
const Vec * ,
f32  )
static

◆ cM3d_InclusionCheckPosIn3PosBox2d()

static bool cM3d_InclusionCheckPosIn3PosBox2d ( f32 ,
f32 ,
f32 ,
f32 ,
f32 ,
f32 ,
f32 ,
f32 ,
f32  )
static

◆ cM3d_InclusionCheckPosIn3PosBox3d()

static bool cM3d_InclusionCheckPosIn3PosBox3d ( const Vec * pVecA,
const Vec * pVecB,
const Vec * pVecC,
const Vec * pVecD,
f32 pF )
static

◆ cM3d_InDivPos1()

static void cM3d_InDivPos1 ( const Vec * pVecA,
const Vec * pVecB,
f32 pF,
Vec * pOut )
static

◆ cM3d_InDivPos2()

void cM3d_InDivPos2 ( const Vec * pVecA,
const Vec * pVecB,
f32 pF,
Vec * pOut )

◆ cM3d_IsZero()

bool cM3d_IsZero ( f32 f)
inline

◆ cM3d_IsZero_inverted()

bool cM3d_IsZero_inverted ( f32 param_0)
inline

◆ cM3d_Len2dSq()

f32 cM3d_Len2dSq ( f32 pX1,
f32 pY1,
f32 pX2,
f32 pY2 )

◆ cM3d_Len2dSqPntAndSegLine()

bool cM3d_Len2dSqPntAndSegLine ( f32 param_1,
f32 param_2,
f32 param_3,
f32 param_4,
f32 p5,
f32 p6,
f32 * param_7,
f32 * param_8,
f32 * param_9 )

◆ cM3d_Len3dSqPntAndSegLine()

bool cM3d_Len3dSqPntAndSegLine ( const cM3dGLin * pLine,
const Vec * pVec,
Vec * pOutVec,
f32 * pOutF )

◆ cM3d_LenSq()

f32 cM3d_LenSq ( const Vec * a,
const Vec * b )
inline

◆ cM3d_lineVsPosSuisenCross() [1/2]

f32 cM3d_lineVsPosSuisenCross ( const cM3dGLin * pLine,
const Vec * pPoint,
Vec * pVecOut )

◆ cM3d_lineVsPosSuisenCross() [2/2]

f32 cM3d_lineVsPosSuisenCross ( const Vec & pLinePointA,
const Vec & pLinePointB,
const Vec & pPoint,
Vec * pVecOut )

◆ cM3d_PlaneCrossLineProcWork()

static void cM3d_PlaneCrossLineProcWork ( f32 f1,
f32 f2,
f32 f3,
f32 f4,
f32 f5,
f32 f6,
f32 f7,
f32 * pF1,
f32 * pF2 )
static

◆ cM3d_SignedLenPlaAndPos()

f32 cM3d_SignedLenPlaAndPos ( const cM3dGPla * pPlane,
const Vec * pPosition )

◆ cM3d_VectorProduct()

void cM3d_VectorProduct ( const cXyz * pVecA,
const cXyz * pVecB,
const cXyz * pVecC,
cXyz * pVecOut )

◆ cM3d_VectorProduct2d()

f32 cM3d_VectorProduct2d ( f32 pX1,
f32 pY1,
f32 pX2,
f32 pY2,
f32 pX3,
f32 pY3 )

Variable Documentation

◆ G_CM3D_F_ABS_MIN

const f32 G_CM3D_F_ABS_MIN
extern