![]() |
VR-Forces 4.10 Class Documentation
|
Manages a bunch of 'cells' for a given cell size (similar to a sparse octree) each cell has a. More...
Public Types | |
| typedef std::unordered_map < Vector3_int, osg::ref_ptr < DtIndirectGeometry > , DtIndirectCellHasher > | MapCellIdsToIndirectGeometry |
| typedef std::unordered_map < Vector3_int, osg::ref_ptr < osg::Drawable > , DtIndirectCellHasher > | MapCellIdsToDebugCellDrawables |
Public Member Functions | |
| DtIndirectGeometryGrid (DtDe &de) | |
| CTOR. More... | |
| virtual | ~DtIndirectGeometryGrid () |
| DTOR. More... | |
| virtual DtIndirectGeometry * | ts_getOrCreateForCell (const Vector3_int &cellId, bool &created) |
| get an indirect geometry for this cell, or create one created parameter indicates whether this was created anew Called by the background update tickables which run in parallel so this function has a mutex in order to be thread safe More... | |
| virtual bool | ts_removeCell (const Vector3_int &cellId) |
| remove a cell and indirect geometry for the given cell More... | |
| virtual Vector3_int | cellIdFor (const Vector3_64 &position) const |
| get the cell id for a given position More... | |
| virtual Vector3_64 | cellCenter (const Vector3_int &cellId) const |
| get the cell center of a given cell More... | |
| virtual AxisAlignedBoundingBox_64 | GetAxisAlignedBoundingBox (const Vector3_int &cellId) const |
| get AABB More... | |
| virtual AxisAlignedBoundingBox_64 | GetAxisAlignedBoundingBoxWithPadding (const Vector3_int &cellId) const |
| get AABB with padding More... | |
| virtual DtIndirectModelsContainer * | modelsContainer () |
| get the internal models' container More... | |
| virtual osg::ref_ptr< osg::Node > | gridNode () |
| get the underlying top level grid node that is the parent of the indirect geometries More... | |
| virtual const MapCellIdsToIndirectGeometry & | mapCellIdsToIndirectGeometry (void) const |
| get the map of cell ids to indirect geometries More... | |
| virtual const MapCellIdsToDebugCellDrawables & | mapCellIdsToDebugCellDrawables (void) const |
| get the map of cell ids to indirect geometries (const version) More... | |
| virtual void | setCellSize (const Vector3_64 &cellSize) |
| set/get the cell size More... | |
| virtual const Vector3_64 & | cellSize (void) const |
| virtual void | setCellPadding (const Vector3_64 &padding) |
| set/get the cell padding. More... | |
| virtual const Vector3_64 & | cellPadding (void) const |
Protected Attributes | |
| DtDe & | myDe |
| reference to DtDe More... | |
| osg::ref_ptr< osg::Node > | myGridNode |
| MapCellIdsToIndirectGeometry | myMapCellIdsToIndirectGeometry |
| MapCellIdsToDebugCellDrawables | myMapCellIdsToDebugCellDrawables |
| DtIndirectModelsContainer * | myModelsContainer |
| Vector3_64 | myCellSize |
| the cell size More... | |
| Vector3_64 | myCellPadding |
| the cell 'padding' More... | |
| boost::mutex | myMapCellIdsToIndirectGeometryMutex |
Private Member Functions | |
| DtIndirectGeometryGrid ()=delete | |
| default constructor not implemented More... | |
| DtIndirectGeometryGrid (const DtIndirectGeometryGrid &other)=delete | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectGeometryGrid & | operator= (const DtIndirectGeometryGrid &other)=delete |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
Manages a bunch of 'cells' for a given cell size (similar to a sparse octree) each cell has a.
| typedef std::unordered_map<Vector3_int, osg::ref_ptr<DtIndirectGeometry>, DtIndirectCellHasher> makVrv::DtIndirectGeometryGrid::MapCellIdsToIndirectGeometry |
| typedef std::unordered_map<Vector3_int, osg::ref_ptr<osg::Drawable>, DtIndirectCellHasher > makVrv::DtIndirectGeometryGrid::MapCellIdsToDebugCellDrawables |
| makVrv::DtIndirectGeometryGrid::DtIndirectGeometryGrid | ( | DtDe & | de | ) |
CTOR.
|
virtual |
DTOR.
|
privatedelete |
default constructor not implemented
|
privatedelete |
Copy Constructor not implemented – Copy Not Allowed.
|
privatedelete |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
get an indirect geometry for this cell, or create one created parameter indicates whether this was created anew Called by the background update tickables which run in parallel so this function has a mutex in order to be thread safe
|
virtual |
remove a cell and indirect geometry for the given cell
|
virtual |
get the cell id for a given position
|
virtual |
get the cell center of a given cell
|
virtual |
get AABB
|
virtual |
get AABB with padding
|
virtual |
get the internal models' container
|
virtual |
set/get the cell size
|
virtual |
|
virtual |
set/get the cell padding.
If an entity position is out of a cell (as determined by cellIdFor(), then we can further determine if its still in the old cell expanded with this padding. This is useful for retaining the entity within an old cell, if they flip/flop on the edges of 2 cells (e.g. buoys)
|
virtual |
|
virtual |
get the underlying top level grid node that is the parent of the indirect geometries
|
virtual |
get the map of cell ids to indirect geometries
|
virtual |
get the map of cell ids to indirect geometries (const version)
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
the cell size
|
protected |
the cell 'padding'
|
protected |