VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtOsgIndirectEntityManager Class Reference

singleton class that acts as a bridge between the

See Also
DtOsgArticulatedModel & the indirect rendering (DtIndirectGoemetry). It routes functions/state on
DtOsgArticulatedModel to
DtIndirectGeometry. It does this by maintaining an internal map of
DtOsgArticulatedModel to the corresponding
DtOsgIndirectEntityManagerInstance (the unique id is used as the key). The indirect geometries are held/created/deleted by the
DtIndirectGeometryGrid which contains a geo located cell for each area that has at least one entity. As entities move around they can move between cells as needed. There is also a
DtIndirectGeometryGrid per model set so that each model set.
Inheritance diagram for makVrv::DtOsgIndirectEntityManager:
Inheritance graph
[legend]

Classes

struct  DtLightPointGroupInfo
 
struct  ModelVariantInformation
 

Public Member Functions

virtual ~DtOsgIndirectEntityManager ()
 
virtual bool addInstance (DtUniqueID uniqueId, const DtModelDefinition &modelDefinition, const DtOsgModelInstance &modelInstance, DtModel *model, DtModelSetId modelSet, float modelScale, float modelRadius, bool daylightControlled, bool mapDofsSwitchesSequences, const DtLightPointGroupInfo &lightPointGroupInfo, bool trackLifeTime, const std::string &trackName)
 
virtual bool addInstanceAsProp (DtUniqueID uniqueId, const DtModelDefinition &modelDefinition, const DtOsgModelInstance &modelInstance, DtModel *model, float modelScale, float modelRadius, bool daylightControlled, bool mapDofsSwitchesSequences, int lightPointGroupId)
 
virtual bool hasInstance (DtUniqueID uniqueId) const
 
virtual void removeInstance (DtUniqueID uniqueID)
 
virtual int numInstances (void) const
 
virtual void mapMultiSwitches (DtUniqueID uniqueID, DtArticulatedModelParser::MapStateNumberToMultiSwitchList &multiSwitchesOfInstance)
 
virtual void unMapMultiSwitches (DtUniqueID uniqueID)
 
virtual void mapSequences (DtUniqueID uniqueID, DtArticulatedModelParser::AnimationMap &animationMap)
 
virtual void unMapSequences (DtUniqueID uniqueID)
 
virtual void mapDofs (DtUniqueID uniqueID, DtArticulatedModelParser::PartMap &partMap)
 
virtual void unMapDofs (DtUniqueID uniqueID)
 
virtual void setMultiSwitchActiveSwitchSet (DtUniqueID id, osgSim::MultiSwitch *multiSwitchOfInstance)
 
virtual void setSequenceUpdate (DtUniqueID uniqueID, osg::Sequence *dof)
 
virtual void setUvOffsetUpdate (DtUniqueID uniqueID, const std::string &annotation, float uOffset, float vOffset)
 
virtual void scrollUvTextures (DtUniqueID uniqueID, const std::tuple< float, float, float > &uvspeeds)
 
virtual void setDofUpdate (DtUniqueID uniqueID, osgSim::DOFTransform *dof)
 
virtual void setDofAnimationFlags (DtUniqueID uniqueID, osgSim::DOFTransform *dof, int animationFlags)
 
virtual void setDofTranslation (DtUniqueID uniqueID, osgSim::DOFTransform *dof, const Vector3_64 &trans, const Vector3_64 &transVel)
 
virtual void setDofOrientation (DtUniqueID uniqueID, osgSim::DOFTransform *dof, const Vector3_64 &hpr, const Vector3_64 &hprVel, int animationFlags)
 
virtual void setDofOrientation (DtUniqueID uniqueID, osgSim::DOFTransform *dof, const Vector3_64 &hprVel, bool forceUpdate, int animationFlags)
 
void slot_atcGlobalModelEnableChanged ()
 
virtual void setPositionAndOrientation (DtUniqueID uniqueId, const DtVector &position, const DtTaitBryan &orientation, const DtVector &positionOffset, const DtTaitBryan &orientationOffset)
 
virtual void setColor (DtUniqueID uniqueId, const Vector4_32 &color)
 
virtual void setOtherData0 (DtUniqueID uniqueId, const Vector4_32 &data)
 
virtual void setVisible (DtUniqueID uniqueId, bool visible)
 
virtual void setLightPointGroupId (DtUniqueID uniqueId, int groupId)
 
virtual void setLightPointMaxDistance (DtUniqueID uniqueId, float maxDistance)
 
virtual void tick (void) override
 
virtual void slot_releaseResources ()
 
virtual void slot_postTick ()
 
virtual void slot_postInit ()
 
virtual void excludeTextureFromLimits (const std::string &textureFileAbolutePath)
 
virtual void excludeModelDefinitionFromLimits (const std::string &modelDefinition)
 
virtual
DtIndirectLimitTextureStrategy
limitTextureStrategy (DtModelSetId modelSet)
 
virtual bool isCopyingData (void) const
 
virtual void setCellPageOutTime (double val)
 
virtual double cellPageOutTime (void) const
 
virtual bool areRegisteredModelTextureVariants (DtModelSetId modelSet, const std::string &fileName) const
 
virtual void registerModelTextureVariants (DtModelSetId modelSet, const DtModelDefinition *modelDefinition, const std::vector< std::string > &variantPaths)
 
virtual void setModelTextureVariant (DtUniqueID uniqueId, const std::string &variant)
 
- Public Member Functions inherited from makVrv::DtIndirectEntityManager
virtual ~DtIndirectEntityManager ()
 
 DtIndirectEntityManager ()=delete
 
 DtIndirectEntityManager (const DtIndirectEntityManager &)=delete
 
DtIndirectEntityManageroperator= (const DtIndirectEntityManager &)=delete
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static void registerInstance (DtDe &de)
 
static DtOsgIndirectEntityManagerinstance (DtDe &de)
 
- Static Public Member Functions inherited from makVrv::DtIndirectEntityManager
static DtIndirectEntityManagerinstance (DtDe &de)
 

Public Attributes

Signals
boost::signalslib::signal
< void(DtModel *, DtUniqueID)> 
signal_instanceAdded
 

Protected Types

typedef std::unordered_map
< DtModelSetId,
DtIndirectGeometryGrid * > 
MapModelSetToDtIndirectGeometryGrids
 
using MapUniqueIdsToEntityManagerInstances = tbb::concurrent_hash_map< DtUniqueID, DtIndirectEntityManagerInstance >
 
typedef std::unordered_map
< osgSim::MultiSwitch
*, osg::ref_ptr
< osgSim::MultiSwitch > > 
MapMultiSwitchesToMultiSwitches
 
typedef std::unordered_map
< DtUniqueID,
MapMultiSwitchesToMultiSwitches
MapInstanceMultiSwitchesToMasterMultiSwitches
 
typedef std::unordered_map
< osgSim::DOFTransform
*, osg::ref_ptr
< osgSim::DOFTransform > > 
MapDofToDof
 
typedef std::unordered_map
< DtUniqueID, MapDofToDof
MapInstanceDofToMasterDof
 
typedef std::unordered_map
< osg::Sequence
*, osg::ref_ptr< osg::Sequence > > 
MapSequenceToSequence
 
typedef std::unordered_map
< DtUniqueID,
MapSequenceToSequence
MapInstanceSequenceToMasterSequence
 
using InstancesBeingMovedMap = tbb::concurrent_hash_map< DtUniqueID, DtIndirectEntityManagerInstanceMoveInfo * >
 
using IndirectEntityGeometryMap = tbb::concurrent_unordered_map< unsigned int, DtIndirectEntityGeometry * >
 
typedef std::unordered_map
< Vector3_int,
DtIndirectGridCellTime,
DtIndirectCellHasher
CellIdsWithZeroInstancesUpTime
 
typedef std::unordered_map
< DtModelSetId,
CellIdsWithZeroInstancesUpTime
GridToCellIdsWithZeroInstancesUpTime
 

Protected Member Functions

 DtOsgIndirectEntityManager (DtDe &de)
 
 DtOsgIndirectEntityManager ()=delete
 
 DtOsgIndirectEntityManager (const DtOsgIndirectEntityManager &)=delete
 
DtOsgIndirectEntityManageroperator= (const DtOsgIndirectEntityManager &)=delete
 
virtual
DtIndirectEntityManagerInstanceMoveInfo
createMoveInfoIfNecessary (const DtVector &position, DtIndirectEntityManagerInstance &currentEntityManagerInstance, DtUniqueID uniqueId)
 
virtual osgSim::DOFTransform * findMasterDof (DtUniqueID uniqueID, osgSim::DOFTransform *dof) const
 
virtual DtIndirectEntityGeometryfindIndirectGeometryAndInstanceId (DtUniqueID uniqueID, int &instanceId) const
 
virtual void calculateAndSetInstanceMatrixTransform (const DtVector &position, const DtTaitBryan &orientation, const DtVector &positionOffset, const DtTaitBryan &orientationOffset, DtIndirectEntityGeometry *indirectGeometry, int instanceId)
 
virtual void reset ()
 
virtual void tickEntityMoves (void)
 
virtual void tickPaging (void)
 
virtual bool instanceIsBeingMovedTo (const Vector3_int &cellId)
 
void setupRootNodes ()
 
virtual void setupReductionExcludeTextures ()
 
virtual void updateStats ()
 
virtual void disableModelSet (DtModelSetId modelSet)
 
virtual bool modelSetDisabled (DtModelSetId modelSet) const
 
virtual void setAlpha2Coverage (osg::Node *node, bool on)
 
virtual void clearMasterMappingsMap (void)
 
virtual bool parseNodeAndRegisterMasterMappings (osg::Node *modelNodeMaster, const std::string &modelName)
 
- Protected Member Functions inherited from makVrv::DtIndirectEntityManager
 DtIndirectEntityManager (DtDe &de)
 

Protected Attributes

DtSignalConnectionManager myConnections
 
boost::signalslib::connection myPostInitializeConnection
 
MapModelSetToDtIndirectGeometryGrids myMapModelSetToDtIndirectGeometryGrids
 
MapUniqueIdsToEntityManagerInstances myMapUniqueIdsToEntityManagerInstances
 
std::unordered_map
< std::string,
DtIndirectModelMasterMappings * > 
myModelNameToModelMasterMappings
 
MapInstanceMultiSwitchesToMasterMultiSwitches myMapInstanceMultiSwitchesToMasterMultiSwitches
 
MapInstanceDofToMasterDof myMapInstanceDofToMasterDof
 
MapInstanceSequenceToMasterSequence myMapInstanceSequenceToMasterSequence
 
InstancesBeingMovedMap myInstancesBeingMoved
 
InstancesBeingMovedMap myInstanceMovesToDelete
 
IndirectEntityGeometryMap myIndirectEntityGeometryMap
 
GridToCellIdsWithZeroInstancesUpTime myGridToCellIdsWithZeroInstancesUpTime
 
double myCellPageOutTime
 
Vector3_64 myLastObserverLocation
 
std::set< intmyDisabledModelSets
 
std::unordered_map
< DtModelSetId,
std::unordered_map
< std::string,
ModelVariantInformation > > 
myModelSetToModelVariantInformationMap
 
- Protected Attributes inherited from makVrv::DtIndirectEntityManager
DtDemyDe
 

Member Typedef Documentation

There is one grid per model set type in the manager Each grid contains a list of 'cells' Each cell contains an indirect geometry each indirect geometry contains a number of instances.

map of unique ids to the corresponding DtOsgIndirectEntityManagerInstances

typedef std::unordered_map< osgSim::MultiSwitch*, osg::ref_ptr<osgSim::MultiSwitch> > makVrv::DtOsgIndirectEntityManager::MapMultiSwitchesToMultiSwitches
protected
typedef std::unordered_map< osgSim::DOFTransform*, osg::ref_ptr<osgSim::DOFTransform> > makVrv::DtOsgIndirectEntityManager::MapDofToDof
protected
typedef std::unordered_map< osg::Sequence*, osg::ref_ptr<osg::Sequence> > makVrv::DtOsgIndirectEntityManager::MapSequenceToSequence
protected

move info for the instances being moved Use concurrent hash map here as it supports concurrent erase with locking accessors

A map that holds all indirect geometries in one location so that they can be ticked, and this can be done across multiple threads. Use unordered map here as it supports concurrent traversal and insertion but does not support concurrent erase. Removal from this map only occurs in DtOsgIndirectEntityManager::tickPaging() which is single threaded.

map of inactive cells to their start and current time

map of each grid (model set) to inactive cells in that grid

Constructor & Destructor Documentation

virtual makVrv::DtOsgIndirectEntityManager::~DtOsgIndirectEntityManager ( )
virtual

destructor

makVrv::DtOsgIndirectEntityManager::DtOsgIndirectEntityManager ( DtDe de)
protected

constructor. protected. only creator can create

makVrv::DtOsgIndirectEntityManager::DtOsgIndirectEntityManager ( )
protecteddelete

private default constructor. not allowed.

makVrv::DtOsgIndirectEntityManager::DtOsgIndirectEntityManager ( const DtOsgIndirectEntityManager )
protecteddelete

prevent copy-construction

Member Function Documentation

static void makVrv::DtOsgIndirectEntityManager::registerInstance ( DtDe de)
static

Register an instance DtOsgIndirectEntityManager on DtDe.

static DtOsgIndirectEntityManager& makVrv::DtOsgIndirectEntityManager::instance ( DtDe de)
static

Get an instance of the instance manager Throws if none found.

DtOsgIndirectEntityManager& makVrv::DtOsgIndirectEntityManager::operator= ( const DtOsgIndirectEntityManager )
protecteddelete

prevent assignment

virtual bool makVrv::DtOsgIndirectEntityManager::addInstance ( DtUniqueID  uniqueId,
const DtModelDefinition modelDefinition,
const DtOsgModelInstance modelInstance,
DtModel model,
DtModelSetId  modelSet,
float  modelScale,
float  modelRadius,
bool  daylightControlled,
bool  mapDofsSwitchesSequences,
const DtLightPointGroupInfo lightPointGroupInfo,
bool  trackLifeTime,
const std::string &  trackName 
)
virtual

add an instance returns true if the instance was added. false if the model was unable to be added like there is no renderable geometry in the model

virtual bool makVrv::DtOsgIndirectEntityManager::addInstanceAsProp ( DtUniqueID  uniqueId,
const DtModelDefinition modelDefinition,
const DtOsgModelInstance modelInstance,
DtModel model,
float  modelScale,
float  modelRadius,
bool  daylightControlled,
bool  mapDofsSwitchesSequences,
int  lightPointGroupId 
)
virtual

add an instance as a prop. This just calls addInstance with a model set of -1 under the hood. Props are added to the prop root and rendered in all observer modes. returns true if the instance was added.

virtual bool makVrv::DtOsgIndirectEntityManager::hasInstance ( DtUniqueID  uniqueId) const
virtual

check whether an instance with this id exists.

virtual void makVrv::DtOsgIndirectEntityManager::removeInstance ( DtUniqueID  uniqueID)
virtual

remove an instance

virtual int makVrv::DtOsgIndirectEntityManager::numInstances ( void  ) const
virtual

number of instances added to our manager

virtual void makVrv::DtOsgIndirectEntityManager::mapMultiSwitches ( DtUniqueID  uniqueID,
DtArticulatedModelParser::MapStateNumberToMultiSwitchList multiSwitchesOfInstance 
)
virtual

A model instance multi switches & sequences have the same hierarchy/positions as the original model (or first instance) because its cloned (so that per-entity switches/multi-switches can be manipulated on a per-instance basis) Indirect geometry maintains a list of the original/master switches from the original model in the same hierarchy This function is needed to be called so that it will map an instance multi-switches to the 'master' multi-switches We use the first instance as the 'master'.

virtual void makVrv::DtOsgIndirectEntityManager::unMapMultiSwitches ( DtUniqueID  uniqueID)
virtual

unmap previously mapped switches of the model instance

virtual void makVrv::DtOsgIndirectEntityManager::mapSequences ( DtUniqueID  uniqueID,
DtArticulatedModelParser::AnimationMap animationMap 
)
virtual

Similarly, map sequences.

virtual void makVrv::DtOsgIndirectEntityManager::unMapSequences ( DtUniqueID  uniqueID)
virtual

unmap previously mapped sequences

virtual void makVrv::DtOsgIndirectEntityManager::mapDofs ( DtUniqueID  uniqueID,
DtArticulatedModelParser::PartMap partMap 
)
virtual

Similarly, dofs.

virtual void makVrv::DtOsgIndirectEntityManager::unMapDofs ( DtUniqueID  uniqueID)
virtual

unmap previously mapped dofs

virtual void makVrv::DtOsgIndirectEntityManager::setMultiSwitchActiveSwitchSet ( DtUniqueID  id,
osgSim::MultiSwitch *  multiSwitchOfInstance 
)
virtual

set the multi-switch state on a multi-switch of an instance

virtual void makVrv::DtOsgIndirectEntityManager::setSequenceUpdate ( DtUniqueID  uniqueID,
osg::Sequence *  dof 
)
virtual

set sequence update

virtual void makVrv::DtOsgIndirectEntityManager::setUvOffsetUpdate ( DtUniqueID  uniqueID,
const std::string &  annotation,
float  uOffset,
float  vOffset 
)
virtual

set the uv offset for a particular model and annotation

virtual void makVrv::DtOsgIndirectEntityManager::scrollUvTextures ( DtUniqueID  uniqueID,
const std::tuple< float, float, float > &  uvspeeds 
)
virtual

set the uv offset for a particular model and all the scrollable ids

virtual void makVrv::DtOsgIndirectEntityManager::setDofUpdate ( DtUniqueID  uniqueID,
osgSim::DOFTransform *  dof 
)
virtual

map sequences

virtual void makVrv::DtOsgIndirectEntityManager::setDofAnimationFlags ( DtUniqueID  uniqueID,
osgSim::DOFTransform *  dof,
int  animationFlags 
)
virtual

set the animation flags of a dof

virtual void makVrv::DtOsgIndirectEntityManager::setDofTranslation ( DtUniqueID  uniqueID,
osgSim::DOFTransform *  dof,
const Vector3_64 trans,
const Vector3_64 transVel 
)
virtual

set the translation and translation velocity on a dof

virtual void makVrv::DtOsgIndirectEntityManager::setDofOrientation ( DtUniqueID  uniqueID,
osgSim::DOFTransform *  dof,
const Vector3_64 hpr,
const Vector3_64 hprVel,
int  animationFlags 
)
virtual

set the HPR (heading, pitch and roll) & HPR velocity on a dof

virtual void makVrv::DtOsgIndirectEntityManager::setDofOrientation ( DtUniqueID  uniqueID,
osgSim::DOFTransform *  dof,
const Vector3_64 hprVel,
bool  forceUpdate,
int  animationFlags 
)
virtual

set the HPR velocity on a dof

void makVrv::DtOsgIndirectEntityManager::slot_atcGlobalModelEnableChanged ( )

Slot to handle the global alpha to coverage signal for entities Called by constructor so can't be virtual.

virtual void makVrv::DtOsgIndirectEntityManager::setPositionAndOrientation ( DtUniqueID  uniqueId,
const DtVector &  position,
const DtTaitBryan &  orientation,
const DtVector &  positionOffset,
const DtTaitBryan &  orientationOffset 
)
virtual

update the position and orientation of a particular model instance.

virtual void makVrv::DtOsgIndirectEntityManager::setColor ( DtUniqueID  uniqueId,
const Vector4_32 color 
)
virtual

set the color modulator of a particular model instance.

virtual void makVrv::DtOsgIndirectEntityManager::setOtherData0 ( DtUniqueID  uniqueId,
const Vector4_32 data 
)
virtual

set the otherData0 of a particular model instance.

virtual void makVrv::DtOsgIndirectEntityManager::setVisible ( DtUniqueID  uniqueId,
bool  visible 
)
virtual

set the visibility of a particular model instance.

virtual void makVrv::DtOsgIndirectEntityManager::setLightPointGroupId ( DtUniqueID  uniqueId,
int  groupId 
)
virtual

set the light point group id of a particular model instance.

virtual void makVrv::DtOsgIndirectEntityManager::setLightPointMaxDistance ( DtUniqueID  uniqueId,
float  maxDistance 
)
virtual

set the max distance for a light point of a particular model instance

virtual void makVrv::DtOsgIndirectEntityManager::setCellPageOutTime ( double  val)
virtual

set/get the page out time of the cells cells get paged out/deleted after they have been inactive for this period of time in seconds. default value is 60 seconds val passed in should be > 0

virtual double makVrv::DtOsgIndirectEntityManager::cellPageOutTime ( void  ) const
virtual

set/get the page out time of the cells cells get paged out/deleted after they have been inactive for this period of time in seconds. default value is 60 seconds val passed in should be > 0

virtual void makVrv::DtOsgIndirectEntityManager::tick ( void  )
overridevirtual

Calls processUpdates on all indirect geometries in myIndirectEntityGeometryMap in parallel Calls processInstanceTrackingRequests for all indirect grids.

Implements makVrv::DtIndirectEntityManager.

virtual void makVrv::DtOsgIndirectEntityManager::slot_releaseResources ( )
virtual

This slot is called when the last window is destroyed from the renderer. This will be called on a master or RDE. On an RDE in particular, this is called as a result of DtDe::reset when the RDE is disconnected from a master. The RDE reset case is handled here to reset this manager.

virtual void makVrv::DtOsgIndirectEntityManager::slot_postTick ( )
virtual

handle the postTick signal. This -moves entities, if they are ready to be moved -pages out indirect geometries with 0 entities/instances

virtual void makVrv::DtOsgIndirectEntityManager::slot_postInit ( )
virtual

Once the renderer has been created we can initialize this object on post init.

virtual void makVrv::DtOsgIndirectEntityManager::excludeTextureFromLimits ( const std::string &  textureFileAbolutePath)
virtual

exclude a texture from limits.

virtual void makVrv::DtOsgIndirectEntityManager::excludeModelDefinitionFromLimits ( const std::string &  modelDefinition)
virtual

exclude all of a model's textures from limits.

virtual DtIndirectLimitTextureStrategy* makVrv::DtOsgIndirectEntityManager::limitTextureStrategy ( DtModelSetId  modelSet)
virtual

limit texture strategy for a model set (grid)

virtual bool makVrv::DtOsgIndirectEntityManager::isCopyingData ( void  ) const
virtual

Whether internally the models are being processed/loaded (whether registrar is copying/processing models)

virtual bool makVrv::DtOsgIndirectEntityManager::areRegisteredModelTextureVariants ( DtModelSetId  modelSet,
const std::string &  fileName 
) const
virtual

register model texture variants

virtual void makVrv::DtOsgIndirectEntityManager::registerModelTextureVariants ( DtModelSetId  modelSet,
const DtModelDefinition modelDefinition,
const std::vector< std::string > &  variantPaths 
)
virtual

register model texture variants

virtual void makVrv::DtOsgIndirectEntityManager::setModelTextureVariant ( DtUniqueID  uniqueId,
const std::string &  variant 
)
virtual

register model texture variants

virtual DtIndirectEntityManagerInstanceMoveInfo* makVrv::DtOsgIndirectEntityManager::createMoveInfoIfNecessary ( const DtVector &  position,
DtIndirectEntityManagerInstance currentEntityManagerInstance,
DtUniqueID  uniqueId 
)
protectedvirtual

See if we are moving from old cell to new cell for this position If we are, returns the move info to do this move.

virtual osgSim::DOFTransform* makVrv::DtOsgIndirectEntityManager::findMasterDof ( DtUniqueID  uniqueID,
osgSim::DOFTransform *  dof 
) const
protectedvirtual

get the master dof for a unique id and clone dof

virtual DtIndirectEntityGeometry* makVrv::DtOsgIndirectEntityManager::findIndirectGeometryAndInstanceId ( DtUniqueID  uniqueID,
int instanceId 
) const
protectedvirtual

find the indirect geometry for a given unique id

virtual void makVrv::DtOsgIndirectEntityManager::calculateAndSetInstanceMatrixTransform ( const DtVector &  position,
const DtTaitBryan &  orientation,
const DtVector &  positionOffset,
const DtTaitBryan &  orientationOffset,
DtIndirectEntityGeometry indirectGeometry,
int  instanceId 
)
protectedvirtual

utility function for calculating the instance matrix transform for a paricular instance in an indirect geometry.

virtual void makVrv::DtOsgIndirectEntityManager::reset ( )
protectedvirtual

Releases all resources and resets book-keeping associated with this manager, essentially resetting the manager.

virtual void makVrv::DtOsgIndirectEntityManager::tickEntityMoves ( void  )
protectedvirtual

update entity moves

virtual void makVrv::DtOsgIndirectEntityManager::tickPaging ( void  )
protectedvirtual

page out entities that have had 0 instances for page time seconds

virtual bool makVrv::DtOsgIndirectEntityManager::instanceIsBeingMovedTo ( const Vector3_int cellId)
protectedvirtual

whether a cell figures in move info being moved to

void makVrv::DtOsgIndirectEntityManager::setupRootNodes ( )
protected

not virtual because it is called by the constructor. Sets up the geometry grids with the root nodes.

virtual void makVrv::DtOsgIndirectEntityManager::setupReductionExcludeTextures ( )
protectedvirtual

read the textures to exclude from reduction from the csv file and add them to the limiting strategies of each model set

virtual void makVrv::DtOsgIndirectEntityManager::updateStats ( )
protectedvirtual

called in post tick to update the indirect entity related stats.

virtual void makVrv::DtOsgIndirectEntityManager::disableModelSet ( DtModelSetId  modelSet)
protectedvirtual

disable a model set grid completely (for debugging)

virtual bool makVrv::DtOsgIndirectEntityManager::modelSetDisabled ( DtModelSetId  modelSet) const
protectedvirtual

disable a model set grid completely (for debugging)

virtual void makVrv::DtOsgIndirectEntityManager::setAlpha2Coverage ( osg::Node *  node,
bool  on 
)
protectedvirtual

internal

virtual void makVrv::DtOsgIndirectEntityManager::clearMasterMappingsMap ( void  )
protectedvirtual

internal

virtual bool makVrv::DtOsgIndirectEntityManager::parseNodeAndRegisterMasterMappings ( osg::Node *  modelNodeMaster,
const std::string &  modelName 
)
protectedvirtual

internal

Member Data Documentation

boost::signalslib::signal<void(DtModel*, DtUniqueID)> makVrv::DtOsgIndirectEntityManager::signal_instanceAdded

Emitted when a new instance of a model is added to the entity manager.

DtSignalConnectionManager makVrv::DtOsgIndirectEntityManager::myConnections
protected

manager for connections

boost::signalslib::connection makVrv::DtOsgIndirectEntityManager::myPostInitializeConnection
protected
MapModelSetToDtIndirectGeometryGrids makVrv::DtOsgIndirectEntityManager::myMapModelSetToDtIndirectGeometryGrids
protected
MapUniqueIdsToEntityManagerInstances makVrv::DtOsgIndirectEntityManager::myMapUniqueIdsToEntityManagerInstances
protected
std::unordered_map<std::string, DtIndirectModelMasterMappings*> makVrv::DtOsgIndirectEntityManager::myModelNameToModelMasterMappings
protected
MapInstanceMultiSwitchesToMasterMultiSwitches makVrv::DtOsgIndirectEntityManager::myMapInstanceMultiSwitchesToMasterMultiSwitches
protected
MapInstanceDofToMasterDof makVrv::DtOsgIndirectEntityManager::myMapInstanceDofToMasterDof
protected
MapInstanceSequenceToMasterSequence makVrv::DtOsgIndirectEntityManager::myMapInstanceSequenceToMasterSequence
protected
InstancesBeingMovedMap makVrv::DtOsgIndirectEntityManager::myInstancesBeingMoved
protected
InstancesBeingMovedMap makVrv::DtOsgIndirectEntityManager::myInstanceMovesToDelete
protected

Container for moves that need to be deleted. The DTOR for DtOsgIndirectEntityManagerInstanceMoveInfo is not thread safe, do not pop from the queue from multiple threads. This Container is cleared from tickPaging.

IndirectEntityGeometryMap makVrv::DtOsgIndirectEntityManager::myIndirectEntityGeometryMap
protected
GridToCellIdsWithZeroInstancesUpTime makVrv::DtOsgIndirectEntityManager::myGridToCellIdsWithZeroInstancesUpTime
protected

map of each grid (model set) to inactive cells in that grid

double makVrv::DtOsgIndirectEntityManager::myCellPageOutTime
protected
Vector3_64 makVrv::DtOsgIndirectEntityManager::myLastObserverLocation
protected
std::set<int> makVrv::DtOsgIndirectEntityManager::myDisabledModelSets
protected
std::unordered_map< DtModelSetId, std::unordered_map<std::string, ModelVariantInformation> > makVrv::DtOsgIndirectEntityManager::myModelSetToModelVariantInformationMap
protected

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)