|
virtual JPH_OVERRIDE_NEW_DELETE | ~BroadPhaseQuadTree () override |
| Destructor. More...
|
|
virtual void | Init (BodyManager *inBodyManager, const BroadPhaseLayerInterface &inLayerInterface) override |
|
virtual void | Optimize () override |
| Should be called after many objects have been inserted to make the broadphase more efficient, usually done on startup only. More...
|
|
virtual void | FrameSync () override |
| Must be called just before updating the broadphase when none of the body mutexes are locked. More...
|
|
virtual void | LockModifications () override |
| Must be called before UpdatePrepare to prevent modifications from being made to the tree. More...
|
|
virtual UpdateState | UpdatePrepare () override |
|
virtual void | UpdateFinalize (const UpdateState &inUpdateState) override |
| Finalizing the update will quickly apply the changes. More...
|
|
virtual void | UnlockModifications () override |
| Must be called after UpdateFinalize to allow modifications to the broadphase. More...
|
|
virtual AddState | AddBodiesPrepare (BodyID *ioBodies, int inNumber) override |
|
virtual void | AddBodiesFinalize (BodyID *ioBodies, int inNumber, AddState inAddState) override |
|
virtual void | AddBodiesAbort (BodyID *ioBodies, int inNumber, AddState inAddState) override |
|
virtual void | RemoveBodies (BodyID *ioBodies, int inNumber) override |
|
virtual void | NotifyBodiesAABBChanged (BodyID *ioBodies, int inNumber, bool inTakeLock) override |
|
virtual void | NotifyBodiesLayerChanged (BodyID *ioBodies, int inNumber) override |
| Call whenever the layer (and optionally the aabb as well) of a body changes (can change order of ioBodies array) More...
|
|
virtual void | CastRay (const RayCast &inRay, RayCastBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Cast a ray and add any hits to ioCollector. More...
|
|
virtual void | CollideAABox (const AABox &inBox, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Get bodies intersecting with inBox and any hits to ioCollector. More...
|
|
virtual void | CollideSphere (Vec3Arg inCenter, float inRadius, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Get bodies intersecting with a sphere and any hits to ioCollector. More...
|
|
virtual void | CollidePoint (Vec3Arg inPoint, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Get bodies intersecting with a point and any hits to ioCollector. More...
|
|
virtual void | CollideOrientedBox (const OrientedBox &inBox, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Get bodies intersecting with an oriented box and any hits to ioCollector. More...
|
|
virtual void | CastAABoxNoLock (const AABoxCast &inBox, CastShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Same as BroadPhaseQuery::CastAABox but can be implemented in a way to take no broad phase locks. More...
|
|
virtual void | CastAABox (const AABoxCast &inBox, CastShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const override |
| Cast a box and add any hits to ioCollector. More...
|
|
virtual void | FindCollidingPairs (BodyID *ioActiveBodies, int inNumActiveBodies, float inSpeculativeContactDistance, const ObjectVsBroadPhaseLayerFilter &inObjectVsBroadPhaseLayerFilter, const ObjectLayerPairFilter &inObjectLayerPairFilter, BodyPairCollector &ioPairCollector) const override |
|
virtual AABox | GetBounds () const override |
| Get the bounding box of all objects in the broadphase. More...
|
|
virtual void | Init (BodyManager *inBodyManager, const BroadPhaseLayerInterface &inLayerInterface) |
|
virtual void | Optimize () |
| Should be called after many objects have been inserted to make the broadphase more efficient, usually done on startup only. More...
|
|
virtual void | FrameSync () |
| Must be called just before updating the broadphase when none of the body mutexes are locked. More...
|
|
virtual void | LockModifications () |
| Must be called before UpdatePrepare to prevent modifications from being made to the tree. More...
|
|
virtual UpdateState | UpdatePrepare () |
|
virtual void | UpdateFinalize (const UpdateState &inUpdateState) |
| Finalizing the update will quickly apply the changes. More...
|
|
virtual void | UnlockModifications () |
| Must be called after UpdateFinalize to allow modifications to the broadphase. More...
|
|
virtual AddState | AddBodiesPrepare (BodyID *ioBodies, int inNumber) |
|
virtual void | AddBodiesFinalize (BodyID *ioBodies, int inNumber, AddState inAddState)=0 |
|
virtual void | AddBodiesAbort (BodyID *ioBodies, int inNumber, AddState inAddState) |
|
virtual void | RemoveBodies (BodyID *ioBodies, int inNumber)=0 |
|
virtual void | NotifyBodiesAABBChanged (BodyID *ioBodies, int inNumber, bool inTakeLock=true)=0 |
|
virtual void | NotifyBodiesLayerChanged (BodyID *ioBodies, int inNumber)=0 |
| Call whenever the layer (and optionally the aabb as well) of a body changes (can change order of ioBodies array) More...
|
|
virtual void | FindCollidingPairs (BodyID *ioActiveBodies, int inNumActiveBodies, float inSpeculativeContactDistance, const ObjectVsBroadPhaseLayerFilter &inObjectVsBroadPhaseLayerFilter, const ObjectLayerPairFilter &inObjectLayerPairFilter, BodyPairCollector &ioPairCollector) const =0 |
|
virtual void | CastAABoxNoLock (const AABoxCast &inBox, CastShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter, const ObjectLayerFilter &inObjectLayerFilter) const =0 |
| Same as BroadPhaseQuery::CastAABox but can be implemented in a way to take no broad phase locks. More...
|
|
virtual AABox | GetBounds () const =0 |
| Get the bounding box of all objects in the broadphase. More...
|
|
virtual | ~BroadPhaseQuery ()=default |
| Virtual destructor. More...
|
|
virtual void | CastRay (const RayCast &inRay, RayCastBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter={ }, const ObjectLayerFilter &inObjectLayerFilter={ }) const =0 |
| Cast a ray and add any hits to ioCollector. More...
|
|
virtual void | CollideAABox (const AABox &inBox, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter={ }, const ObjectLayerFilter &inObjectLayerFilter={ }) const =0 |
| Get bodies intersecting with inBox and any hits to ioCollector. More...
|
|
virtual void | CollideSphere (Vec3Arg inCenter, float inRadius, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter={ }, const ObjectLayerFilter &inObjectLayerFilter={ }) const =0 |
| Get bodies intersecting with a sphere and any hits to ioCollector. More...
|
|
virtual void | CollidePoint (Vec3Arg inPoint, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter={ }, const ObjectLayerFilter &inObjectLayerFilter={ }) const =0 |
| Get bodies intersecting with a point and any hits to ioCollector. More...
|
|
virtual void | CollideOrientedBox (const OrientedBox &inBox, CollideShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter={ }, const ObjectLayerFilter &inObjectLayerFilter={ }) const =0 |
| Get bodies intersecting with an oriented box and any hits to ioCollector. More...
|
|
virtual void | CastAABox (const AABoxCast &inBox, CastShapeBodyCollector &ioCollector, const BroadPhaseLayerFilter &inBroadPhaseLayerFilter={ }, const ObjectLayerFilter &inObjectLayerFilter={ }) const =0 |
| Cast a box and add any hits to ioCollector. More...
|
|
| NonCopyable ()=default |
|
| NonCopyable (const NonCopyable &)=delete |
|
void | operator= (const NonCopyable &)=delete |
|
Fast SIMD based quad tree BroadPhase that is multithreading aware and tries to do a minimal amount of locking.