23 #include <boost/thread.hpp>
24 #include <unordered_map>
25 #include <unordered_set>
30 class DtIndirectEntityGeometry;
31 class DtIndirectModelsContainer;
34 class DtIndirectGeometryGrid;
73 , INSTANCE_REMOVE_REGULAR
76 , INSTANCE_ADD_MOVE_NEW_CELL
79 , INSTANCE_REMOVE_MOVE_OLD_CELL
82 , INSTANCE_REMOVE_MOVE_CANCEL_NEW_CELL
85 , INSTANCE_REMOVE_CELL_PAGED_OUT
112 virtual bool ts_removeCell(
const Vector3_int& cellId);
130 virtual void setCellSize(
const Vector3_64& cellSize);
132 virtual const Vector3_64& cellSize(
void)
const;
136 virtual void setCellPadding(
const Vector3_64& padding);
141 virtual const Vector3_64& cellPadding(
void)
const;
163 int modelSet(
void)
const;
195 const int myModelSet = -1;
Vector3_64 myCellPadding
the cell 'padding'
Definition: DtIndirectGeometryGrid.h:183
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::unordered_map< Vector3_int, osg::ref_ptr< DtIndirectEntityGeometry >, DtIndirectCellHasher > MapCellIdsToIndirectGeometry
Definition: DtIndirectGeometryGrid.h:62
DtIndirectLimitTextureStrategy * myLimitTextureStrategy
Definition: DtIndirectGeometryGrid.h:193
DtVirtualBaseClassCreator< DtIndirectGeometryGrid, const int & > DtIndirectGeometryGridCreator
creator
Definition: DtIndirectGeometryGrid.h:36
const char * creatorTypeName< DtIndirectGeometryGrid >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectGeometryGrid.h:43
boost::mutex myMapCellIdsToIndirectGeometryMutex
Definition: DtIndirectGeometryGrid.h:185
std::unordered_map< int, int > myModelIdToNumInstances
map of model ids to number of instances of those model ids, for the entire grid
Definition: DtIndirectGeometryGrid.h:191
class for holding an indirect geometry registrar (which holds the information about how to draw model...
Definition: DtIndirectModelsContainer.h:55
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
Inherited from DtIndirectGeometry additionally implements: -removal of instances -ability to set/get ...
Definition: DtIndirectEntityGeometry.h:38
std::unordered_map< Vector3_int, osg::ref_ptr< osg::Drawable >, DtIndirectCellHasher > MapCellIdsToDebugCellDrawables
Definition: DtIndirectGeometryGrid.h:65
Axis Aligned Bounding Box class.
InstanceTrackingType
Definition: DtIndirectGeometryGrid.h:67
std::unordered_map< Vector3_int, std::unordered_map< int, int >, DtIndirectCellHasher > myMapCellToModelInstances
map of a cell to a map of model ids to number of instances of those model ids, in the cell ...
Definition: DtIndirectGeometryGrid.h:188
This class is passed as a pointer to DtIndirectTextureProcessor. The processor then uses this in conj...
Definition: DtIndirectLimitTextureStrategy.h:65
Vector3_64 myCellSize
the cell size
Definition: DtIndirectGeometryGrid.h:180
MapCellIdsToDebugCellDrawables myMapCellIdsToDebugCellDrawables
Definition: DtIndirectGeometryGrid.h:175
DtIndirectModelsContainer * myModelsContainer
Definition: DtIndirectGeometryGrid.h:177
Contains DLL export macros.
MapCellIdsToIndirectGeometry myMapCellIdsToIndirectGeometry
Definition: DtIndirectGeometryGrid.h:173
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
osg::ref_ptr< osg::Node > myGridNode
Definition: DtIndirectGeometryGrid.h:171
friend DtIndirectGeometryGridCreator
only creator can created
Definition: DtIndirectGeometryGrid.h:89
DtDe & myDe
reference to DtDe
Definition: DtIndirectGeometryGrid.h:168
Manages a bunch of 'cells' for a given cell size (similar to a sparse octree) each cell has a...
Definition: DtIndirectGeometryGrid.h:57
hash for Vector3Int (cell ids), so that we can map cell ids to the corresponding indirect geometry ...
Definition: DtIndirectCellHasher.h:19
Contains makVrv::DtIndirectCellHasher class.