1#include "Game/Map/KCollision.hpp"
22bool KCollisionServer::outCheck(
const TVec3f *pPosA,
const TVec3f *pPosB, V3u *pPointA, V3u *pPointB)
const {
23 objectSpaceToLocalSpace(pPointA, *pPosA);
24 objectSpaceToLocalSpace(pPointB, *pPosB);
38 s32 invertedXMask = ~mFile->mXMask;
40 if (invertedXMask < pPointB->x) {
41 pPointB->x = invertedXMask;
44 s32 invertedYMask = ~mFile->mYMask;
46 if (invertedYMask < pPointB->y) {
47 pPointB->y = invertedYMask;
50 s32 invertedZMask = ~mFile->mZMask;
52 if (invertedZMask < pPointB->z) {
53 pPointB->z = invertedZMask;
56 if (pPointB->x < pPointA->x || pPointB->y < pPointA->y || pPointB->z < pPointA->z) {
63void KCollisionServer::objectSpaceToLocalSpace(V3u *pPoint,
const TVec3f &rPos)
const {
64 pPoint->x =
static_cast<s32
>(rPos.x - mFile->mMin.x);
65 pPoint->y =
static_cast<s32
>(rPos.y - mFile->mMin.y);
66 pPoint->z =
static_cast<s32
>(rPos.z - mFile->mMin.z);