27 #include <matrix/vlVector.h>
28 #include <matrix/vlTaitBryan.h>
30 #include <boost/thread.hpp>
32 #include <unordered_map>
42 class DtIndirectModelsContainer;
43 class DtModelDefinition;
44 class DtOsgModelInstance;
45 class DtIndirectGeometryGrid;
47 class DtIndirectEntityManagerInstanceMoveInfo;
90 ,
int modelSet,
float modelScale,
float modelRadius
91 ,
bool daylightControlled,
bool mapDofsSwitchesSequences
92 ,
int lightPointGroupId);
99 ,
float modelScale,
float modelRadius
100 ,
bool daylightControlled,
bool mapDofsSwitchesSequences
101 ,
int lightPointGroupId);
104 virtual bool hasInstance(
DtUniqueID uniqueId)
const;
107 virtual void removeInstance(
DtUniqueID uniqueID);
110 virtual int numInstances(
void)
const;
121 virtual void mapMultiSwitches(
DtUniqueID uniqueID
125 virtual void unMapMultiSwitches(
DtUniqueID uniqueID);
131 virtual void unMapSequences(
DtUniqueID uniqueID);
140 virtual void setMultiSwitchActiveSwitchSet(
DtUniqueID id, osgSim::MultiSwitch* multiSwitchOfInstance);
143 virtual void setSequenceUpdate(
DtUniqueID uniqueID, osg::Sequence* dof);
146 virtual void setUvOffsetUpdate(
DtUniqueID uniqueID,
const std::string& annotation,
147 float uOffset,
float vOffset);
150 virtual void scrollUvTextures(
DtUniqueID uniqueID,
const std::tuple<float, float, float>& uvspeeds);
153 virtual void setDofUpdate(
DtUniqueID uniqueID, osgSim::DOFTransform* dof);
156 virtual void setDofTranslation(
DtUniqueID uniqueID, osgSim::DOFTransform* dof
161 virtual void setDofOrientation(
DtUniqueID uniqueID, osgSim::DOFTransform* dof
164 ,
int animationFlags);
167 virtual void setDofOrientation(
DtUniqueID uniqueID, osgSim::DOFTransform* dof
170 ,
int animationFlags);
174 void slot_atcGlobalModelEnableChanged();
177 virtual void setPositionAndOrientation(
DtUniqueID uniqueId
178 ,
const DtVector& position,
const DtTaitBryan& orientation
179 ,
const DtVector& positionOffset,
const DtTaitBryan& orientationOffset);
188 virtual void setVisible(
DtUniqueID uniqueId,
bool visible);
191 virtual void setLightPointMaxDistance(
DtUniqueID uniqueId,
float maxDistance);
194 virtual void setTextureLoadTimeSlicePeriod(
float period);
202 virtual float textureLoadTimeSlicePeriod(
void)
const;
206 virtual void setUpdateBuffersJobsRequiredCurrentFrame(
bool requiredCurrentFrame);
214 virtual bool updateBuffersJobsRequiredCurrentFrame(
void)
const;
218 virtual void setGridCellSize(
const Vector3_64& gridCellSize);
222 virtual const Vector3_64& gridCellSize(
void)
const;
226 virtual void setCellPageOutTime(
double val);
232 virtual double cellPageOutTime(
void)
const;
238 virtual void slot_postTick();
241 virtual void excludeTextureFromLimits(
const std::string& textureFileAbolutePath);
244 virtual void excludeModelDefinitionFromLimits(
const std::string& modelDefinition);
266 virtual osgSim::DOFTransform* findMasterDof(
DtUniqueID uniqueID, osgSim::DOFTransform* dof)
const;
272 virtual void calculateAndSetInstanceMatrixTransform(
const DtVector &position
273 ,
const DtTaitBryan& orientation,
const DtVector &positionOffset,
const DtTaitBryan& orientationOffset
277 virtual void tickEntityMoves(
void);
280 virtual void tickPaging(
void);
283 virtual bool instanceIsBeingMovedTo(
const Vector3_int& cellId);
286 void setupRootNodes();
290 virtual void setupReductionExcludeTextures();
293 virtual void updateStats();
331 typedef std::unordered_map< osgSim::DOFTransform*, osg::ref_ptr<osgSim::DOFTransform> >
MapDofToDof;
internal structure for mapping a DtOsgArticulatedModel/DtOsgSimpleModel object to a corresponding ins...
Definition: DtIndirectEntityManagerInstance.h:30
Vector3_64 myGridCellSize
the grid cell size
Definition: DtIndirectEntityManager.h:307
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
class to encapsulate moving of instance from one indirect geometry to another in an entity manager/gr...
Definition: DtIndirectEntityManagerInstanceMoveInfo.h:30
Contains the DtIndirectEntityManagerInstance class declaration.
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::unordered_map< DtUniqueID, DtIndirectEntityManagerInstanceMoveInfo * > myInstancesBeingMoved
move info for the instances being moved
Definition: DtIndirectEntityManager.h:345
std::unordered_map< std::string, DtArticulatedModelParser::AnimationMap > MapModelNameToMasterMapStateNumberToSequence
Definition: DtIndirectEntityManager.h:336
double myCellPageOutTime
Definition: DtIndirectEntityManager.h:359
std::unordered_map< int, MultiSwitchList > MapStateNumberToMultiSwitchList
Definition: DtArticulatedModelParser.h:47
std::unordered_map< std::string, DtArticulatedModelParser::MapStateNumberToMultiSwitchList > MapModelNameToMasterMapStateNumberToMultiSwitchList
Definition: DtIndirectEntityManager.h:323
std::unordered_map< DtUniqueID, MapSequenceToSequence > MapInstanceSequenceToMasterSequence
Definition: DtIndirectEntityManager.h:340
MapInstanceDofToMasterDof myMapInstanceDofToMasterDof
Definition: DtIndirectEntityManager.h:334
MapModelNameToMasterMapStateNumberToDof myMapModelNameToMasterMapStateNumberToDof
Definition: DtIndirectEntityManager.h:329
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
boost::signalslib::signal< void(DtModel *, DtUniqueID)> signal_instanceAdded
Emitted when a new instance of a model is added to the entity manager.
Definition: DtIndirectEntityManager.h:250
MapInstanceMultiSwitchesToMasterMultiSwitches myMapInstanceMultiSwitchesToMasterMultiSwitches
Definition: DtIndirectEntityManager.h:326
std::unordered_map< DtUniqueID, MapMultiSwitchesToMultiSwitches > MapInstanceMultiSwitchesToMasterMultiSwitches
Definition: DtIndirectEntityManager.h:321
MapModelNameToMasterMapStateNumberToSequence myMapModelNameToMasterMapStateNumberToSequence
Definition: DtIndirectEntityManager.h:337
std::unordered_map< osgSim::DOFTransform *, osg::ref_ptr< osgSim::DOFTransform > > MapDofToDof
Definition: DtIndirectEntityManager.h:331
std::unordered_map< DtUniqueID, DtIndirectEntityManagerInstance > MapUniqueIdsToEntityManagerInstances
map of unique ids to the corresponding DtIndirectEntityManagerInstances
Definition: DtIndirectEntityManager.h:317
Inherited from DtIndirectGeometry additionally implements: -removal of instances -ability to set/get ...
Definition: DtIndirectEntityGeometry.h:38
std::unordered_map< std::string, AnimationList > AnimationMap
Definition: DtArticulatedModelParser.h:50
Contains makVrv::DtVirtualBaseClass class.
DtSignalConnectionManager myConnections
manager for connections
Definition: DtIndirectEntityManager.h:301
Axis Aligned Bounding Box class.
The base class for simple OSG based model instances. This call can't be instantiated itself...
Definition: DtOsgModelInstance.h:77
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:115
std::unordered_map< osg::Sequence *, osg::ref_ptr< osg::Sequence > > MapSequenceToSequence
Definition: DtIndirectEntityManager.h:339
bool myUpdateBuffersJobsRequiredCurrentFrame
whether gpu buffers for instances are updated immediately
Definition: DtIndirectEntityManager.h:304
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtIndirectGridCellTime class.
MapInstanceSequenceToMasterSequence myMapInstanceSequenceToMasterSequence
Definition: DtIndirectEntityManager.h:342
MapUniqueIdsToEntityManagerInstances myMapUniqueIdsToEntityManagerInstances
Definition: DtIndirectEntityManager.h:318
MapModelNameToMasterMapStateNumberToMultiSwitchList myMapModelNameToMasterMapStateNumberToMultiSwitchList
Definition: DtIndirectEntityManager.h:324
std::unordered_map< int, DtIndirectGeometryGrid * > MapModelSetToDtIndirectGeometryGrids
There is one grid per model set type in the manager Each grid contains a list of 'cells' Each cell co...
Definition: DtIndirectEntityManager.h:313
Base class to provide boost signal/slot management.
std::unordered_map< int, PartTransformList > PartMap
Definition: DtArticulatedModelParser.h:44
Contains makVrv::DtArticulatedModelParser class.
MapModelSetToDtIndirectGeometryGrids myMapModelSetToDtIndirectGeometryGrids
Definition: DtIndirectEntityManager.h:314
std::unordered_map< osgSim::MultiSwitch *, osg::ref_ptr< osgSim::MultiSwitch > > MapMultiSwitchesToMultiSwitches
Definition: DtIndirectEntityManager.h:320
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:55
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
Vector3_64 myLastObserverLocation
Definition: DtIndirectEntityManager.h:361
std::unordered_map< int, CellIdsWithZeroInstancesUpTime > GridToCellIdsWithZeroInstancesUpTime
map of each grid (model set) to inactive cells in that grid
Definition: DtIndirectEntityManager.h:353
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
std::unordered_map< std::string, DtArticulatedModelParser::PartMap > MapModelNameToMasterMapStateNumberToDof
Definition: DtIndirectEntityManager.h:328
singleton class that acts as a bridge between the
Definition: DtIndirectEntityManager.h:61
DtDe & myDe
reference to de
Definition: DtIndirectEntityManager.h:298
std::unordered_map< DtUniqueID, MapDofToDof > MapInstanceDofToMasterDof
Definition: DtIndirectEntityManager.h:332
Contains the DtIndirectGeometry class declaration.
std::unordered_map< Vector3_int, DtIndirectGridCellTime, DtIndirectCellHasher > CellIdsWithZeroInstancesUpTime
map of inactive cells to their start and current time
Definition: DtIndirectEntityManager.h:350
Contains makVrv::DtIndirectCellHasher class.
boost::mutex myInstancesBeingMovedMutex
Definition: DtIndirectEntityManager.h:347
GridToCellIdsWithZeroInstancesUpTime myGridToCellIdsWithZeroInstancesUpTime
map of each grid (model set) to inactive cells in that grid
Definition: DtIndirectEntityManager.h:356