14 #include <matrix/vlVector.h>
15 #include <matrix/vlTaitBryan.h>
19 #include <boost/unordered_map.hpp>
26 class DtSceneObjectUpdater;
70 return myKey == rec.
model;
80 ModelSet_Unspecified = -1,
82 ModelSet_3DColorized = 1,
94 void addModel(
DtModel* model,
int visualizerType );
97 void removeModel(
DtModel* model );
104 void setPosition(
int vtx,
const DtVector& position );
107 void addPosition(
int vtx,
const DtVector& position );
110 void getPosition(
int vtx,
DtVector& position )
const;
121 void setOrientation(
int vtx,
const DtTaitBryan& orientation );
124 void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
128 void setTopographicOrientation(
int vtx,
129 const DtTaitBryan& topoOrientation );
132 void getOrientation(
int vtx, DtTaitBryan& orientation )
const;
136 void getTopographicOrientation(
int vtx, DtTaitBryan& orientation )
const;
141 DtTaitBryan getTopographicOrientation(
const DtVector& geocLocation,
const DtTaitBryan& geocOrientation)
const;
144 void getOrientation(
int vtx,
DtQuat& orientation )
const;
148 virtual void transformToSceneObjectCoord(
const DtVector& dbCoord,
DtVector& soCoord);
152 virtual void transformToDatabaseCoord(
const DtVector& soCoord,
DtVector& dbCoord);
155 void setColor(
float r,
float g,
float b,
float a);
162 void setModelSet(
int modelSet );
165 int modelSet()
const;
169 void setIsProp(
bool isProp );
175 void setIsSupportObject(
bool b );
178 bool isSupportObject();
181 void setSolid(
bool b );
184 bool isSolid()
const;
197 const ModelList& models()
const;
203 const TransformList& transforms()
const;
206 virtual void removePosition(
int);
210 void setBoundingBoxSize(
double minX,
double maxX,
211 double minY,
double maxY,
double minZ,
double maxZ);
214 const DtVector& boundingBoxExtents()
const;
217 void getBoundingBoxExtents(
double& x,
double& y,
double& z)
const;
220 const DtVector& boundingBoxCenter()
const;
223 void getBoundingBoxCenter(
double& x,
double& y,
double& z)
const;
226 double boundingRadius()
const;
231 void setVisible(
bool visible );
237 bool isVisible()
const;
244 virtual void setBeingObserved(
bool observed);
245 virtual bool beingObserved()
const;
256 virtual float getAndResetMinModelDistance();
278 void initializeModel(
DtModel* modelInstanceOwner );
281 void modelChanged(
DtModel* model );
286 bool modelVisibilityRequested(
DtModel* model,
bool visible);
289 void resetModelTransforms();
293 void updateBoundingBoxViaContents();
296 void calculateBoundingRadius();
299 virtual void addModelConnections(
DtModel* model );
302 virtual void removeModelConnections(
DtModel* model );
boost::unordered_map< DtModel *, ModelConnections > ModelConnectionsMap
Definition: DtSceneObject.h:333
boost::signalslib::signal< void(DtModel *)> signal_modelAdded
Signaled after a model has been added.
Definition: DtSceneObject.h:262
ModelList myModels
Definition: DtSceneObject.h:317
DtVector myBoundingBoxExtents
Definition: DtSceneObject.h:321
int myModelSet
Definition: DtSceneObject.h:313
double myBoundingRadius
Definition: DtSceneObject.h:322
Scene Object Updater.
Definition: DtSceneObjectUpdater.h:36
boost::signalslib::connection modelDestroyedConnection
Definition: DtSceneObject.h:328
Definition: DtSceneObject.h:56
boost::signalslib::signal< void(DtSceneObject *)> signal_boundingVolumeChanged
Emitted after the bounding volume of the object changes.
Definition: DtSceneObject.h:271
ModelSet
Definition: DtSceneObject.h:78
boost::signalslib::connection modelChangedConnection
Definition: DtSceneObject.h:329
bool myIsDrawnSolid
Definition: DtSceneObject.h:316
bool origVisibility
Definition: DtSceneObject.h:59
DtVector myBoundingBoxCenter
Definition: DtSceneObject.h:320
bool myVisibleFlag
Definition: DtSceneObject.h:318
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myIsProp
Definition: DtSceneObject.h:314
FindModelFunctor(const FindModelFunctor &fm)
Definition: DtSceneObject.h:66
bool myBeingObserved
Definition: DtSceneObject.h:324
DtModel * model
Definition: DtSceneObject.h:58
DtUniqueID myUniqueId
Definition: DtSceneObject.h:308
boost::signalslib::connection modelVisibilityConnection
Definition: DtSceneObject.h:330
DtVector myOffset
Definition: DtSceneObject.h:323
Definition: DtSceneObject.h:63
DtSceneObjectUpdater * myUpdater
Definition: DtSceneObject.h:311
DtElementID myElementID
Definition: DtSceneObject.h:310
FindModelFunctor(DtModel *aKey=0)
Definition: DtSceneObject.h:65
std::pair< DtModel *, ModelConnections > ModelConnectionsPair
Definition: DtSceneObject.h:332
bool myGroundClampTo
Definition: DtSceneObject.h:315
TransformList myTransforms
Definition: DtSceneObject.h:309
bool myCalculateBoundingBoxFlag
Definition: DtSceneObject.h:319
boost::signalslib::signal< void(const DtUniqueID &) > signal_sceneObjectToBeDeleted
Emitted before the scene object is destroyed.
Definition: DtSceneObject.h:268
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:42
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:55
Contains makVrv::DtUniqueID type.
ModelConnectionsMap myModelConnections
Definition: DtSceneObject.h:334
std::vector< ObjectTransform > TransformList
Definition: DtSceneObject.h:53
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
boost::signalslib::signal< void(DtModel *)> signal_modelRemoved
Signaled after the model has been removed.
Definition: DtSceneObject.h:265
Definition: DtSceneObject.h:326
DtDe & myDe
Definition: DtSceneObject.h:307
A utility Quaternion class.
Definition: DtQuat.h:19
std::vector< ModelRecord > ModelList
Definition: DtSceneObject.h:76
DtModel * myKey
Definition: DtSceneObject.h:73
voidpf uLong offset
Definition: ioapi.h:42
Contains DLL export macros.