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;
140 DtTaitBryan getTopographicOrientation(
const DtVector& geocLocation,
const DtTaitBryan& geocOrientation)
const;
143 void getOrientation(
int vtx,
DtQuat& orientation )
const;
147 virtual void transformToSceneObjectCoord(
const DtVector& dbCoord,
DtVector& soCoord);
151 virtual void transformToDatabaseCoord(
const DtVector& soCoord,
DtVector& dbCoord);
154 void setColor(
float r,
float g,
float b,
float a);
158 void setModelSet(
int modelSet );
161 int modelSet()
const;
165 void setIsProp(
bool isProp );
171 void setIsSupportObject(
bool b );
174 bool isSupportObject();
177 void setSolid(
bool b );
180 bool isSolid()
const;
192 const ModelList& models()
const;
198 const TransformList& transforms()
const;
201 virtual void removePosition(
int);
205 void setBoundingBoxSize(
double minX,
double maxX,
206 double minY,
double maxY,
double minZ,
double maxZ);
209 const DtVector& boundingBoxExtents()
const;
212 void getBoundingBoxExtents(
double& x,
double& y,
double& z)
const;
215 const DtVector& boundingBoxCenter()
const;
218 void getBoundingBoxCenter(
double& x,
double& y,
double& z)
const;
221 double boundingRadius()
const;
226 void setVisible(
bool visible );
232 bool isVisible()
const;
239 virtual void setBeingObserved(
bool observed);
240 virtual bool beingObserved()
const;
251 virtual float getAndResetMinModelDistance();
273 void initializeModel(
DtModel* modelInstanceOwner );
276 void modelChanged(
DtModel* model );
281 bool modelVisibilityRequested(
DtModel* model,
bool visible);
284 void resetModelTransforms();
288 void updateBoundingBoxViaContents();
291 void calculateBoundingRadius();
294 virtual void addModelConnections(
DtModel* model );
297 virtual void removeModelConnections(
DtModel* model );
boost::unordered_map< DtModel *, ModelConnections > ModelConnectionsMap
Definition: DtSceneObject.h:328
boost::signalslib::signal< void(DtModel *)> signal_modelAdded
Signaled after a model has been added.
Definition: DtSceneObject.h:257
ModelList myModels
Definition: DtSceneObject.h:312
DtVector myBoundingBoxExtents
Definition: DtSceneObject.h:316
int myModelSet
Definition: DtSceneObject.h:308
double myBoundingRadius
Definition: DtSceneObject.h:317
Scene Object Updater.
Definition: DtSceneObjectUpdater.h:36
boost::signalslib::connection modelDestroyedConnection
Definition: DtSceneObject.h:323
Definition: DtSceneObject.h:55
boost::signalslib::signal< void(DtSceneObject *)> signal_boundingVolumeChanged
Emitted after the bounding volume of the object changes.
Definition: DtSceneObject.h:266
ModelSet
Definition: DtSceneObject.h:77
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
boost::signalslib::connection modelChangedConnection
Definition: DtSceneObject.h:324
bool myIsDrawnSolid
Definition: DtSceneObject.h:311
bool origVisibility
Definition: DtSceneObject.h:58
DtVector myBoundingBoxCenter
Definition: DtSceneObject.h:315
bool myVisibleFlag
Definition: DtSceneObject.h:313
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myIsProp
Definition: DtSceneObject.h:309
FindModelFunctor(const FindModelFunctor &fm)
Definition: DtSceneObject.h:65
bool myBeingObserved
Definition: DtSceneObject.h:319
DtModel * model
Definition: DtSceneObject.h:57
DtUniqueID myUniqueId
Definition: DtSceneObject.h:303
boost::signalslib::connection modelVisibilityConnection
Definition: DtSceneObject.h:325
DtVector myOffset
Definition: DtSceneObject.h:318
Definition: DtSceneObject.h:62
DtSceneObjectUpdater * myUpdater
Definition: DtSceneObject.h:306
DtElementID myElementID
Definition: DtSceneObject.h:305
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
FindModelFunctor(DtModel *aKey=0)
Definition: DtSceneObject.h:64
std::pair< DtModel *, ModelConnections > ModelConnectionsPair
Definition: DtSceneObject.h:327
bool myGroundClampTo
Definition: DtSceneObject.h:310
TransformList myTransforms
Definition: DtSceneObject.h:304
bool myCalculateBoundingBoxFlag
Definition: DtSceneObject.h:314
boost::signalslib::signal< void(const DtUniqueID &) > signal_sceneObjectToBeDeleted
Emitted before the scene object is destroyed.
Definition: DtSceneObject.h:263
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:55
Contains makVrv::DtUniqueID type.
ModelConnectionsMap myModelConnections
Definition: DtSceneObject.h:329
std::vector< ObjectTransform > TransformList
Definition: DtSceneObject.h:52
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signalslib::signal< void(DtModel *)> signal_modelRemoved
Signaled after the model has been removed.
Definition: DtSceneObject.h:260
Definition: DtSceneObject.h:321
DtDe & myDe
Definition: DtSceneObject.h:302
A utility Quaternion class.
Definition: DtQuat.h:19
std::vector< ModelRecord > ModelList
Definition: DtSceneObject.h:75
DtModel * myKey
Definition: DtSceneObject.h:72
voidpf uLong offset
Definition: ioapi.h:42
Contains DLL export macros.