Files
tww/include/SSystem/SComponent/c_m3d_g_tri.h
T
2023-12-07 15:45:07 -05:00

55 lines
1.4 KiB
C++

#ifndef C_M3D_G_TRI_H_
#define C_M3D_G_TRI_H_
#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "dolphin/types.h"
class cM3dGCyl;
struct cM3dGTriS {
Vec a;
Vec b;
Vec c;
};
class cM3dGTri : public cM3dGPla {
public:
/* 0x00 */ /* cM3dGPla */
/* 0x14 */ Vec mA;
/* 0x20 */ Vec mB;
/* 0x2C */ Vec mC;
public:
cM3dGTri() {}
cM3dGTri(const Vec *pA, const Vec *pB, const Vec *pC);
bool cross(const cM3dGCyl*, Vec*) const;
bool cross(const cM3dGLin* line, Vec* vec, bool param_3, bool param_4) const {
return cM3d_Cross_LinTri(line, this, vec, param_3, param_4);
}
void Up(f32 dist) {
Vec delta;
PSVECScale(&mNormal, &delta, dist);
PSVECAdd(&mA, &delta, &mA);
PSVECAdd(&mB, &delta, &mB);
PSVECAdd(&mC, &delta, &mC);
mD -= dist;
}
// TODO
void Cross(const cM3dGCps&, Vec*) const {}
void Cross(const cM3dGCyl&, Vec*) const {}
void Cross(const cM3dGSph&, Vec*) const {}
void Cross(const cM3dGTri&, Vec*) const {}
cM3dGTri(const cM3dGTri&) {}
void crossX(const Vec*, f32*) const {}
void crossY(const Vec*) const {}
void crossZ(const Vec*, f32*) const {}
void setBg(const Vec*, const Vec*, const Vec*, const cM3dGPla*) {}
void setPos(const Vec*, const Vec*, const Vec*) {}
void setUp() {}
~cM3dGTri() {}
}; // Size: 0x38
#endif