#include <BoxColManager.hh>
Spatial indexing manager for entities with dynamic collision.
Definition at line 73 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 | remove (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 | searchImpl (BoxColUnit *unit, const BoxColFlag &flag) |
| void | searchImpl (f32 radius, const EGG::Vector3f &pos, const BoxColFlag &flag) |
Private Member Functions inherited from EGG::Disposer | |
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 Private Member Functions inherited from EGG::Disposer | |
| 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 335 of file BoxColManager.cc.
|
static0x8078562C |
Definition at line 342 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 354 of file BoxColManager.cc.
|
nodiscard0x80785E5C |
Definition at line 183 of file BoxColManager.cc.
|
nodiscardprivate0x80786134 |
Definition at line 377 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 349 of file BoxColManager.cc.
|
nodiscard0x80786E60 |
Definition at line 318 of file BoxColManager.cc.
|
privateInlined |
Definition at line 366 of file BoxColManager.cc.
|
0x80786DBC |
Definition at line 238 of file BoxColManager.cc.
|
0x80786578 |
Definition at line 250 of file BoxColManager.cc.
|
0x80785F2C |
Definition at line 193 of file BoxColManager.cc.
|
0x80786774 |
Definition at line 306 of file BoxColManager.cc.
|
0x80786B14 |
Definition at line 312 of file BoxColManager.cc.
|
private0x807868C0 |
Definition at line 479 of file BoxColManager.cc.
|
private0x80786C60 |
Definition at line 564 of file BoxColManager.cc.
|
private |
Definition at line 133 of file BoxColManager.hh.
|
private |
Definition at line 131 of file BoxColManager.hh.
|
private |
Definition at line 130 of file BoxColManager.hh.
|
private |
Definition at line 132 of file BoxColManager.hh.
|
private |
A unit's rightmost Z-axis point.
Definition at line 117 of file BoxColManager.hh.
|
private |
A unit's leftmost Z-axis point;.
Definition at line 118 of file BoxColManager.hh.
|
private |
Definition at line 129 of file BoxColManager.hh.
|
private |
Definition at line 128 of file BoxColManager.hh.
|
private |
Definition at line 127 of file BoxColManager.hh.
|
private |
Definition at line 126 of file BoxColManager.hh.
|
private |
Definition at line 125 of file BoxColManager.hh.
|
private |
Specifies what unit to retrieve from the pool during allocation.
Definition at line 123 of file BoxColManager.hh.
|
private |
Where all the units live.
Definition at line 119 of file BoxColManager.hh.
|
private |
Units within our search bounds.
Definition at line 120 of file BoxColManager.hh.
|
staticconstexprprivate |
Definition at line 115 of file BoxColManager.hh.
|
staticprivate0x809C2EF0 |
Definition at line 135 of file BoxColManager.hh.