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 | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
makVrv::DtModel Class Referenceabstract

A model which owns a single model instance. A DtModel is a managing container for a single DtModelInstance, providing more attributes about how the DtModelInstance should be rendered. Initialization of a DtModel starts with giving it a model-definition. Unlike the DtModelInstance which can be handed a model-definition identifying the model to load, the DtModel retrieves a model-definition which has been pre-loaded into a definition-manager. Usually DtModelDefinition objects are automatically loaded from disk to populate the definition-manager.

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

Classes

struct  ObjectTransform
 

Public Member Functions

 DtModel (DtDe &de, DtUniqueID id)
 
virtual ~DtModel ()
 
DtModelInstancecreateModelInstance (const std::string &modelDefName, bool realize=true)
 
virtual void setModelDefinition (const std::string &str)
 
virtual const std::string & modelDefinitionName ()
 
virtual void saveModelToFile (const std::string &filename)
 
virtual const std::string & className () const
 
virtual DtUniqueID uniqueId () const
 
unsigned int transformSize () const
 
virtual void setPosition (int vtx, const DtVector &position)
 
virtual const DtVectorposition (int vtx=0) const
 
virtual void removePosition (int vtx)
 
virtual void setPositionOffset (const DtVector &positionOffset)
 
virtual const DtVectorpositionOffset () const
 
virtual void setOrientation (int vtx, const DtTaitBryan &orientation)
 
virtual void setPositionAndOrientation (int vtx, const DtVector &positionOffset, const DtTaitBryan &orientation)
 
virtual const DtTaitBryan & orientation (int vtx=0) const
 
virtual void setOrientationOffset (const DtTaitBryan &orientationOffset)
 
virtual const DtTaitBryan & orientationOffset () const
 
virtual void enableColorBlending (bool b)
 
virtual void setBlendColor (float r, float g, float b, float a)
 
virtual void getBlendColor (float &r, float &g, float &b, float &a)
 
virtual bool colorBlendingEnabled () const
 
virtual void setColor (float r, float g, float b, float a)
 
virtual void enableLighting (bool l)
 
virtual DtModelSetId modelSet () const
 
const DtVectorboundingBoxExtents () const
 
void getBoundingBoxExtents (double &x, double &y, double &z) const
 
const DtVectorboundingBoxCenter () const
 
virtual void getBoundingBoxCenter (double &x, double &y, double &z) const
 
virtual void getBoundingBoxComponents (DtVector &minimum, DtVector &maximum)
 
void setContributesToBound (bool trueOrFalse)
 
bool contributesToBound () const
 
DtDede ()
 
virtual void setModelInstance (DtModelInstance *modelInstance)
 
virtual void promoteBackgroundModelInstance (const DtModelDefinition &defintion)
 
virtual void setVisible (bool isVisible)
 
virtual bool visible () const
 
DtUniqueID sceneObjectId () const
 
virtual void addedToSceneObjectAsProp (const DtUniqueID &sceneObj)
 
virtual void addedToSceneObject (const DtUniqueID &sceneObj, DtModelSetId modelSet, int visualizerType)
 
virtual void setElementId (DtElementID id)
 
virtual void removedFromSceneObject ()
 
virtual void setIsSupportModel (bool isSupport)=0
 
virtual void setSolid (bool isSolid)
 
virtual bool isProp ()
 
virtual void updateMinLastFrameDistance (float distance)
 
virtual void resetLastFrameDistance ()
 
virtual float minLastFrameDistance () const
 
virtual DtModelInstancemodelInstance ()
 
virtual const DtModelInstancemodelInstance () const
 
int visualizerType () const
 
abstract virtual api needs to be implemented by subclasses
virtual bool supportsMultithreadedLoad ()
 
virtual void backgroundLoad ()
 
virtual void foregroundLoad ()
 
virtual bool isActivelyBackgroundLoading ()
 
virtual DtLoaderHandlegetLoadQueueHandle ()
 

Public Attributes

boost::signalslib::signal
< void(DtModel *)> 
signal_modelToBeDestroyed
 
boost::signalslib::signal
< void(DtModel *)> 
signal_modelChanged
 
boost::signalslib::signal
< bool(DtModel *, bool),
SlotReturnOR
signal_visibilityChangeRequested
 
boost::signalslib::signal
< void(DtModelInstance
*, DtModel *)> 
signal_modelInstanceCreated
 
boost::signalslib::signal
< void(DtModelInstance
*, DtModel *)> 
signal_modelInstanceToBeDestroyed
 

Protected Types

typedef std::vector
< ObjectTransform
TransformList
 

Protected Member Functions

virtual void addToScene (const DtUniqueID &sceneObjectId, DtModelSetId modelSet, int visualizerType)=0
 
virtual void addToSceneAsProp (const DtUniqueID &sceneObjectId)
 
virtual void removeFromScene ()=0
 
virtual void initializeModelInstance ()
 
void slot_modelInstanceChanged (DtModelInstance *instance)
 
virtual void waitAndClearLoadHandle ()
 
virtual void removedFromLoadQueue ()
 
virtual void setDoneBackgroundLoading ()
 
virtual void setActivelyBackgroundLoading ()
 

Protected Attributes

DtLoaderHandlemyInLoadQueueHandle
 
DtDemyDe
 
const DtUniqueID myUniqueId
 
DtUniqueID myElementId
 
DtUniqueID myParentSceneObjectID
 
bool myColorBlendingEnabled
 
DtModelInstancemyBackgroundModelInstance
 
float myMinLastFrameDistance
 
TransformList myTransforms
 
DtModelInstancemyModelInstance
 
DtModelSetId myModelSet
 
int myVisualizerType
 
bool myContributesToBound
 
bool myIsPropFlag
 
float myBlendColor [4]
 
bool myVisibleFlag
 
DtVector myPositionOffset
 
DtTaitBryan myOrientationOffset
 
std::string myModelDefinitionName
 
bool myRequireModelInstance = true
 

Static Protected Attributes

static bool theInittedState
 

Private Member Functions

void deleteModelInstance ()
 

Friends

class DtBackgroundLoader
 
class DtBackgroundLoadAsyncTask
 

Member Typedef Documentation

typedef std::vector<ObjectTransform> makVrv::DtModel::TransformList
protected

Constructor & Destructor Documentation

makVrv::DtModel::DtModel ( DtDe de,
DtUniqueID  id 
)

CTOR.

virtual makVrv::DtModel::~DtModel ( )
virtual

DTOR.

Member Function Documentation

DtModelInstance* makVrv::DtModel::createModelInstance ( const std::string &  modelDefName,
bool  realize = true 
)

Set the model definition and creates an instance of the model.

virtual void makVrv::DtModel::setModelDefinition ( const std::string &  str)
virtual

Set the model definition.

Reimplemented in makVrv::DtOverlayWedgeModel, makVrv::DtOverlayArcModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOverlayPolygonModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOverlaySecurityModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtOverlayModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtDiGuyCharacterModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtDecalProjectorLineModel, makVrv::DtOsgArticulatedModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtOsgTacticalSmokeModel, makVrf::DtVrfOsgArticulatedModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtProjectedWidgetModel, makVrv::DtPinnableProjectedWidgetModel, makVrv::DtOsgSimpleModel, makVrv::DtArticulatedModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsg3DTextModel, makVrv::DtOsgRibbonModel, makVrv::DtRibbonModel, makVrv::DtTritonWakeModel, makVrv::DtTritonTidalStreamWakeModel, makVrv::DtOsgParticleSystemModel, makVrv::DtParticleSystemModel, makVrv::DtOsgAnimationModel, makVrv::DtTritonWaterImpactModel, makVrv::DtRotorWashModel, makVrv::DtOsgDecalModel, makVrv::DtWakeModel, DtVrfOsgArticulatedModel, makVrv::DtDecalModel, and makVrv::DtTidalStreamWakeModel.

virtual const std::string& makVrv::DtModel::modelDefinitionName ( )
inlinevirtual

returns the model definition name.

virtual void makVrv::DtModel::saveModelToFile ( const std::string &  filename)
virtual
virtual const std::string& makVrv::DtModel::className ( ) const
virtual
virtual DtModelInstance* makVrv::DtModel::modelInstance ( )
virtual

Get the model instance.

virtual const DtModelInstance* makVrv::DtModel::modelInstance ( ) const
virtual

Get the model instance.

virtual DtUniqueID makVrv::DtModel::uniqueId ( ) const
virtual

Get the model unique ID.

Reimplemented in makVrv::DtOsgArticulatedModel.

unsigned int makVrv::DtModel::transformSize ( ) const

Get the number of position/orientations this model has.

virtual void makVrv::DtModel::setPosition ( int  vtx,
const DtVector position 
)
virtual

Set the position of a control vertex in the model.

Reimplemented in makVrv::DtOverlayWedgeModel, makVrv::DtOverlayArcModel, makVrv::DtDiGuyCharacterModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOverlaySecurityModel, makVrv::DtOverlayModel, makVrv::DtOsgArticulatedModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::Dt3dEntityTacticalDecorationsModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtOsgScribeBoxModel, makVrf::DtVrfOverlayEllipseArcModel, makVrv::DtOverlayPolygonModel, makVrf::DtRadarCoverageModel, makVrv::DtProjectedWidgetModel, makVrv::DtOsgSimpleModel, makVrv::DtPinnableProjectedWidgetModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::DtOsgParticleSystemModel, makVrv::DtOsgRibbonModel, makVrv::DtMovablePolygonModel, makVrv::DtDecalProjectorLineModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtOsgDecalModel, makVrv::DtEllipsoidArcModel, makVrv::DtOsgTacticalSmokeModel, makVrv::DtOsgAnimationModel, makVrv::DtOsgArticulatingCylinderModel, makVrv::DtOsgPolygonModel, makVrv::DtTacticalSmokeModel, makVrv::DtOsgCylinderModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOsgRotorWashModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOsgProjectedTextModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsgDrawModel, makVrv::DtOsg3DTextModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtDeprecatedOsgArticulatedModel, and makVrv::DtExampleModel.

virtual const DtVector& makVrv::DtModel::position ( int  vtx = 0) const
virtual

Get the Position of a given point.

Exceptions
DtCorruptedStateif the vtx is not with-in the normal bounds.
virtual void makVrv::DtModel::removePosition ( int  vtx)
virtual
virtual void makVrv::DtModel::setPositionOffset ( const DtVector positionOffset)
virtual
virtual const DtVector& makVrv::DtModel::positionOffset ( ) const
virtual

Get the Position Offset of the model.

virtual void makVrv::DtModel::setOrientation ( int  vtx,
const DtTaitBryan &  orientation 
)
virtual

Set the orientation of a vertex in the model.

Reimplemented in makVrv::DtOverlayWedgeModel, makVrv::DtDiGuyCharacterModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOverlaySecurityModel, makVrv::DtOverlayModel, makVrv::DtOsgArticulatedModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOverlayPolygonModel, makVrv::Dt3dEntityTacticalDecorationsModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::DtOsgScribeBoxModel, makVrf::DtVrfOverlayEllipseArcModel, makVrv::DtOsgPolygonModel, makVrv::DtOsgSimpleModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOsgParticleSystemModel, makVrv::DtDecalProjectorLineModel, makVrv::DtMovablePolygonModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtOsgRibbonModel, makVrv::DtOsgTacticalSmokeModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtTacticalSmokeModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsgArticulatingCylinderModel, makVrv::DtOsgCylinderModel, makVrv::DtOsgDecalModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOsgAnimationModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsgProjectedTextModel, makVrv::DtOsgDrawModel, makVrv::DtOsg3DTextModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtDeprecatedOsgArticulatedModel, and makVrv::DtExampleModel.

virtual void makVrv::DtModel::setPositionAndOrientation ( int  vtx,
const DtVector positionOffset,
const DtTaitBryan &  orientation 
)
virtual

Set the position and orientation of a vertex in the model at the same time.

Reimplemented in makVrv::DtDiGuyCharacterModel, makVrv::DtOsgArticulatedModel, and makVrv::DtDeprecatedOsgArticulatedModel.

virtual const DtTaitBryan& makVrv::DtModel::orientation ( int  vtx = 0) const
virtual

Get the Orientation of a given point.

Exceptions
DtCorruptedStateif the vtx is not with-in the normal bounds.
virtual void makVrv::DtModel::setOrientationOffset ( const DtTaitBryan &  orientationOffset)
virtual

Set the Orientation Offset of the model. This offsets the orientation of the entire model. N.B. Currently only used by DtCharacterModel and DtArticulatedModel.

Reimplemented in makVrv::DtDiGuyCharacterModel, makVrv::DtDummyCharacterModel, makVrv::DtOsgArticulatedModel, makVrv::DtOsgSimpleModel, makVrv::DtDeprecatedOsgSimpleModel, and makVrv::DtDeprecatedOsgArticulatedModel.

virtual const DtTaitBryan& makVrv::DtModel::orientationOffset ( ) const
virtual

Get the Orientation Offset of the model.

virtual void makVrv::DtModel::enableColorBlending ( bool  b)
virtual
virtual void makVrv::DtModel::setBlendColor ( float  r,
float  g,
float  b,
float  a 
)
virtual
virtual void makVrv::DtModel::getBlendColor ( float &  r,
float &  g,
float &  b,
float &  a 
)
virtual

Returns the blend color.

virtual bool makVrv::DtModel::colorBlendingEnabled ( ) const
virtual

Returns whether or not blending is enabled.

virtual void makVrv::DtModel::setColor ( float  r,
float  g,
float  b,
float  a 
)
virtual

set the model's color

Reimplemented in makVrv::DtOsgArticulatedModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtOverlayWedgeModel, makVrv::DtOverlayArcModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtOverlaySecurityModel, makVrv::DtOsgRibbonModel, makVrv::DtOverlayModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtDecalProjectorLineModel, makVrv::DtOsgDecalModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtRectangularPyramidModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtPolygonModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtDeprecatedOsgArticulatedModel, makVrv::DtOsgScribeBoxModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOsg3DVolumetricLineModel, makVrf::DtVrfOverlayEllipseArcModel, makVrv::Dt3DVolumetricLineModel, makVrv::DtOverlayPolygonModel, makVrv::Dt2DVolumetricLineModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtOsgCylinderModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtEllipsoidArcModel, makVrv::DtOverlayEllipseArcModel, makVrv::DtOsgArticulatingCylinderModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtOsg3DTextModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsgPolygonModel, makVrv::DtAttachableCuboidModel, makVrf::DtSensorContactLinesModel, makVrv::DtCylinderModel, makVrv::DtScribeBoxModel, makVrv::DtAttachableEllipsoidModel, makVrv::Dt3DTextModel, makVrv::DtArticulatingCylinderModel, and makVrv::DtLineModel.

virtual void makVrv::DtModel::enableLighting ( bool  l)
virtual

set whether the model is lit; this may not be an option on all models

Reimplemented in makVrv::DtOsgPolygonModel.

virtual DtModelSetId makVrv::DtModel::modelSet ( ) const
virtual

Get the model set this model is part of.

const DtVector& makVrv::DtModel::boundingBoxExtents ( ) const

Get the bounding box extents of the model instance.

void makVrv::DtModel::getBoundingBoxExtents ( double x,
double y,
double z 
) const

Get the bounding box extents of the model instance.

const DtVector& makVrv::DtModel::boundingBoxCenter ( ) const

Get the bounding box center of the model instance.

virtual void makVrv::DtModel::getBoundingBoxCenter ( double x,
double y,
double z 
) const
virtual

Get the bounding box center of the model instance.

virtual void makVrv::DtModel::getBoundingBoxComponents ( DtVector minimum,
DtVector maximum 
)
virtual

Get the minimum and maximum X,Y,Z components of the bounding box.

Reimplemented in makVrv::DtOsgArticulatedModel, makVrv::DtOsgSimpleModel, and makVrv::DtDeprecatedOsgArticulatedModel.

void makVrv::DtModel::setContributesToBound ( bool  trueOrFalse)

Set whether this model instance contributes to an object's overall bounding volume.

bool makVrv::DtModel::contributesToBound ( ) const

Get whether this model instance contributes to an object's overall bounding volume.

int makVrv::DtModel::visualizerType ( ) const

The visualizer type determines which channel-specific group node this model will be parented to, and consequently, which observer setting will cause it to be rendered in which channel.

DtDe& makVrv::DtModel::de ( )
inline

Get the DtDe object.

virtual void makVrv::DtModel::setModelInstance ( DtModelInstance modelInstance)
virtual

Internally set the model instance pointer. If an existing model instance is set, it will be deleted. To clear the current model instance only, passing a Null pointer 0 is supported.

Warning
Only public for internal use
Parameters
Input
modelInstancepointer to a model instance.

Reimplemented in makVrv::MyParticleSystemModel, makVrv::DtOsg3DTextModel, makVrv::DtOsgRibbonModel, and makVrv::DtOsgDecalModel.

virtual void makVrv::DtModel::promoteBackgroundModelInstance ( const DtModelDefinition defintion)
virtual

Internally set the model instance pointer to the background one, also realizes and sends signal.

virtual void makVrv::DtModel::setVisible ( bool  isVisible)
virtual

Set the visible state of the model.

Parameters
[in]isVisibleis the new visible state; true = visible, false = hidden.

Reimplemented in makVrv::DtTritonWakeModel, makVrv::DtDummyCharacterModel, makVrv::DtOverlayPolygonModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsgArticulatedModel, makVrv::DtOverlayWedgeModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtOsgRibbonModel, makVrv::DtOverlayArcModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtRotorWashModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtTritonTidalStreamWakeModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOverlaySecurityModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtOsgParticleSystemModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtOverlayModel, makVrv::DtOsgDecalModel, makVrv::DtOsgPolygonModel, makVrv::DtDecalProjectorLineModel, makVrv::DtOsgAnimationModel, makVrv::DtProjectedWidgetModel, makVrv::DtPinnableProjectedWidgetModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOsgScribeBoxModel, makVrv::DtOsgTacticalSmokeModel, makVrv::DtOsgSimpleModel, makVrv::DtOsgCylinderModel, makVrf::DtVrfOverlayEllipseArcModel, makVrv::DtMultiLineModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtMovablePolygonModel, makVrv::DtOsgProjectedTextModel, makVrv::DtDeprecatedOsgArticulatedModel, makVrv::DtOsgArticulatingCylinderModel, makVrf::DtRadarCoverageModel, makVrv::DtOsgDrawModel, makVrv::DtOsg3DTextModel, and makVrv::DtExampleModel.

virtual bool makVrv::DtModel::visible ( ) const
virtual

Get the visible state of the model.

Return values
trueif set visible.
falseotherwise.
See Also
setVisible()
DtUniqueID makVrv::DtModel::sceneObjectId ( ) const
virtual void makVrv::DtModel::addedToSceneObjectAsProp ( const DtUniqueID sceneObj)
virtual

Called when a scene object added the model as a prop.

virtual void makVrv::DtModel::addedToSceneObject ( const DtUniqueID sceneObj,
DtModelSetId  modelSet,
int  visualizerType 
)
virtual

Called when a scene object added the model with the given model set and visualizer type.

Reimplemented in makVrv::DtOverlayScreenIntervaledTextModel.

virtual void makVrv::DtModel::setElementId ( DtElementID  id)
virtual

Called when the element ID of the model's parent object is set.

Reimplemented in makVrv::DtOsgArticulatedModel, makVrv::DtOsgSimpleModel, and makVrv::DtDeprecatedOsgSimpleModel.

virtual void makVrv::DtModel::removedFromSceneObject ( )
virtual

Called when the model was removed from a scene object.

virtual void makVrv::DtModel::setIsSupportModel ( bool  isSupport)
pure virtual

Is this model part of the support group? (determines whether or not other scene objects can ground clamp to this model)

Implemented in makVrv::DtOsgArticulatedModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtDiGuyCharacterModel, makVrv::DtOverlayWedgeModel, makVrv::DtTritonWakeModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOverlayArcModel, makVrv::DtOverlaySecurityModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtOverlayModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtDummyCharacterModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOverlayPolygonModel, makVrv::DtRectangularPyramidModel, makVrv::DtOsgRibbonModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtMultiLineModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtTritonTidalStreamWakeModel, makVrv::DtOsgSimpleModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOsgParticleSystemModel, makVrf::DtRadarCoverageModel, makVrv::DtTritonWaterImpactModel, makVrv::Dt3dEntityTacticalDecorationsModel, makVrv::DtDeprecatedOsgArticulatedModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsgDecalModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtOsgPolygonModel, makVrv::DtRotorWashModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::DtOsgAnimationModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtProjectedWidgetModel, makVrv::DtPinnableProjectedWidgetModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsgScribeBoxModel, makVrv::DtOsgTacticalSmokeModel, makVrv::DtDecalProjectorLineModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtOsgCylinderModel, makVrv::DtOsgArticulatingCylinderModel, makVrv::DtFxParticleCollisionObjectModel, makVrv::DtOsg3DTextModel, makVrv::DtOsgProjectedTextModel, makVrv::DtOsgDrawModel, and makVrv::DtExampleModel.

virtual void makVrv::DtModel::setSolid ( bool  isSolid)
virtual
virtual bool makVrv::DtModel::isProp ( )
virtual

Return whether or not this model was added as a prop.

virtual bool makVrv::DtModel::supportsMultithreadedLoad ( )
inlinevirtual

can be quickly overridden to disable background loading

Reimplemented in makVrv::DtArticulatedModel, makVrv::DtParticleSystemModel, and makVrv::DtAnimationModel.

virtual void makVrv::DtModel::backgroundLoad ( )
inlinevirtual

the chunk of loading that can safely happen in the background

Reimplemented in makVrv::DtOsgArticulatedModel, makVrv::DtOsgParticleSystemModel, and makVrv::DtOsgAnimationModel.

virtual void makVrv::DtModel::foregroundLoad ( )
inlinevirtual

the chunk of loading that must happen happen in the foreground, adding to scene graph etc.

Reimplemented in makVrv::DtOsgArticulatedModel, makVrv::DtOsgParticleSystemModel, and makVrv::DtOsgAnimationModel.

virtual bool makVrv::DtModel::isActivelyBackgroundLoading ( )
virtual

is this being actively loaded (it has a myInLoadQueueHandle object and it's loading)

virtual DtLoaderHandle* makVrv::DtModel::getLoadQueueHandle ( )
virtual

returns the load queue object

virtual void makVrv::DtModel::updateMinLastFrameDistance ( float  distance)
virtual

updates the closest distance to an observer over the last frame

virtual void makVrv::DtModel::resetLastFrameDistance ( )
virtual

resets the closest distance to an observer

virtual float makVrv::DtModel::minLastFrameDistance ( ) const
virtual

gets the closest distance to an observer last frame

virtual void makVrv::DtModel::addToScene ( const DtUniqueID sceneObjectId,
DtModelSetId  modelSet,
int  visualizerType 
)
protectedpure virtual

Virtual Functions to be implemented, add this model to the scene.

Implemented in makVrv::DtOsgArticulatedModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtOverlayWedgeModel, makVrv::DtOverlayArcModel, makVrv::DtTritonWakeModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOverlaySecurityModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtOverlayPolygonModel, makVrv::DtDiGuyCharacterModel, makVrv::DtOverlayModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtDeprecatedOsgArticulatedModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtDecalProjectorLineModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsgPolygonModel, makVrv::DtMultiLineModel, makVrv::DtOsgParticleSystemModel, makVrv::DtOsgTacticalSmokeModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::DtOsgScribeBoxModel, makVrv::Dt3dEntityTacticalDecorationsModel, makVrv::DtOsgAnimationModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtTritonTidalStreamWakeModel, makVrv::DtOsgSimpleModel, makVrv::DtTritonWaterImpactModel, makVrf::DtRadarCoverageModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtRotorWashModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsgCylinderModel, makVrv::DtOsgArticulatingCylinderModel, makVrv::DtOsgRibbonModel, makVrf::DtVrfOverlayEllipseArcModel, makVrv::DtOsg3DTextModel, makVrv::DtOsgDecalModel, makVrv::DtOsgProjectedTextModel, makVrv::DtFxParticleCollisionObjectModel, makVrv::DtOsgRotorWashModel, makVrv::DtExampleModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtOsgDrawModel, makVrv::DtDummyCharacterModel, makVrv::DtProjectedWidgetModel, and makVrv::DtPinnableProjectedWidgetModel.

virtual void makVrv::DtModel::addToSceneAsProp ( const DtUniqueID sceneObjectId)
inlineprotectedvirtual

Add this model to the scene as a prop. All models are not required to re-implement this.

Reimplemented in makVrv::DtOsgParticleSystemModel, makVrv::DtOsgScribeBoxModel, makVrv::DtOsgSimpleModel, and makVrv::DtDeprecatedOsgSimpleModel.

virtual void makVrv::DtModel::removeFromScene ( )
protectedpure virtual

Virtual Functions to be implemented, remove this model from the scene.

Implemented in makVrv::DtOsgArticulatedModel, makVrv::DtOverlaySpiderWebModel, makVrv::DtOverlayWedgeModel, makVrv::DtOverlayArcModel, makVrv::DtTritonWakeModel, makVrv::DtOverlayManeuverByFireModel, makVrv::DtOsgExtrudedEllipseModel, makVrv::DtOverlaySecurityModel, makVrv::DtOsgExtrudedPolygonModel, makVrv::DtOsgExtrudedLineModel, makVrv::DtOverlayAmbushLineModel, makVrv::DtOsgOverlayGreatCircleArcModel, makVrv::DtOverlayPolygonModel, makVrv::DtDiGuyCharacterModel, makVrv::DtOverlayModel, makVrv::DtOsgEllipsoidArcModel, makVrv::DtOsg3DGreatCircleArcModel, makVrv::DtOsg3DVolumetricLineModel, makVrv::DtDeprecatedOsgArticulatedModel, makVrv::DtOsgOverlaySegmentedLineModel, makVrv::DtOsg3DSegmentedLineModel, makVrv::DtOsgOverlayDirectionLineModel, makVrv::DtDecalProjectorLineModel, makVrv::DtOsgOverlayEllipseArcModel, makVrv::DtOsgOverlayRectangleModel, makVrv::DtOsgPolygonModel, makVrv::DtOsgParticleSystemModel, makVrv::DtMultiLineModel, makVrv::DtOsgTacticalSmokeModel, makVrv::DtOverlayScreenIntervaledTextModel, makVrv::Dt3dEntityTacticalDecorationsModel, makVrv::DtOsgAnimationModel, makVrv::DtOsgScribeBoxModel, makVrv::DtOsgSimpleModel, makVrv::DtTritonTidalStreamWakeModel, makVrv::DtOsg2DVolumetricLineModel, makVrv::DtTritonWaterImpactModel, makVrf::DtRadarCoverageModel, makVrv::DtDeprecatedOsgSimpleModel, makVrv::DtOsgAttachableCuboidModel, makVrv::DtOsgAttachableEllipsoidModel, makVrv::DtRotorWashModel, makVrv::DtOsgCylinderModel, makVrv::DtOsgArticulatingCylinderModel, DtVrfDeprecatedOsgArticulatedModel, makVrv::DtOsgRibbonModel, makVrv::DtOsgDecalModel, makVrv::DtOsg3DTextModel, makVrv::DtOsgProjectedTextModel, makVrv::DtFxParticleCollisionObjectModel, makVrv::DtOsgRotorWashModel, makVrv::DtOsgRectangularPyramidModel, makVrv::DtExampleModel, makVrv::DtOsgDrawModel, makVrv::DtDummyCharacterModel, makVrv::DtProjectedWidgetModel, makVrv::DtPinnableProjectedWidgetModel, and DtVrfOsgArticulatedModel.

virtual void makVrv::DtModel::initializeModelInstance ( )
protectedvirtual

Push any state maintained by the model to the model instance.

Reimplemented in makVrv::DtOsgRibbonModel, makVrv::DtOsgDecalModel, and makVrv::DtOsgDrawModel.

void makVrv::DtModel::slot_modelInstanceChanged ( DtModelInstance instance)
protected

Called when the model instance changed.

virtual void makVrv::DtModel::waitAndClearLoadHandle ( )
protectedvirtual

avoids race condition, on destruction subclasses need to wait for the model to cleanly finish loading this can happen if an object times in and out very quickly

virtual void makVrv::DtModel::removedFromLoadQueue ( )
protectedvirtual

deletes the myInLoadQueueHandle handle

virtual void makVrv::DtModel::setDoneBackgroundLoading ( )
protectedvirtual

called by async task, updates myCurrentlyLoading atomic

virtual void makVrv::DtModel::setActivelyBackgroundLoading ( )
protectedvirtual

called right before tbb task creation

void makVrv::DtModel::deleteModelInstance ( )
private

Delete the model instance (and emit signal_modelToBeDestroyed)

Friends And Related Function Documentation

friend class DtBackgroundLoader
friend
friend class DtBackgroundLoadAsyncTask
friend

Member Data Documentation

boost::signalslib::signal<void (DtModel*)> makVrv::DtModel::signal_modelToBeDestroyed

Signal emitted when the model is to be destroyed.

boost::signalslib::signal<void (DtModel*)> makVrv::DtModel::signal_modelChanged
boost::signalslib::signal<bool (DtModel*,bool ), SlotReturnOR> makVrv::DtModel::signal_visibilityChangeRequested

Signal when the visibility has been requested, if any slot returns false, it will not change.

boost::signalslib::signal<void (DtModelInstance*, DtModel*)> makVrv::DtModel::signal_modelInstanceCreated

Signal emitted when the model instance is created.

boost::signalslib::signal<void (DtModelInstance*, DtModel*)> makVrv::DtModel::signal_modelInstanceToBeDestroyed

Signal emitted when the model instance is to be destroyed.

DtLoaderHandle* makVrv::DtModel::myInLoadQueueHandle
protected
bool makVrv::DtModel::theInittedState
staticprotected
DtDe& makVrv::DtModel::myDe
protected
const DtUniqueID makVrv::DtModel::myUniqueId
protected

The unique id is constant after initialization.

DtUniqueID makVrv::DtModel::myElementId
protected
DtUniqueID makVrv::DtModel::myParentSceneObjectID
protected
bool makVrv::DtModel::myColorBlendingEnabled
protected

The color blending enabled is needed to be set by the derived class so it doesn't get down to the model instances when instancing is enabled.

DtModelInstance* makVrv::DtModel::myBackgroundModelInstance
protected

holds the model created in the background for a bit

float makVrv::DtModel::myMinLastFrameDistance
protected

last frames mimimal distance to the camera, calculated by the instancing system

TransformList makVrv::DtModel::myTransforms
protected

We keep our own copy in case we get updates before we get a model instance.

DtModelInstance* makVrv::DtModel::myModelInstance
protected
DtModelSetId makVrv::DtModel::myModelSet
protected
int makVrv::DtModel::myVisualizerType
protected
bool makVrv::DtModel::myContributesToBound
protected
bool makVrv::DtModel::myIsPropFlag
protected
float makVrv::DtModel::myBlendColor[4]
protected
bool makVrv::DtModel::myVisibleFlag
protected
DtVector makVrv::DtModel::myPositionOffset
protected
DtTaitBryan makVrv::DtModel::myOrientationOffset
protected
std::string makVrv::DtModel::myModelDefinitionName
protected
bool makVrv::DtModel::myRequireModelInstance = 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)