mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-02 09:39:48 -04:00
dfa8efa97b
* some wii OS fixes * remove old dol2asm comments * remove dol2asm.h * remove function address comments * normalize ATTRIBUTE_ALIGN usage * DECL_WEAK macro * fix gcc attribute weak macro * wrap more mwcc specific things in ifdefs * fixes * fix revo sdk version flags * fixes
90 lines
1.6 KiB
C++
90 lines
1.6 KiB
C++
/**
|
|
* c_m3d_g_aab.cpp
|
|
*
|
|
*/
|
|
|
|
#include "SSystem/SComponent/c_m3d_g_aab.h"
|
|
|
|
void cM3dGAab::Set(const cXyz* min, const cXyz* max) {
|
|
mMin = *min;
|
|
mMax = *max;
|
|
}
|
|
|
|
bool cM3dGAab::CrossY(const cXyz* other) const {
|
|
if (mMin.x > other->x || mMax.x < other->x || mMin.z > other->z || mMax.z < other->z) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
bool cM3dGAab::UnderPlaneYUnder(f32 y) const {
|
|
if (mMin.y < y) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool cM3dGAab::TopPlaneYUnder(f32 y) const {
|
|
if (mMax.y < y) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void cM3dGAab::ClearForMinMax() {
|
|
mMin.x = mMin.y = mMin.z = G_CM3D_F_INF;
|
|
mMax.x = mMax.y = mMax.z = -G_CM3D_F_INF;
|
|
}
|
|
|
|
void cM3dGAab::SetMinMax(const cXyz& pMinMax) {
|
|
this->SetMin(pMinMax);
|
|
this->SetMax(pMinMax);
|
|
}
|
|
|
|
void cM3dGAab::SetMinMax(const cM3dGAab& other) {
|
|
this->SetMinMax(other.mMin);
|
|
this->SetMinMax(other.mMax);
|
|
}
|
|
|
|
void cM3dGAab::SetMin(const cXyz& min) {
|
|
if (mMin.x > min.x) {
|
|
mMin.x = min.x;
|
|
}
|
|
if (mMin.y > min.y) {
|
|
mMin.y = min.y;
|
|
}
|
|
if (mMin.z > min.z) {
|
|
mMin.z = min.z;
|
|
}
|
|
}
|
|
|
|
void cM3dGAab::SetMax(const cXyz& max) {
|
|
if (mMax.x < max.x) {
|
|
mMax.x = max.x;
|
|
}
|
|
if (mMax.y < max.y) {
|
|
mMax.y = max.y;
|
|
}
|
|
if (mMax.z < max.z) {
|
|
mMax.z = max.z;
|
|
}
|
|
}
|
|
|
|
void cM3dGAab::CalcCenter(cXyz* out) const {
|
|
PSVECAdd(&mMin, &mMax, out);
|
|
PSVECScale(out, out, 0.5f);
|
|
}
|
|
|
|
void cM3dGAab::PlusR(f32 r) {
|
|
mMin.x -= r;
|
|
mMin.y -= r;
|
|
mMin.z -= r;
|
|
|
|
mMax.x += r;
|
|
mMax.y += r;
|
|
mMax.z += r;
|
|
}
|