mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-19 13:24:12 -04:00
d_bg_w_hf 70%
This commit is contained in:
@@ -14,7 +14,7 @@ class cBgS_ShdwDraw : public cBgS_Chk {
|
||||
public:
|
||||
cBgS_ShdwDraw() {}
|
||||
virtual ~cBgS_ShdwDraw() {}
|
||||
void Set(cXyz& min, cXyz& max) { mM3dGAab.Set(min, max); }
|
||||
void Set(cXyz& min, cXyz& max) { mM3dGAab.Set(&min, &max); }
|
||||
void SetCallback(cBgS_ShdwDraw_Callback callback) { mCallbackFun = callback; }
|
||||
|
||||
cM3dGAab* GetBndP() { return &mM3dGAab; }
|
||||
|
||||
@@ -268,7 +268,7 @@ public:
|
||||
/* 0x94 */ cBgD_t* pm_bgd;
|
||||
/* 0x98 */ cBgW_BlkElm* pm_blk;
|
||||
/* 0x9C */ cBgW_GrpElm* pm_grp;
|
||||
/* 0xA0 */ cBgW_NodeTree* pm_node_tree;
|
||||
/* 0xA0 */ cBgW_NodeTree* m_nt_tbl;
|
||||
/* 0xA4 */ int m_rootGrpIdx;
|
||||
};
|
||||
|
||||
|
||||
@@ -9,16 +9,20 @@
|
||||
// Axis aligned bounding box
|
||||
class cM3dGAab {
|
||||
private:
|
||||
public:
|
||||
/* 0x00 */ cXyz mMin;
|
||||
/* 0x0C */ cXyz mMax;
|
||||
/* 0x18 vtable */
|
||||
/* 0x18 */ /* vtable */
|
||||
|
||||
public:
|
||||
virtual ~cM3dGAab() {}
|
||||
void SetMinMax(const cXyz&);
|
||||
void Set(const cXyz& min, const cXyz& max) {
|
||||
mMin = min;
|
||||
mMax = max;
|
||||
void SetMinMax(const cM3dGAab& aab) {
|
||||
SetMinMax(aab.mMin);
|
||||
SetMinMax(aab.mMax);
|
||||
}
|
||||
void Set(const cXyz* min, const cXyz* max) {
|
||||
mMin = *min;
|
||||
mMax = *max;
|
||||
}
|
||||
void SetMin(const cXyz&);
|
||||
void SetMax(const cXyz&);
|
||||
@@ -56,6 +60,26 @@ public:
|
||||
mMax.y = -1000000000.0f;
|
||||
mMax.x = -1000000000.0f;
|
||||
}
|
||||
void ClearForMinMaxY() {
|
||||
mMin.y = 1000000000.0f;
|
||||
mMax.y = -1000000000.0f;
|
||||
}
|
||||
void SetMinMaxY(f32 y) {
|
||||
if (mMin.y > y) {
|
||||
mMin.y = y;
|
||||
}
|
||||
if (mMax.y < y) {
|
||||
mMax.y = y;
|
||||
}
|
||||
}
|
||||
void PlusR(f32 r) {
|
||||
mMin.x -= r;
|
||||
mMin.y -= r;
|
||||
mMin.z -= r;
|
||||
mMax.x += r;
|
||||
mMax.y += r;
|
||||
mMax.z += r;
|
||||
}
|
||||
bool CrossY(const cXyz* v) const {
|
||||
if (mMin.x > v->x || mMax.x < v->x || mMin.z > v->z || mMax.z < v->z) {
|
||||
return false;
|
||||
@@ -69,6 +93,13 @@ public:
|
||||
bool TopPlaneYUnder(f32 y) const {
|
||||
return mMax.y < y;
|
||||
}
|
||||
|
||||
void Cross(const cM3dGAab*) const {}
|
||||
void Cross(const cM3dGCyl*) const {}
|
||||
void Cross(const cM3dGLin*) const {}
|
||||
void Cross(const cM3dGSph*) const {}
|
||||
void SetMaxY(f32) {}
|
||||
void SetMinY(f32) {}
|
||||
}; // Size = 0x1C
|
||||
|
||||
STATIC_ASSERT(0x1C == sizeof(cM3dGAab));
|
||||
|
||||
@@ -44,14 +44,13 @@ public:
|
||||
bool cross(const cM3dGCyl*, f32*) const;
|
||||
bool Cross(const cM3dGCps* cps, cXyz* dst) const { return cM3d_Cross_CpsCyl(*cps, *this, dst); }
|
||||
bool Cross(const cM3dGTri& tri, cXyz* dst) const { return cM3d_Cross_CylTri(this, &tri, dst); }
|
||||
cXyz& GetC() { return mCenter; }
|
||||
const cXyz& GetC() const { return mCenter; }
|
||||
cXyz* GetCP() { return &mCenter; }
|
||||
const cXyz* GetCP() const { return &mCenter; }
|
||||
f32 GetR() const { return mRadius; }
|
||||
f32* GetRP() { return &mRadius; }
|
||||
f32 GetH() const { return mHeight; }
|
||||
cXyz& GetC() { return mCenter; }
|
||||
|
||||
void GetC() const {}
|
||||
void GetCP() {}
|
||||
void GetRP() {}
|
||||
}; // Size = 0x18
|
||||
|
||||
STATIC_ASSERT(0x18 == sizeof(cM3dGCyl));
|
||||
|
||||
Reference in New Issue
Block a user