14 #include <matrix/vlVector.h>
15 #include <matrix/vlTaitBryan.h>
19 #include <boost/unordered_map.hpp>
26 class DtSceneObjectUpdater;
69 return myKey == rec.
model;
79 ModelSet_Unspecified = -1,
81 ModelSet_3DColorized = 1,
93 void addModel(
DtModel* model,
int visualizerType );
96 void removeModel(
DtModel* model );
103 void setPosition(
int vtx,
const DtVector& position );
106 void addPosition(
int vtx,
const DtVector& position );
109 void getPosition(
int vtx,
DtVector& position )
const;
120 void setOrientation(
int vtx,
const DtTaitBryan& orientation );
123 void setPositionAndOrientation(
int vtx,
const DtVector& position,
const DtTaitBryan& orientation);
127 void setTopographicOrientation(
int vtx,
128 const DtTaitBryan& topoOrientation );
131 void getOrientation(
int vtx, DtTaitBryan& orientation )
const;
135 void getTopographicOrientation(
int vtx, DtTaitBryan& orientation )
const;
138 void getOrientation(
int vtx,
DtQuat& orientation )
const;
142 virtual void transformToSceneObjectCoord(
const DtVector& dbCoord,
DtVector& soCoord);
146 virtual void transformToDatabaseCoord(
const DtVector& soCoord,
DtVector& dbCoord);
149 void setColor(
float r,
float g,
float b,
float a);
153 void setModelSet(
int modelSet );
156 int modelSet()
const;
160 void setIsProp(
bool isProp );
166 void setIsSupportObject(
bool b );
169 bool isSupportObject();
172 void setSolid(
bool b );
175 bool isSolid()
const;
187 const ModelList& models()
const;
193 const TransformList& transforms()
const;
196 virtual void removePosition(
int);
200 void setBoundingBoxSize(
double minX,
double maxX,
201 double minY,
double maxY,
double minZ,
double maxZ);
204 const DtVector& boundingBoxExtents()
const;
207 void getBoundingBoxExtents(
double& x,
double& y,
double& z)
const;
210 const DtVector& boundingBoxCenter()
const;
213 void getBoundingBoxCenter(
double& x,
double& y,
double& z)
const;
216 double boundingRadius()
const;
221 void setVisible(
bool visible );
227 bool isVisible()
const;
234 virtual void setBeingObserved(
bool observed);
235 virtual bool beingObserved()
const;
246 virtual float getAndResetMinModelDistance();
268 void initializeModel(
DtModel* modelInstanceOwner );
271 void modelChanged(
DtModel* model );
276 bool modelVisibilityRequested(
DtModel* model,
bool visible);
279 void resetModelTransforms();
283 void updateBoundingBoxViaContents();
286 void calculateBoundingRadius();
289 virtual void addModelConnections(
DtModel* model );
292 virtual void removeModelConnections(
DtModel* model );
boost::unordered_map< DtModel *, ModelConnections > ModelConnectionsMap
Definition: DtSceneObject.h:323
ModelList myModels
Definition: DtSceneObject.h:307
DtVector myBoundingBoxExtents
Definition: DtSceneObject.h:311
int myModelSet
Definition: DtSceneObject.h:303
boost::signal< void(const DtUniqueID &) > signal_sceneObjectToBeDeleted
Emitted before the scene object is destroyed.
Definition: DtSceneObject.h:258
double myBoundingRadius
Definition: DtSceneObject.h:312
Scene Object Updater.
Definition: DtSceneObjectUpdater.h:36
boost::signalslib::connection modelDestroyedConnection
Definition: DtSceneObject.h:318
Definition: DtSceneObject.h:55
ModelSet
Definition: DtSceneObject.h:77
boost::signal< void(DtModel *)> signal_modelAdded
Signaled after a model has been added.
Definition: DtSceneObject.h:252
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
boost::signal< void(DtSceneObject *)> signal_boundingVolumeChanged
Emitted after the bounding volume of the object changes.
Definition: DtSceneObject.h:261
boost::signalslib::connection modelChangedConnection
Definition: DtSceneObject.h:319
bool myIsDrawnSolid
Definition: DtSceneObject.h:306
bool origVisibility
Definition: DtSceneObject.h:58
DtVector myBoundingBoxCenter
Definition: DtSceneObject.h:310
bool myVisibleFlag
Definition: DtSceneObject.h:308
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myIsProp
Definition: DtSceneObject.h:304
FindModelFunctor(const FindModelFunctor &fm)
Definition: DtSceneObject.h:65
bool myBeingObserved
Definition: DtSceneObject.h:314
DtModel * model
Definition: DtSceneObject.h:57
DtUniqueID myUniqueId
Definition: DtSceneObject.h:298
boost::signalslib::connection modelVisibilityConnection
Definition: DtSceneObject.h:320
DtVector myOffset
Definition: DtSceneObject.h:313
Definition: DtSceneObject.h:62
DtSceneObjectUpdater * myUpdater
Definition: DtSceneObject.h:301
DtElementID myElementID
Definition: DtSceneObject.h:300
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
FindModelFunctor(DtModel *aKey=0)
Definition: DtSceneObject.h:64
std::pair< DtModel *, ModelConnections > ModelConnectionsPair
Definition: DtSceneObject.h:322
bool myGroundClampTo
Definition: DtSceneObject.h:305
TransformList myTransforms
Definition: DtSceneObject.h:299
bool myCalculateBoundingBoxFlag
Definition: DtSceneObject.h:309
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
A model which owns a single model instance.
Definition: DtModel.h:56
Contains makVrv::DtUniqueID type.
ModelConnectionsMap myModelConnections
Definition: DtSceneObject.h:324
std::vector< ObjectTransform > TransformList
Definition: DtSceneObject.h:52
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: DtSceneObject.h:316
DtDe & myDe
Definition: DtSceneObject.h:297
A utility Quaternion class.
Definition: DtQuat.h:22
std::vector< ModelRecord > ModelList
Definition: DtSceneObject.h:75
DtModel * myKey
Definition: DtSceneObject.h:72
voidpf uLong offset
Definition: ioapi.h:42
boost::signal< void(DtModel *)> signal_modelRemoved
Signaled after the model has been removed.
Definition: DtSceneObject.h:255
Contains DLL export macros.