mirror of
https://github.com/encounter/Petari.git
synced 2026-03-30 11:34:15 -07:00
43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include "Game/LiveActor/ClippingJudge.hpp"
|
|
#include "Game/Util.hpp"
|
|
|
|
ClippingJudge::ClippingJudge(const char *pName) : NameObj(pName), mFrustum() {
|
|
for (s32 i = 0; i < 8; i++) {
|
|
mClipDistances[i] = -1.0f;
|
|
}
|
|
|
|
mClipDistances[0] = 0.0f;
|
|
mClipDistances[1] = 60000.0f;
|
|
mClipDistances[2] = 50000.0f;
|
|
mClipDistances[3] = 40000.0f;
|
|
mClipDistances[4] = 30000.0f;
|
|
mClipDistances[5] = 20000.0f;
|
|
mClipDistances[6] = 10000.0f;
|
|
mClipDistances[7] = 5000.0f;
|
|
}
|
|
|
|
void ClippingJudge::init(const JMapInfoIter &rIter) {
|
|
|
|
}
|
|
|
|
void ClippingJudge::movement() {
|
|
calcViewingVolume(&mFrustum, MR::getFarZ());
|
|
|
|
for (u32 i = 1; i < 8; i++) {
|
|
calcViewingVolume(&mClipFrustums[i], mClipDistances[i]);
|
|
}
|
|
}
|
|
|
|
bool ClippingJudge::isJudgedToClipFrustum(const TVec3f &rVec, f32 a2) const {
|
|
return !mFrustum.mayIntersectBall3(rVec, a2);
|
|
}
|
|
|
|
bool ClippingJudge::isJudgedToClipFrustum(const TVec3f &rVec, f32 a2, s32 index) const {
|
|
return (!index) ? !mFrustum.mayIntersectBall3(rVec, a2) : !mClipFrustums[index].mayIntersectBall3(rVec, a2);
|
|
}
|
|
|
|
// ClippingJudge::calcViewingVolume
|
|
|
|
ClippingJudge::~ClippingJudge() {
|
|
|
|
} |