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 Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtIndirectEntityGeometry Class Reference

Inherited from DtIndirectGeometry additionally implements: -removal of instances -ability to set/get individual instance: -dofs -switches -sequences -visibility -uv offsets -color.

Inheritance diagram for makVrv::DtIndirectEntityGeometry:
Inheritance graph
[legend]

Classes

struct  CloneMasterPair
 
struct  InstanceUpdateStruct
 
struct  MapCloneToDofTransformPairAndFlags
 

Public Types

typedef std::unordered_map
< int, Matrix4_32
MapInstanceIdToXform
 
typedef CloneMasterPair
< osgSim::MultiSwitch > 
MultiSwitchPair
 
typedef std::unordered_map
< osgSim::MultiSwitch
*, MultiSwitchPair
MapCloneToMultiSwitchPair
 
typedef std::unordered_map
< int,
MapCloneToMultiSwitchPair
MapInstanceToMapCloneToMasterMultiSwitches
 
typedef
MapCloneToDofTransformPairAndFlags
< osgSim::DOFTransform > 
DofTransformPair
 
typedef std::unordered_map
< osgSim::DOFTransform
*, DofTransformPair
MapCloneToDofTransformPair
 
typedef std::unordered_map
< int,
MapCloneToDofTransformPair
MapInstanceToMapCloneToMasterDofs
 
typedef CloneMasterPair
< osg::Sequence > 
SequencePair
 
typedef std::unordered_map
< osg::Sequence
*, SequencePair
MapCloneToSequencePair
 
typedef std::unordered_map
< int, MapCloneToSequencePair
MapInstanceToMapCloneToMasterSequences
 
typedef std::map< const
std::string,
DtIndirectUvOffsetManager::UvOffset
MapAnnotationToUvOffsetData
 
typedef std::unordered_map
< int,
MapAnnotationToUvOffsetData
MapInstanceToMapAnnotationToUvOffsetData
 
typedef std::unordered_map
< int, std::tuple< float,
float, float > > 
MapInstanceToUvOffset
 
using InstanceUpdatesVector = tbb::concurrent_vector< InstanceUpdateStruct >
 

Public Member Functions

virtual ~DtIndirectEntityGeometry ()
 
virtual void setInstanceMatrixTransform (int instanceId, const Matrix4_32 &xForm)
 
virtual void concurrentSetInstanceMatrixTransform (int instanceId, const Matrix4_32 &xForm)
 
virtual void processUpdates ()
 
virtual Matrix4_32 instanceMatrixTransform (int instanceId) const
 
virtual void removeInstance (int id)
 
virtual void setInstanceMultiSwitch (int id, osgSim::MultiSwitch *clone, osgSim::MultiSwitch *master)
 
virtual void instanceMultiSwitches (int instanceIdIndirect, MapCloneToMultiSwitchPair &mapCloneToMasterMultiSwitches) const
 
virtual void setInstanceModelId (int id, int modelId)
 
virtual void setInstanceUvOffset (int id, const std::string &annotation, float uOffset, float vOffset)
 
virtual void scrollUv (int id, const std::tuple< float, float, float > &uvspeeds)
 
virtual void instanceAnnotationsAndUvOffsets (int instanceIdIndirect, std::vector< DtIndirectAnnotationAndUvOffset > &annotations) const
 
virtual void setInstanceDof (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int animationFlags)
 
virtual void setInstanceDofTranslation (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, const Vector3_64 &trans, const Vector3_64 &transVel)
 
virtual void setInstanceDofOrientation (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, const Vector3_64 &hpr, const Vector3_64 &hprVel, int animationFlags)
 
virtual void setInstanceDofOrientation (int id, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, const Vector3_64 &hprVel, bool forceUpdate, int animationFlags)
 
virtual void instanceDofs (int instanceIdIndirect, MapCloneToDofTransformPair &mapCloneToDofTransformPair) const
 
virtual void setInstanceSequence (int id, osg::Sequence *clone, osg::Sequence *master)
 
virtual void instanceSequences (int instanceIdIndirect, MapCloneToSequencePair &mapCloneToMasterSequences) const
 
virtual bool hasInProgressInstanceMove () const
 
virtual void addInProgressInstanceMove ()
 
virtual void subtractInProgressInstanceMove ()
 
virtual bool allInstancesAreToBeDeleted () const override
 
virtual void setInstanceColor (int instanceIdIndirect, const Vector4_32 &color)
 
virtual Vector4_32 instanceColor (int instanceIdIndirect) const
 
virtual void setInstanceVisibility (int instanceIdIndirect, bool visible)
 
virtual bool instanceVisibility (int instanceIdIndirect) const
 
virtual void setInstanceLightPointGroupId (int instanceIdIndirect, int lightPointGroupId)
 
virtual int instanceLightPointGroupId (int instanceIdIndirect) const
 
virtual void setInstanceLightPointMaxDistance (int instanceIdIndirect, float lightPointMaxDistance)
 
virtual float instanceLightPointMaxDistance (int instanceIdIndirect) const
 
- Public Member Functions inherited from makVrv::DtIndirectGeometry
virtual void setName (const std::string &name) override
 
virtual void setRenderer (DtIndirectGeometryRenderer *drawerNode)
 
virtual void setRegistrar (DtIndirectGeometryRegistrar *registrar)
 
virtual
DtIndirectGeometryRegistrar
registrar ()
 
virtual const charclassName () const
 
virtual void drawImplementation (osg::RenderInfo &renderInfo) const
 
virtual void debugDrawImplementation (osg::RenderInfo &renderInfo, const osg::Matrixd &modelViewMatrix)
 
virtual int addInstance (const DtIndirectGeometryInstance &instance)
 
virtual int addInstance (int modelId, const osg::Matrixd &xForm, float modelScale, float modelRadius, int lightPointGroupId, bool trackLifeTime, const std::string &trackName, bool defaultVisibility=true)
 
virtual void accept (osg::NodeVisitor &nv)
 
virtual void setParent (const osg::Group *parent)
 
virtual void setRegistrarInvalid (void)
 
virtual void releaseGLObjects (osg::State *state) const
 
virtual void accept (osg::PrimitiveFunctor &functor) const
 
virtual void setupIndirectShaders ()
 
virtual void setLocalOriginTransform (const osg::Matrixd &localOriginTransform)
 
virtual const osg::Matrixd & localOriginTransform () const
 
virtual bool actuallyAddQueuedUpInstances (void)
 
virtual void launchOneTimeInitOp ()
 
virtual void updateGpuBuffers (bool amortizeTextures)
 
virtual void setFadeParameters (const DtIndirectFadeParameters &fadeParameters)
 
virtual const
DtIndirectFadeParameters
fadeParameters (void) const
 
virtual void perCameraUpdateAndCull (const osg::Camera *camera, const osg::Matrix &modelViewMatrix, const osg::FrameStamp *frameStamp)
 
virtual void fillViewParameters (DtIndirectViewParameters &destViewParameters, const osg::Matrix &modelViewMatrix, const osg::Camera *osgCamera) const
 
virtual void fillAltitude3d (DtIndirectViewParameters &destViewParameters, const Vector3_64 &eye) const
 
virtual bool readyToRender (const int instanceIdInIndirect) const
 
virtual bool hasQueuedInstances (void) const
 
virtual bool instanceEverAdded (void) const
 
virtual int numValidInstances (void) const
 
virtual void setCellId (const Vector3_int &cellId)
 
virtual const Vector3_intcellId (void) const
 
virtual const unsigned int id (void) const
 
virtual void setInstanceOtherData0 (int instanceIdIndirect, const Vector4_32 &data)
 
virtual Vector4_32 instanceOtherData0 (int instanceIdIndirect) const
 
virtual const osg::Geode * parentGeode (void) const
 
virtual osg::Geode * parentGeode (void)
 

Public Attributes

friend DtIndirectEntityGeometryCreator
 
- Public Attributes inherited from makVrv::DtIndirectGeometry
friend DtIndirectGeometryCreator
 

Protected Types

typedef std::unordered_set< intSetInstancesToDelete
 
- Protected Types inherited from makVrv::DtIndirectGeometry
typedef boost::unique_lock
< boost::shared_mutex > 
InstanceMutexWriteLock
 
typedef boost::shared_lock
< boost::shared_mutex > 
InstanceMutexReadLock
 
typedef std::unordered_map
< int, int
MapIndirectIdToInstanceContainerId
 

Protected Member Functions

 DtIndirectEntityGeometry (DtDe &de, const DtCullShaderConfig &cullShaderConfig, bool terrainPatch)
 
virtual void setMultiSwitchOnInstanceInInstanceContainer (int instanceContainerId, osgSim::MultiSwitch *clone, osgSim::MultiSwitch *master)
 
virtual bool setDofOnInstanceInInstanceContainer (int instanceContainerId, osgSim::DOFTransform *clone, osgSim::DOFTransform *master, int animationFlags)
 
virtual void setUvOffsetOnInstanceInInstanceContainer (const int instanceId, const std::string &annotation, float uOffset, float vOffset)
 
virtual bool removeInstanceInInstanceContainer (int instanceContainerId)
 
virtual void removeInstanceFromIndicesCount (int instanceContainerIndex)
 
virtual void updateInstancePositionOrientationAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceSwitchesAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceSequencesAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceUvOffsetsAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceColorAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceLightPointGroupIdActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceVisibilityLightPointMaxDistanceActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual bool updateInstanceDeletionBeforeAddedActual (const DtIndirectGeometryInstance &instance) override
 
virtual void updateInstancesDofsAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void updateInstanceModelIdAddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex) override
 
virtual void setInstanceModelIdInInstanceContainer (int instanceId, int modelId)
 
- Protected Member Functions inherited from makVrv::DtIndirectGeometry
 DtIndirectGeometry (DtDe &de, const DtCullShaderConfig &cullShaderConfig, const DtIndirectGeometrySubType &geometrySubType, bool managesIndividualInstances)
 
virtual ~DtIndirectGeometry ()
 
virtual bool addInstanceActual (const DtIndirectGeometryInstance &instance)
 
virtual void setupShadersIfNecessary ()
 
virtual void setupDebugUniforms ()
 
virtual void installDefaultMaterial (osg::StateSet *ss)
 
virtual void slot_reloadShaders ()
 
virtual void updateIndicesCount (const DtIndirectModelInfo &modelInfo, int instanceContainerIndex)
 
virtual void updateModelIdsToInstances (int modelId, int instanceId, bool add)
 
virtual void drawFromCommandBuffer (osg::RenderInfo &renderInfo, const DtIndirectViewParameters &viewParameters, const osg::Camera *camera, bool isLightBin, bool isDepthBin, bool isShadowPass, bool viaExternalRenderer) const
 
virtual void syncViewParametersToGpu (const DtIndirectViewParameters &viewParameters, osg::State *state) const
 
virtual void updateInstanceOtherData0AddedActual (const DtIndirectGeometryInstance &instance, int outInstanceIndex)
 
virtual void reloadShadersIfNecessary (void) const
 
virtual void update (const osg::FrameStamp *frameStamp)
 
virtual void adjustDofConstraintsIfNecessary (osgSim::DOFTransform *clone)
 
virtual DtIndirectDrawComponentdrawComponent (int stateId) const
 
virtual bool hasLightPoints (void) const
 
virtual bool hasDepthOnly (void) const
 
virtual bool isDepthOnly (int stateId) const
 
virtual void nullOutDrawComponents (void)
 
virtual void initDrawComponents (void)
 
virtual void setPureSignalBasedUpdates (bool val)
 
virtual void initializeUbosIfNecessary (osg::RenderInfo &renderInfo) const
 
virtual void slot_coordinateSystemChanged ()
 
virtual void trackInstanceLifeTime (int instanceIdInIndirectGeometry, bool trackLifeTime, const std::string &trackName)
 
virtual std::pair< bool,
std::string > 
trackInfo (int instanceIdInIndirectGeometry) const
 
virtual void drawImplementation (osg::RenderInfo &renderInfo, const osg::Matrixd &modelViewMatrix, bool isLightBin, bool isDepthBin, bool isShadowPass) const
 
virtual bool isTerrainPatch (const DtIndirectGeometrySubType &geometrySubType) const
 
virtual bool disableExternalRenderForSensorFx (const osg::Camera *camera) const
 
virtual bool useExternalRenderer (const osg::Camera *camera) const
 
virtual std::string modelName (int instanceId) const
 
virtual DtIndirectDrawComponentcomponent (int component)
 

Protected Attributes

MapInstanceIdToXform myMapInstanceIdToXform
 
MapInstanceToMapCloneToMasterMultiSwitches myMapInstanceToMapCloneToMasterMultiSwitches
 
MapInstanceToMapCloneToMasterDofs myMapInstanceToMapCloneToMasterDofs
 
MapInstanceToMapCloneToMasterSequences myMapInstanceToMapCloneToMasterSequences
 
MapInstanceToMapAnnotationToUvOffsetData myMapInstanceToMapAnnotationToUvOffsetData
 
MapInstanceToUvOffset myMapInstanceToUvOffset
 
std::unordered_map< int, intmyMapInstanceInIndirectToModelId
 
std::unordered_map< int,
Vector4_32
myMapInstanceToColor
 
std::unordered_map< int, boolmyMapInstanceToVisibility
 
std::unordered_map< int, intmyMapInstanceToLightPointGroupId
 
std::unordered_map< int, float > myMapInstanceToLightPointMaxDistance
 
SetInstancesToDelete mySetInstancesIndirectIdsToDelete
 
InstanceUpdatesVector myInstanceUpdates
 
std::atomic< intmyNumInProgressInstanceMoves
 
const bool mySupportInstanceModelChanges = true
 
- Protected Attributes inherited from makVrv::DtIndirectGeometry
osg::ref_ptr
< DtIndirectGeometryRegistrar
myRegistrar
 
tbb::concurrent_queue
< DtIndirectGeometryInstance
myQueueInstancesToAdd
 
DtGpuCullingmyGpuCulling
 
MapIntToInt myModelIDsToInstances
 
MapIntToInt myInstancesToModelIds
 
const DtIndirectGeometrySubType myGeometrySubType
 
const bool myIsTerrainPatch
 
const bool myManagesIndividualInstances
 
DtIndirectEffectTexturesTemplate myEffectTexturesState
 
unsigned int myNumTextCoordArrays
 
DtSignalConnectionManager myConnections
 
osg::Matrixd myLocalOriginTransformMatrix
 
int myNumIndicesAcrossAllModels
 
std::map< int, intmyInstanceContainerIdToNumIndices
 
DtIndirectVaoManagermyVaoManager
 
unsigned int myId
 
DtInstanceContainer myInstanceContainer
 
DtIndirectSwitchManagermySwitchManager
 
DtIndirectDofManagermyDofManager
 
DtIndirectLodManagermyLodManager
 
DtIndirectUvOffsetManagermyUvOffsetManager
 
DtIndirectPerInstanceDataManagermyPerInstanceDataManager
 
bool myMutableShadersSetup
 
bool myMutableShouldReloadShaders
 
boost::shared_mutex myInstanceMutex
 
MapIndirectIdToInstanceContainerId myMapIndirectIdToInstanceContainerId
 
unsigned int myLastFrameUpdated
 
const osg::Camera * myLastCamera
 
DtIndirectFadeParameters myFadeParameters
 
std::atomic< intmyRunningInstanceId
 
DtIndirectDefaultDrawComponentmyDefaultDrawComponent
 
DtIndirectLightPointDrawComponentmyLightPointDrawComponent
 
DtIndirectDebugCullComponentmyIndirectDebugCullComponent
 
osg::ref_ptr< osg::StateSet > myDefaultDrawStateSet
 
osg::ref_ptr< osg::StateSet > myLightPointDrawStateSet
 
osg::ref_ptr< osg::StateSet > myDepthOnlyDrawStateSet
 
unsigned int myLastFrameUpdateTraversed
 
bool myMutableOutputInstancesBuffersChanged
 
DtGlBuffermyGpuShaderUbo = nullptr
 
int myGpuShaderUboBinding = -1
 
DtIndirectShaderConstantsmyShaderConstants = nullptr
 
DtOsgLightPointManagermyLightPointManager
 
DtDemyDe
 
DtCoordinateSystemmyCoordinateSystem = nullptr
 
Vector3_int myCellId = { 0,0,0 }
 
std::unordered_map< int,
std::string > 
myInstancesBeingTracked
 
DtIndirectShaderManagermyIndirectShaderManager
 
const bool mySensorFxLoaded
 
DtIndirectGeometryRenderermyIndirectGeometryRenderer = nullptr
 
std::unordered_map< int,
Vector4_32
myMapInstanceToOtherData0
 
const DtIndirectRunTimeSettingsmyIndirectRunTimeSettings
 

Private Member Functions

 DtIndirectEntityGeometry ()=delete
 
 DtIndirectEntityGeometry (const DtIndirectEntityGeometry &other)=delete
 
DtIndirectEntityGeometryoperator= (const DtIndirectEntityGeometry &other)=delete
 

Additional Inherited Members

- Static Public Member Functions inherited from makVrv::DtIndirectGeometry
static int numIndirectGeometries (void)
 
static void initializeDtDeKeyedInstances (DtDe &de)
 
static int numUpdateGpuBuffersRanThisFrame ()
 
static void clearNumUpdateGpuBuffersRanThisFrame ()
 
static void setTrackObjects (bool val)
 
static bool trackObjects (void)
 
- Static Protected Attributes inherited from makVrv::DtIndirectGeometry
static bool theTrackObjects
 
static TotalCounter theTotalCounter
 
static int theNumUpdateGpuBuffersRanThisFrame
 

Member Typedef Documentation

Structure to hold instance orientation until the instance is actually added.

Structure to hold instance multi-switches' state until the instance is actually added Use the pair to hold the refs and the raw pointer to index into the map. Maps an instance id and a master switch to the clone switch so we can get to the cloned switch which contains the state for that particular instance of the switch.

typedef std::unordered_map< osgSim::MultiSwitch*, MultiSwitchPair> makVrv::DtIndirectEntityGeometry::MapCloneToMultiSwitchPair

Maps an instance id and a master dof to the clone dof so we can get to the cloned dof which contains the state for that particular instance of the dof.

typedef std::unordered_map< osgSim::DOFTransform*, DofTransformPair > makVrv::DtIndirectEntityGeometry::MapCloneToDofTransformPair

Use the pair to hold the refs and the raw pointer to index into the map

Maps an instance id and a master sequence to the clone sequence so we can get to the cloned sequence which contains the state for that particular instance of the sequence.

typedef std::unordered_map< osg::Sequence*, SequencePair > makVrv::DtIndirectEntityGeometry::MapCloneToSequencePair

Maps and instance id and a string to the current uv offset for this particular annotation.

typedef std::unordered_map< int, std::tuple<float, float, float> > makVrv::DtIndirectEntityGeometry::MapInstanceToUvOffset

Holds transform updates that are to be applied to instances.

typedef std::unordered_set<int> makVrv::DtIndirectEntityGeometry::SetInstancesToDelete
protected

Structure to hold instance ids to be deleted.

Constructor & Destructor Documentation

virtual makVrv::DtIndirectEntityGeometry::~DtIndirectEntityGeometry ( )
virtual

DTOR.

makVrv::DtIndirectEntityGeometry::DtIndirectEntityGeometry ( DtDe de,
const DtCullShaderConfig cullShaderConfig,
bool  terrainPatch 
)
protected

CTOR. only creator can create.

makVrv::DtIndirectEntityGeometry::DtIndirectEntityGeometry ( )
privatedelete

not allowed

makVrv::DtIndirectEntityGeometry::DtIndirectEntityGeometry ( const DtIndirectEntityGeometry other)
privatedelete

not allowed

Member Function Documentation

DtIndirectEntityGeometry& makVrv::DtIndirectEntityGeometry::operator= ( const DtIndirectEntityGeometry other)
privatedelete

not allowed

virtual void makVrv::DtIndirectEntityGeometry::setInstanceMatrixTransform ( int  instanceId,
const Matrix4_32 xForm 
)
virtual

set the transform on an instance

virtual void makVrv::DtIndirectEntityGeometry::concurrentSetInstanceMatrixTransform ( int  instanceId,
const Matrix4_32 xForm 
)
virtual

set the transform on an instance

virtual void makVrv::DtIndirectEntityGeometry::processUpdates ( )
virtual

Processes updates in myInstanceUpdates.

virtual Matrix4_32 makVrv::DtIndirectEntityGeometry::instanceMatrixTransform ( int  instanceId) const
virtual

get the transform on an instance

virtual void makVrv::DtIndirectEntityGeometry::removeInstance ( int  id)
virtual

remove an instance

virtual void makVrv::DtIndirectEntityGeometry::setInstanceMultiSwitch ( int  id,
osgSim::MultiSwitch *  clone,
osgSim::MultiSwitch *  master 
)
virtual

set the multi-switches on an instance

virtual void makVrv::DtIndirectEntityGeometry::instanceMultiSwitches ( int  instanceIdIndirect,
MapCloneToMultiSwitchPair mapCloneToMasterMultiSwitches 
) const
virtual

get the multi swiches map for this instance

virtual void makVrv::DtIndirectEntityGeometry::setInstanceModelId ( int  id,
int  modelId 
)
virtual

set the model id for a particular instance

virtual void makVrv::DtIndirectEntityGeometry::setInstanceUvOffset ( int  id,
const std::string &  annotation,
float  uOffset,
float  vOffset 
)
virtual

set the uv offset for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::scrollUv ( int  id,
const std::tuple< float, float, float > &  uvspeeds 
)
virtual

scroll the uv offset for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::instanceAnnotationsAndUvOffsets ( int  instanceIdIndirect,
std::vector< DtIndirectAnnotationAndUvOffset > &  annotations 
) const
virtual

get all the annotations and uv offsets for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::setInstanceColor ( int  instanceIdIndirect,
const Vector4_32 color 
)
virtual

set/get the color for a particular instance.

virtual Vector4_32 makVrv::DtIndirectEntityGeometry::instanceColor ( int  instanceIdIndirect) const
virtual

set/get the color for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::setInstanceVisibility ( int  instanceIdIndirect,
bool  visible 
)
virtual

set/get the visibility for a particular instance.

virtual bool makVrv::DtIndirectEntityGeometry::instanceVisibility ( int  instanceIdIndirect) const
virtual

set/get the visibility for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::setInstanceLightPointGroupId ( int  instanceIdIndirect,
int  lightPointGroupId 
)
virtual

set/get the light point group id for a particular instance.

virtual int makVrv::DtIndirectEntityGeometry::instanceLightPointGroupId ( int  instanceIdIndirect) const
virtual

set/get the light point group id for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::setInstanceLightPointMaxDistance ( int  instanceIdIndirect,
float  lightPointMaxDistance 
)
virtual

set/get the light point max distance for a particular instance.

virtual float makVrv::DtIndirectEntityGeometry::instanceLightPointMaxDistance ( int  instanceIdIndirect) const
virtual

set/get the light point max distance for a particular instance.

virtual void makVrv::DtIndirectEntityGeometry::setInstanceDof ( int  id,
osgSim::DOFTransform *  clone,
osgSim::DOFTransform *  master,
int  animationFlags 
)
virtual

handle changes to an instances dof node

virtual void makVrv::DtIndirectEntityGeometry::setInstanceDofTranslation ( int  id,
osgSim::DOFTransform *  clone,
osgSim::DOFTransform *  master,
const Vector3_64 trans,
const Vector3_64 transVel 
)
virtual

set the translation and translation velocity on a (clone) dof

virtual void makVrv::DtIndirectEntityGeometry::setInstanceDofOrientation ( int  id,
osgSim::DOFTransform *  clone,
osgSim::DOFTransform *  master,
const Vector3_64 hpr,
const Vector3_64 hprVel,
int  animationFlags 
)
virtual

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

virtual void makVrv::DtIndirectEntityGeometry::setInstanceDofOrientation ( int  id,
osgSim::DOFTransform *  clone,
osgSim::DOFTransform *  master,
const Vector3_64 hprVel,
bool  forceUpdate,
int  animationFlags 
)
virtual

set the HPR velocity on a (clone) dof

virtual void makVrv::DtIndirectEntityGeometry::instanceDofs ( int  instanceIdIndirect,
MapCloneToDofTransformPair mapCloneToDofTransformPair 
) const
virtual

get the dofs for a particular instance

virtual void makVrv::DtIndirectEntityGeometry::setInstanceSequence ( int  id,
osg::Sequence *  clone,
osg::Sequence *  master 
)
virtual

handle change to an instances sequence node

virtual void makVrv::DtIndirectEntityGeometry::instanceSequences ( int  instanceIdIndirect,
MapCloneToSequencePair mapCloneToMasterSequences 
) const
virtual

get the sequences for a particular instance id

virtual bool makVrv::DtIndirectEntityGeometry::hasInProgressInstanceMove ( ) const
virtual

does this indirect geometry have any instances in the process of moving? used by the indirect geometry grid node to force this geometry to render even when it is not in the frustum since it has instances that are in the process of moving.

virtual void makVrv::DtIndirectEntityGeometry::addInProgressInstanceMove ( )
virtual

Add one to the count of instances in the process of moving.

virtual void makVrv::DtIndirectEntityGeometry::subtractInProgressInstanceMove ( )
virtual

remove one from the count of instances in the process of moving.

virtual bool makVrv::DtIndirectEntityGeometry::allInstancesAreToBeDeleted ( ) const
overridevirtual

Returns whether all instances in queue that are to be created are also to be deleted This occurs when all instances have been moved FROM this geometry to another without being rendered. When this happens this indirect geometry can be paged out. Not thread safe. Returns myQueueInstancesToAdd.unsafe_size() == mySetInstancesIndirectIdsToDelete.size();.

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::setMultiSwitchOnInstanceInInstanceContainer ( int  instanceContainerId,
osgSim::MultiSwitch *  clone,
osgSim::MultiSwitch *  master 
)
protectedvirtual

wrapper function for setting a switch state in the switch manager

virtual bool makVrv::DtIndirectEntityGeometry::setDofOnInstanceInInstanceContainer ( int  instanceContainerId,
osgSim::DOFTransform *  clone,
osgSim::DOFTransform *  master,
int  animationFlags 
)
protectedvirtual

wrapper function for setting a dof state in the dof manager

virtual void makVrv::DtIndirectEntityGeometry::setUvOffsetOnInstanceInInstanceContainer ( const int  instanceId,
const std::string &  annotation,
float  uOffset,
float  vOffset 
)
protectedvirtual

set the uv offset for a particular instance in the instance container.

virtual bool makVrv::DtIndirectEntityGeometry::removeInstanceInInstanceContainer ( int  instanceContainerId)
protectedvirtual

remove an instance from the instance container

virtual void makVrv::DtIndirectEntityGeometry::removeInstanceFromIndicesCount ( int  instanceContainerIndex)
protectedvirtual

remove a particular instances indices from the count. should be called when an instance is removed.

virtual void makVrv::DtIndirectEntityGeometry::updateInstancePositionOrientationAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

update an instances position and orientation

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceSwitchesAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

update an instance's switches

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceSequencesAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

update an instance's sequences

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceUvOffsetsAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

set all the uv offsets that have been saved off from before the instance was added.

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceColorAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

set color that has been saved off before the instance was added

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceLightPointGroupIdActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

set light point group id that has been saved off before the instance was added

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceVisibilityLightPointMaxDistanceActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

set visibility, light point max distance and other data 1 that has been saved off before the instance was added

Reimplemented from makVrv::DtIndirectGeometry.

virtual bool makVrv::DtIndirectEntityGeometry::updateInstanceDeletionBeforeAddedActual ( const DtIndirectGeometryInstance instance)
overrideprotectedvirtual

check to see if this instance was marked for deletion before it was added

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstancesDofsAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

update an instance's dofs states

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::updateInstanceModelIdAddedActual ( const DtIndirectGeometryInstance instance,
int  outInstanceIndex 
)
overrideprotectedvirtual

set model id that has been saved off before the instance was added

Reimplemented from makVrv::DtIndirectGeometry.

virtual void makVrv::DtIndirectEntityGeometry::setInstanceModelIdInInstanceContainer ( int  instanceId,
int  modelId 
)
protectedvirtual

set the model on the instance in the instance container

Member Data Documentation

friend makVrv::DtIndirectEntityGeometry::DtIndirectEntityGeometryCreator

only creator can create

MapInstanceIdToXform makVrv::DtIndirectEntityGeometry::myMapInstanceIdToXform
protected

Structure to hold instance orientation until the instance is actually added.

MapInstanceToMapCloneToMasterMultiSwitches makVrv::DtIndirectEntityGeometry::myMapInstanceToMapCloneToMasterMultiSwitches
protected

Structure to hold instance multi-switches' state until the instance is actually added Use the pair to hold the refs and the raw pointer to index into the map. Maps an instance id and a master switch to the clone switch so we can get to the cloned switch which contains the state for that particular instance of the switch.

MapInstanceToMapCloneToMasterDofs makVrv::DtIndirectEntityGeometry::myMapInstanceToMapCloneToMasterDofs
protected

Maps an instance id and a master dof to the clone dof so we can get to the cloned dof which contains the state for that particular instance of the dof.

MapInstanceToMapCloneToMasterSequences makVrv::DtIndirectEntityGeometry::myMapInstanceToMapCloneToMasterSequences
protected

Maps an instance id and a master sequence to the clone sequence so we can get to the cloned sequence which contains the state for that particular instance of the sequence.

MapInstanceToMapAnnotationToUvOffsetData makVrv::DtIndirectEntityGeometry::myMapInstanceToMapAnnotationToUvOffsetData
protected

Maps and instance id and a string to the current uv offset for this particular annotation.

MapInstanceToUvOffset makVrv::DtIndirectEntityGeometry::myMapInstanceToUvOffset
protected

Maps and instance id to the current uv offset for all scrollable uv offsets.

std::unordered_map< int, int > makVrv::DtIndirectEntityGeometry::myMapInstanceInIndirectToModelId
protected
std::unordered_map<int, Vector4_32> makVrv::DtIndirectEntityGeometry::myMapInstanceToColor
protected

Maps an instance id to the color for that instance.

std::unordered_map<int, bool> makVrv::DtIndirectEntityGeometry::myMapInstanceToVisibility
protected

Maps an instance id to the visibility for that instance.

std::unordered_map<int, int> makVrv::DtIndirectEntityGeometry::myMapInstanceToLightPointGroupId
protected

Maps an instance id to the light point group id for that instance.

std::unordered_map<int, float> makVrv::DtIndirectEntityGeometry::myMapInstanceToLightPointMaxDistance
protected

Maps an instance id to the light point max distance for that instance.

SetInstancesToDelete makVrv::DtIndirectEntityGeometry::mySetInstancesIndirectIdsToDelete
protected
InstanceUpdatesVector makVrv::DtIndirectEntityGeometry::myInstanceUpdates
protected

Updates are pushed to this vector concurrently by the indirect manager.

std::atomic<int> makVrv::DtIndirectEntityGeometry::myNumInProgressInstanceMoves
protected
const bool makVrv::DtIndirectEntityGeometry::mySupportInstanceModelChanges = true
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)