#include <BoxColManager.hh>
Spatial indexing manager for entities with dynamic collision.
Definition at line 67 of file BoxColManager.hh.
Public Member Functions | |
BoxColManager () | |
Creates two intangible units to represent the spatial bounds. | |
void | clear () |
void | calc () |
Recalculate the bounds of all active units having PermRecalcAABB or TempRecalcAABB flag, and then update the low and high points accordingly. | |
ObjectCollidable * | getNextObject () |
ObjectDrivable * | getNextDrivable () |
void | resetIterators () |
BoxColUnit * | insertDriver (f32 radius, f32 maxSpeed, const EGG::Vector3f *pos, bool alwaysRecalc, Kart::KartObject *kartObject) |
BoxColUnit * | insertObject (f32 radius, f32 maxSpeed, const EGG::Vector3f *pos, bool alwaysRecalc, void *userData) |
BoxColUnit * | insertDrivable (f32 radius, f32 maxSpeed, const EGG::Vector3f *pos, bool alwaysRecalc, void *userData) |
void | reinsertUnit (BoxColUnit *unit) |
void | search (BoxColUnit *unit, const BoxColFlag &flag) |
void | search (f32 radius, const EGG::Vector3f &pos, const BoxColFlag &flag) |
bool | isSphereInSpatialCache (f32 radius, const EGG::Vector3f &pos, const BoxColFlag &flag) const |
Static Public Member Functions | |
static BoxColManager * | CreateInstance () |
static void | DestroyInstance () |
static BoxColManager * | Instance () |
Private Member Functions | |
void * | getNextImpl (s32 &id, const BoxColFlag &flag) |
Helper function since the getters share all code except the flag. | |
void | iterate (s32 &iter, const BoxColFlag &flag) |
BoxColUnit * | insert (f32 radius, f32 maxSpeed, const EGG::Vector3f *pos, const BoxColFlag &flag, void *userData) |
void | remove (BoxColUnit *&pUnit) |
void | searchImpl (BoxColUnit *unit, const BoxColFlag &flag) |
void | searchImpl (f32 radius, const EGG::Vector3f &pos, const BoxColFlag &flag) |
![]() |
Private Attributes | |
std::array< BoxColHighPoint, MAX_UNIT_COUNT > | m_highPoints |
A unit's rightmost Z-axis point. | |
std::array< BoxColLowPoint, MAX_UNIT_COUNT > | m_lowPoints |
A unit's leftmost Z-axis point;. | |
std::array< BoxColUnit, MAX_UNIT_COUNT > | m_unitPool |
Where all the units live. | |
std::array< BoxColUnit *, MAX_UNIT_COUNT > | m_units |
Units within our search bounds. | |
std::array< u32, MAX_UNIT_COUNT > | m_unitIDs |
Specifies what unit to retrieve from the pool during allocation. | |
s32 | m_unitCount |
s32 | m_nextUnitID |
s32 | m_nextObjectID |
s32 | m_nextDrivableID |
s32 | m_maxID |
BoxColUnit * | m_cacheQueryUnit |
EGG::Vector3f | m_cachePoint |
f32 | m_cacheRadius |
BoxColFlag | m_cacheFlag |
Static Private Attributes | |
static constexpr size_t | MAX_UNIT_COUNT = 0x100 |
static BoxColManager * | s_instance = nullptr |
Additional Inherited Members | |
![]() | |
static constexpr u16 | getLinkOffset () |
|
0x807856E0 |
Creates two intangible units to represent the spatial bounds.
Definition at line 53 of file BoxColManager.cc.
|
override0x807854E4 |
Definition at line 72 of file BoxColManager.cc.
|
0x807859B0 |
Recalculate the bounds of all active units having PermRecalcAABB or TempRecalcAABB flag, and then update the low and high points accordingly.
Definition at line 92 of file BoxColManager.cc.
|
0x8078597C |
Definition at line 80 of file BoxColManager.cc.
|
static0x807855DC |
Definition at line 279 of file BoxColManager.cc.
|
static0x8078562C |
Definition at line 286 of file BoxColManager.cc.
|
nodiscard0x80785EC4 |
Definition at line 188 of file BoxColManager.cc.
|
nodiscardprivate |
Helper function since the getters share all code except the flag.
Definition at line 298 of file BoxColManager.cc.
|
nodiscard0x80785E5C |
Definition at line 183 of file BoxColManager.cc.
|
nodiscardprivate0x80786134 |
Definition at line 321 of file BoxColManager.cc.
|
nodiscard0x80786120 |
Definition at line 226 of file BoxColManager.cc.
|
nodiscard0x80786050 |
Definition at line 202 of file BoxColManager.cc.
|
nodiscard0x80786078 |
Definition at line 214 of file BoxColManager.cc.
|
staticnodiscard |
Definition at line 293 of file BoxColManager.cc.
|
nodiscard0x80786E60 |
Definition at line 262 of file BoxColManager.cc.
|
privateInlined |
Definition at line 310 of file BoxColManager.cc.
|
0x80786DBC |
Definition at line 238 of file BoxColManager.cc.
|
private0x80786578 |
Definition at line 419 of file BoxColManager.cc.
|
0x80785F2C |
Definition at line 193 of file BoxColManager.cc.
|
0x80786774 |
Definition at line 250 of file BoxColManager.cc.
|
0x80786B14 |
Definition at line 256 of file BoxColManager.cc.
|
private0x807868C0 |
Definition at line 474 of file BoxColManager.cc.
|
private0x80786C60 |
Definition at line 559 of file BoxColManager.cc.
|
private |
Definition at line 125 of file BoxColManager.hh.
|
private |
Definition at line 123 of file BoxColManager.hh.
|
private |
Definition at line 122 of file BoxColManager.hh.
|
private |
Definition at line 124 of file BoxColManager.hh.
|
private |
A unit's rightmost Z-axis point.
Definition at line 109 of file BoxColManager.hh.
|
private |
A unit's leftmost Z-axis point;.
Definition at line 110 of file BoxColManager.hh.
|
private |
Definition at line 121 of file BoxColManager.hh.
|
private |
Definition at line 120 of file BoxColManager.hh.
|
private |
Definition at line 119 of file BoxColManager.hh.
|
private |
Definition at line 118 of file BoxColManager.hh.
|
private |
Definition at line 117 of file BoxColManager.hh.
|
private |
Specifies what unit to retrieve from the pool during allocation.
Definition at line 115 of file BoxColManager.hh.
|
private |
Where all the units live.
Definition at line 111 of file BoxColManager.hh.
|
private |
Units within our search bounds.
Definition at line 112 of file BoxColManager.hh.
|
staticconstexprprivate |
Definition at line 107 of file BoxColManager.hh.
|
staticprivate0x809C2EF0 |
Definition at line 127 of file BoxColManager.hh.