Files

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() {
}