26 #include <matrix/vlVector.h>
27 #include <matrix/vlTaitBryan.h>
29 #include <unordered_map>
31 #include <boost/thread.hpp>
40 class DtIndirectModelsContainer;
41 class DtModelDefinition;
42 class DtOsgModelInstance;
43 class DtIndirectGeometryGrid;
45 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,
float uOffset,
float vOffset);
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
166 virtual void setDofOrientation(
DtUniqueID uniqueID, osgSim::DOFTransform* dof
172 void slot_atcGlobalModelEnableChanged();
175 virtual void setPositionAndOrientation(
DtUniqueID uniqueId
176 ,
const DtVector& position,
const DtTaitBryan& orientation
177 ,
const DtVector& positionOffset,
const DtTaitBryan& orientationOffset);
186 virtual void setVisible(
DtUniqueID uniqueId,
bool visible);
189 virtual void setLightPointMaxDistance(
DtUniqueID uniqueId,
float maxDistance);
192 virtual void setTextureLoadTimeSlicePeriod(
float period);
200 virtual float textureLoadTimeSlicePeriod(
void)
const;
204 virtual void setUpdateBuffersJobsRequiredCurrentFrame(
bool requiredCurrentFrame);
212 virtual bool updateBuffersJobsRequiredCurrentFrame(
void)
const;
216 virtual void setCellPageOutTime(
double val);
222 virtual double cellPageOutTime(
void)
const;
228 virtual void slot_postTick();
250 virtual osgSim::DOFTransform* findMasterDof(
DtUniqueID uniqueID, osgSim::DOFTransform* dof)
const;
256 virtual void calculateAndSetInstanceMatrixTransform(
const DtVector &position
257 ,
const DtTaitBryan& orientation,
const DtVector &positionOffset,
const DtTaitBryan& orientationOffset
261 virtual void tickEntityMoves(
void);
264 virtual void tickPaging(
void);
267 virtual bool instanceIsBeingMovedTo(
const Vector3_int& cellId);
270 void setupRootNodes();
305 typedef std::unordered_map< osgSim::DOFTransform*, osg::ref_ptr<osgSim::DOFTransform> >
MapDofToDof;
333 virtual void update(
double simulationTime);
336 virtual double elapsedTime(
void)
const;
internal structure for mapping a DtOsgArticulatedModel/DtOsgSimpleModel object to a corresponding ins...
Definition: DtIndirectEntityManagerInstance.h:29
Virtual base class.
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:319
double myCurrentTime
Definition: DtIndirectEntityManager.h:339
std::unordered_map< std::string, DtArticulatedModelParser::AnimationMap > MapModelNameToMasterMapStateNumberToSequence
Definition: DtIndirectEntityManager.h:310
double myCellPageOutTime
Definition: DtIndirectEntityManager.h:352
std::unordered_map< int, MultiSwitchList > MapStateNumberToMultiSwitchList
Definition: DtArticulatedModelParser.h:47
std::unordered_map< std::string, DtArticulatedModelParser::MapStateNumberToMultiSwitchList > MapModelNameToMasterMapStateNumberToMultiSwitchList
Definition: DtIndirectEntityManager.h:297
std::unordered_map< DtUniqueID, MapSequenceToSequence > MapInstanceSequenceToMasterSequence
Definition: DtIndirectEntityManager.h:314
MapInstanceDofToMasterDof myMapInstanceDofToMasterDof
Definition: DtIndirectEntityManager.h:308
MapModelNameToMasterMapStateNumberToDof myMapModelNameToMasterMapStateNumberToDof
Definition: DtIndirectEntityManager.h:303
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:234
MapInstanceMultiSwitchesToMasterMultiSwitches myMapInstanceMultiSwitchesToMasterMultiSwitches
Definition: DtIndirectEntityManager.h:300
std::unordered_map< DtUniqueID, MapMultiSwitchesToMultiSwitches > MapInstanceMultiSwitchesToMasterMultiSwitches
Definition: DtIndirectEntityManager.h:295
MapModelNameToMasterMapStateNumberToSequence myMapModelNameToMasterMapStateNumberToSequence
Definition: DtIndirectEntityManager.h:311
std::unordered_map< osgSim::DOFTransform *, osg::ref_ptr< osgSim::DOFTransform > > MapDofToDof
Definition: DtIndirectEntityManager.h:305
std::unordered_map< DtUniqueID, DtIndirectEntityManagerInstance > MapUniqueIdsToEntityManagerInstances
map of unique ids to the corresponding DtIndirectEntityManagerInstances
Definition: DtIndirectEntityManager.h:291
std::unordered_map< Vector3_int, StartAndCurrentTime, DtIndirectCellHasher > CellIdsWithZeroInstancesUpTime
map of inactive cells to their start and current time
Definition: DtIndirectEntityManager.h:343
std::unordered_map< std::string, AnimationList > AnimationMap
Definition: DtArticulatedModelParser.h:50
Contains makVrv::DtVirtualBaseClass class.
DtSignalConnectionManager myConnections
manager for connections
Definition: DtIndirectEntityManager.h:278
Axis Aligned Bounding Box class.
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:76
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:102
std::unordered_map< osg::Sequence *, osg::ref_ptr< osg::Sequence > > MapSequenceToSequence
Definition: DtIndirectEntityManager.h:313
double myStartTime
Definition: DtIndirectEntityManager.h:338
bool myUpdateBuffersJobsRequiredCurrentFrame
whether gpu buffers for instances are updated immediately
Definition: DtIndirectEntityManager.h:281
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
MapInstanceSequenceToMasterSequence myMapInstanceSequenceToMasterSequence
Definition: DtIndirectEntityManager.h:316
MapUniqueIdsToEntityManagerInstances myMapUniqueIdsToEntityManagerInstances
Definition: DtIndirectEntityManager.h:292
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
MapModelNameToMasterMapStateNumberToMultiSwitchList myMapModelNameToMasterMapStateNumberToMultiSwitchList
Definition: DtIndirectEntityManager.h:298
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:287
Base class to provide boost signal/slot management.
std::unordered_map< int, PartTransformList > PartMap
Definition: DtArticulatedModelParser.h:44
Contains makVrv::DtArticulatedModelParser class.
container for start and current times (for paging)
Definition: DtIndirectEntityManager.h:324
MapModelSetToDtIndirectGeometryGrids myMapModelSetToDtIndirectGeometryGrids
Definition: DtIndirectEntityManager.h:288
std::unordered_map< osgSim::MultiSwitch *, osg::ref_ptr< osgSim::MultiSwitch > > MapMultiSwitchesToMultiSwitches
Definition: DtIndirectEntityManager.h:294
A model which owns a single model instance.
Definition: DtModel.h:55
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
std::unordered_map< int, CellIdsWithZeroInstancesUpTime > GridToCellIdsWithZeroInstancesUpTime
map of each grid (model set) to inactive cells in that grid
Definition: DtIndirectEntityManager.h:346
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::unordered_map< std::string, DtArticulatedModelParser::PartMap > MapModelNameToMasterMapStateNumberToDof
Definition: DtIndirectEntityManager.h:302
singleton class that acts as a bridge between the
Definition: DtIndirectEntityManager.h:59
DtDe & myDe
reference to de
Definition: DtIndirectEntityManager.h:275
std::unordered_map< DtUniqueID, MapDofToDof > MapInstanceDofToMasterDof
Definition: DtIndirectEntityManager.h:306
Contains the DtIndirectGeometry class declaration.
Contains makVrv::DtIndirectCellHasher class.
boost::mutex myInstancesBeingMovedMutex
Definition: DtIndirectEntityManager.h:321
GridToCellIdsWithZeroInstancesUpTime myGridToCellIdsWithZeroInstancesUpTime
map of each grid (model set) to inactive cells in that grid
Definition: DtIndirectEntityManager.h:349