18 #include <matrix/vlVector.h>
19 #include <matrix/vlTaitBryan.h>
25 class DtModelInstance;
26 class DtModelDefinition;
27 struct DtLoaderHandle;
33 template<
typename InputIterator>
34 bool operator()(InputIterator first, InputIterator last)
const
66 DtModelInstance* createModelInstance(
const std::string& modelDefName,
bool realize =
true);
69 virtual void setModelDefinition(
const std::string& str);
74 virtual void saveModelToFile(
const std::string&
filename);
78 virtual const std::string& className()
const;
88 unsigned int transformSize()
const;
91 virtual void setPosition(
int vtx,
const DtVector& position);
95 virtual const DtVector& position(
int vtx = 0)
const;
98 virtual void removePosition(
int vtx);
103 virtual void setPositionOffset(
const DtVector& positionOffset);
106 virtual const DtVector& positionOffset()
const;
109 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation );
112 virtual void setPositionAndOrientation(
int vtx,
const DtVector& positionOffset,
const DtTaitBryan& orientation);
116 virtual const DtTaitBryan& orientation(
int vtx = 0)
const;
121 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
124 virtual const DtTaitBryan& orientationOffset()
const;
127 virtual void enableColorBlending(
bool b );
130 virtual void setBlendColor(
float r,
float g,
float b,
float a );
133 virtual void getBlendColor(
float& r,
float& g,
float& b,
float& a);
136 virtual bool colorBlendingEnabled()
const;
139 virtual void setColor(
float r,
float g,
float b,
float a);
143 virtual void enableLighting(
bool l );
146 virtual int modelSet()
const;
149 const DtVector& boundingBoxExtents()
const;
152 void getBoundingBoxExtents(
double& x,
double& y,
double& z)
const;
155 const DtVector& boundingBoxCenter()
const;
158 virtual void getBoundingBoxCenter(
double& x,
double& y,
double& z)
const;
161 virtual void getBoundingBoxComponents(
DtVector& minimum,
DtVector& maximum );
165 void setContributesToBound(
bool trueOrFalse );
169 bool contributesToBound()
const;
172 int visualizerType()
const;
195 virtual void setVisible(
bool isVisible);
201 virtual bool visible()
const;
207 virtual void addedToSceneObjectAsProp(
const DtUniqueID& sceneObj );
211 virtual void addedToSceneObject(
const DtUniqueID& sceneObj,
int modelSet,
212 int visualizerType );
220 virtual void removedFromSceneObject();
224 virtual void setIsSupportModel(
bool isSupport) = 0;
227 virtual void setSolid(
bool isSolid);
230 virtual bool isProp();
248 virtual bool supportsMultithreadedLoad() {
return false; }
258 virtual bool isActivelyBackgroundLoading();
265 virtual void updateMinLastFrameDistance(
float distance);
268 virtual void resetLastFrameDistance();
271 virtual float minLastFrameDistance()
const;
276 virtual void addToScene(
const DtUniqueID& sceneObjectId,
277 int modelSet,
int visualizerType ) = 0;
284 virtual void removeFromScene() = 0;
287 virtual void initializeModelInstance();
296 virtual void waitAndClearLoadHandle();
298 virtual void removedFromLoadQueue();
300 virtual void setDoneBackgroundLoading();
302 virtual void setActivelyBackgroundLoading();
335 void deleteModelInstance();
348 float myBlendColor[4];
DtVector myPositionOffset
Definition: DtModel.h:350
The base class for all model instances.
Definition: DtModelInstance.h:39
TransformList myTransforms
We keep our own copy in case we get updates before we get a model instance.
Definition: DtModel.h:341
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtTaitBryan myOrientationOffset
Definition: DtModel.h:351
boost::signalslib::signal< void(DtModelInstance *, DtModel *)> signal_modelInstanceCreated
Signal emitted when the model instance is created.
Definition: DtModel.h:241
std::string myModelDefinitionName
Definition: DtModel.h:352
DtModelInstance * myBackgroundModelInstance
holds the model created in the background for a bit
Definition: DtModel.h:328
async task that loads a DtModel in the background
Definition: DtBackgroundLoadAsyncTask.h:25
std::vector< ObjectTransform > TransformList
Definition: DtModel.h:317
core singleton that manages loading for all the various DtModel subclasses
Definition: DtBackgroundLoader.h:38
bool myContributesToBound
Definition: DtModel.h:345
virtual void backgroundLoad()
the chunk of loading that can safely happen in the background
Definition: DtModel.h:252
static bool theInittedState
Definition: DtModel.h:308
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
bool myVisibleFlag
Definition: DtModel.h:349
boost::signalslib::signal< void(DtModel *)> signal_modelToBeDestroyed
Signal emitted when the model is to be destroyed.
Definition: DtModel.h:233
DtModelInstance * myModelInstance
Definition: DtModel.h:342
bool result_type
Definition: DtModel.h:32
boost::signalslib::signal< void(DtModel *)> signal_modelChanged
Definition: DtModel.h:234
boost::signalslib::signal< void(DtModelInstance &)> signal_modelToBeDestroyed
Signal emitted when a model is fully created.
Definition: DtModel.h:373
Contains makVrv::DtVirtualBaseClass class.
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
boost::signalslib::signal< void(DtModelInstance *, DtModel *)> signal_modelInstanceToBeDestroyed
Signal emitted when the model instance is to be destroyed.
Definition: DtModel.h:244
virtual void foregroundLoad()
the chunk of loading that must happen happen in the foreground, adding to scene graph etc...
Definition: DtModel.h:255
float myMinLastFrameDistance
last frames mimimal distance to the camera, calculated by the instancing system
Definition: DtModel.h:331
wrapper object that insulates the loader from other threads destroying an object
Definition: DtLoaderHandle.h:23
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signalslib::signal< void(DtModelInstance &)> signal_modelCreated
Signal emitted when a model is fully created.
Definition: DtModel.h:366
boost::signalslib::signal< void(DtModelInstance &)> signal_modelChanged
Signal emitted when a model has changed in some way.
Definition: DtModel.h:369
bool myColorBlendingEnabled
The color blending enabled is needed to be set by the derived class so it doesn't get down to the mod...
Definition: DtModel.h:325
int myModelSet
Definition: DtModel.h:343
DtLoaderHandle * myInLoadQueueHandle
Definition: DtModel.h:306
virtual const std::string & modelDefinitionName()
returns the model definition name.
Definition: DtModel.h:71
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.
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
bool myIsPropFlag
Definition: DtModel.h:347
A signaler for model changes.
Definition: DtModel.h:356
virtual void addToSceneAsProp(const DtUniqueID &sceneObjectId)
Add this model to the scene as a prop. All models are not required to re-implement this...
Definition: DtModel.h:281
bool operator()(InputIterator first, InputIterator last) const
Definition: DtModel.h:34
DtDe & myDe
Definition: DtModel.h:319
boost::signalslib::signal< bool(DtModel *, bool), SlotReturnOR > signal_visibilityChangeRequested
Signal when the visibility has been requested, if any slot returns false, it will not change...
Definition: DtModel.h:238
const DtUniqueID myUniqueId
The unique id is constant after initialization.
Definition: DtModel.h:322
DtDe & de()
Get the DtDe object.
Definition: DtModel.h:179
DtUniqueID myParentSceneObjectID
Definition: DtModel.h:346
Contains DLL export macros.
int myVisualizerType
Definition: DtModel.h:344