Plasma Engine  2.0
Loading...
Searching...
No Matches
plSpatialSystem_RegularGrid Class Reference
Inheritance diagram for plSpatialSystem_RegularGrid:

Public Member Functions

 plSpatialSystem_RegularGrid (plUInt32 uiCellSize=128)
 
plResult GetCellBoxForSpatialData (const plSpatialDataHandle &hData, plBoundingBox &out_boundingBox) const
 Returns the bounding box of the cell associated with the given spatial data. Useful for debug visualizations.
 
void GetAllCellBoxes (plDynamicArray< plBoundingBox > &out_boundingBoxes, plSpatialData::Category filterCategory=plInvalidSpatialDataCategory) const
 Returns bounding boxes of all existing cells.
 
template<typename Functor >
PL_FORCE_INLINE void ForEachGrid (const Data &data, const plSpatialDataHandle &hData, Functor func) const
 
- Public Member Functions inherited from plSpatialSystem
virtual void FindObjectsInSphere (const plBoundingSphere &sphere, const QueryParams &queryParams, plDynamicArray< plGameObject * > &out_objects) const
 
virtual void FindObjectsInBox (const plBoundingBox &box, const QueryParams &queryParams, plDynamicArray< plGameObject * > &out_objects) const
 
- Public Member Functions inherited from plReflectedClass
virtual const plRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const plRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
PL_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Private Member Functions

plVisibilityState GetVisibilityState (const plSpatialDataHandle &hData, plUInt32 uiNumFramesBeforeInvisible) const override
 Retrieves a state describing how visible the object is.
 

Additional Inherited Members

- Public Types inherited from plSpatialSystem
using QueryCallback = plDelegate<plVisitorExecution::Enum(plGameObject*)>
 
using IsOccludedFunc = plDelegate<bool(const plSimdBBox&)>
 
- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 
- Protected Attributes inherited from plSpatialSystem
plProxyAllocator m_Allocator
 
plUInt64 m_uiFrameCounter = 0
 

Member Function Documentation

◆ CreateSpatialData()

plSpatialDataHandle plSpatialSystem_RegularGrid::CreateSpatialData ( const plSimdBBoxSphere & bounds,
plGameObject * pObject,
plUInt32 uiCategoryBitmask,
const plTagSet & tags )
overrideprivatevirtual

Implements plSpatialSystem.

◆ CreateSpatialDataAlwaysVisible()

plSpatialDataHandle plSpatialSystem_RegularGrid::CreateSpatialDataAlwaysVisible ( plGameObject * pObject,
plUInt32 uiCategoryBitmask,
const plTagSet & tags )
overrideprivatevirtual

Implements plSpatialSystem.

◆ DeleteSpatialData()

void plSpatialSystem_RegularGrid::DeleteSpatialData ( const plSpatialDataHandle & hData)
overrideprivatevirtual

Implements plSpatialSystem.

◆ FindObjectsInBox()

void plSpatialSystem_RegularGrid::FindObjectsInBox ( const plBoundingBox & box,
const QueryParams & queryParams,
QueryCallback callback ) const
overrideprivatevirtual

Implements plSpatialSystem.

◆ FindObjectsInSphere()

void plSpatialSystem_RegularGrid::FindObjectsInSphere ( const plBoundingSphere & sphere,
const QueryParams & queryParams,
QueryCallback callback ) const
overrideprivatevirtual

Implements plSpatialSystem.

◆ FindVisibleObjects()

void plSpatialSystem_RegularGrid::FindVisibleObjects ( const plFrustum & frustum,
const QueryParams & queryParams,
plDynamicArray< const plGameObject * > & out_Objects,
plSpatialSystem::IsOccludedFunc IsOccluded,
plVisibilityState visType ) const
overrideprivatevirtual

Implements plSpatialSystem.

◆ GetVisibilityState()

plVisibilityState plSpatialSystem_RegularGrid::GetVisibilityState ( const plSpatialDataHandle & hData,
plUInt32 uiNumFramesBeforeInvisible ) const
overrideprivatevirtual

Retrieves a state describing how visible the object is.

An object may be invisible, fully visible, or indirectly visible (through shadows or reflections).

Parameters
uiNumFramesBeforeInvisibleUsed to treat an object that was visible and just became invisible as visible for a few more frames.

Implements plSpatialSystem.

◆ StartNewFrame()

void plSpatialSystem_RegularGrid::StartNewFrame ( )
overrideprivatevirtual

Reimplemented from plSpatialSystem.

◆ UpdateSpatialDataBounds()

void plSpatialSystem_RegularGrid::UpdateSpatialDataBounds ( const plSpatialDataHandle & hData,
const plSimdBBoxSphere & bounds )
overrideprivatevirtual

Implements plSpatialSystem.

◆ UpdateSpatialDataObject()

void plSpatialSystem_RegularGrid::UpdateSpatialDataObject ( const plSpatialDataHandle & hData,
plGameObject * pObject )
overrideprivatevirtual

Implements plSpatialSystem.


The documentation for this class was generated from the following files: