17 #include <boost/signal.hpp>
19 #include <matrix/vlVector.h>
20 #include <matrix/vlTaitBryan.h>
26 class DtModelInstance;
27 class DtModelDefinition;
28 struct DtLoaderHandle;
34 template<
typename InputIterator>
35 bool operator()(InputIterator first, InputIterator last)
const
67 DtModelInstance* createModelInstance(
const std::string& modelDefName,
bool realize =
true);
70 virtual void setModelDefinition(
const std::string& str);
75 virtual void saveModelToFile(
const std::string&
filename);
79 virtual const std::string& className()
const;
89 unsigned int transformSize()
const;
92 virtual void setPosition(
int vtx,
const DtVector& position);
96 virtual const DtVector& position(
int vtx = 0)
const;
99 virtual void removePosition(
int vtx);
104 virtual void setPositionOffset(
const DtVector& positionOffset);
107 virtual const DtVector& positionOffset()
const;
110 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation );
113 virtual void setPositionAndOrientation(
int vtx,
const DtVector& positionOffset,
const DtTaitBryan& orientation);
117 virtual const DtTaitBryan& orientation(
int vtx = 0)
const;
122 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
125 virtual const DtTaitBryan& orientationOffset()
const;
128 virtual void enableColorBlending(
bool b );
131 virtual void setBlendColor(
float r,
float g,
float b,
float a );
134 virtual void getBlendColor(
float& r,
float& g,
float& b,
float& a);
137 virtual bool colorBlendingEnabled()
const;
140 virtual void setColor(
float r,
float g,
float b,
float a);
144 virtual void enableLighting(
bool l );
147 virtual int modelSet()
const;
150 const DtVector& boundingBoxExtents()
const;
153 void getBoundingBoxExtents(
double& x,
double& y,
double& z)
const;
156 const DtVector& boundingBoxCenter()
const;
159 virtual void getBoundingBoxCenter(
double& x,
double& y,
double& z)
const;
162 virtual void getBoundingBoxComponents(
DtVector& minimum,
DtVector& maximum );
166 void setContributesToBound(
bool trueOrFalse );
170 bool contributesToBound()
const;
173 int visualizerType()
const;
196 virtual void setVisible(
bool isVisible);
202 virtual bool visible()
const;
208 virtual void addedToSceneObjectAsProp(
const DtUniqueID& sceneObj );
212 virtual void addedToSceneObject(
const DtUniqueID& sceneObj,
int modelSet,
213 int visualizerType );
221 virtual void removedFromSceneObject();
225 virtual void setIsSupportModel(
bool isSupport) = 0;
228 virtual void setSolid(
bool isSolid);
231 virtual bool isProp();
249 virtual bool supportsMultithreadedLoad() {
return false; }
259 virtual bool isActivelyBackgroundLoading();
266 virtual void updateMinLastFrameDistance(
float distance);
269 virtual void resetLastFrameDistance();
272 virtual float minLastFrameDistance()
const;
277 virtual void addToScene(
const DtUniqueID& sceneObjectId,
278 int modelSet,
int visualizerType ) = 0;
285 virtual void removeFromScene() = 0;
288 virtual void initializeModelInstance();
297 virtual void waitAndClearLoadHandle();
299 virtual void removedFromLoadQueue();
301 virtual void setDoneBackgroundLoading();
303 virtual void setActivelyBackgroundLoading();
336 void deleteModelInstance();
349 float myBlendColor[4];
DtVector myPositionOffset
Definition: DtModel.h:351
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:342
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtTaitBryan myOrientationOffset
Definition: DtModel.h:352
boost::signal< void(DtModelInstance *, DtModel *)> signal_modelInstanceToBeDestroyed
Signal emitted when the model instance is to be destroyed.
Definition: DtModel.h:245
boost::signal< void(DtModel *)> signal_modelToBeDestroyed
Signal emitted when the model is to be destroyed.
Definition: DtModel.h:234
std::string myModelDefinitionName
Definition: DtModel.h:353
DtModelInstance * myBackgroundModelInstance
holds the model created in the background for a bit
Definition: DtModel.h:329
async task that loads a DtModel in the background
Definition: DtBackgroundLoadAsyncTask.h:25
std::vector< ObjectTransform > TransformList
Definition: DtModel.h:318
core singleton that manages loading for all the various DtModel subclasses
Definition: DtBackgroundLoader.h:38
bool myContributesToBound
Definition: DtModel.h:346
virtual void backgroundLoad()
the chunk of loading that can safely happen in the background
Definition: DtModel.h:253
static bool theInittedState
Definition: DtModel.h:309
boost::signal< void(DtModelInstance &)> signal_modelChanged
Signal emitted when a model has changed in some way.
Definition: DtModel.h:370
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
boost::signal< void(DtModelInstance &)> signal_modelToBeDestroyed
Signal emitted when a model is fully created.
Definition: DtModel.h:374
bool myVisibleFlag
Definition: DtModel.h:350
DtModelInstance * myModelInstance
Definition: DtModel.h:343
bool result_type
Definition: DtModel.h:33
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.
virtual void foregroundLoad()
the chunk of loading that must happen happen in the foreground, adding to scene graph etc...
Definition: DtModel.h:256
float myMinLastFrameDistance
last frames mimimal distance to the camera, calculated by the instancing system
Definition: DtModel.h:332
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::signal< void(DtModelInstance &)> signal_modelCreated
Signal emitted when a model is fully created.
Definition: DtModel.h:367
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
boost::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:239
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:326
int myModelSet
Definition: DtModel.h:344
boost::signal< void(DtModel *)> signal_modelChanged
Definition: DtModel.h:235
DtLoaderHandle * myInLoadQueueHandle
Definition: DtModel.h:307
boost::signal< void(DtModelInstance *, DtModel *)> signal_modelInstanceCreated
Signal emitted when the model instance is created.
Definition: DtModel.h:242
virtual const std::string & modelDefinitionName()
returns the model definition name.
Definition: DtModel.h:72
A model which owns a single model instance.
Definition: DtModel.h:56
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
bool myIsPropFlag
Definition: DtModel.h:348
A signaler for model changes.
Definition: DtModel.h:357
virtual void addToSceneAsProp(const DtUniqueID &sceneObjectId)
Add this model to the scene as a prop.
Definition: DtModel.h:282
bool operator()(InputIterator first, InputIterator last) const
Definition: DtModel.h:35
DtDe & myDe
Definition: DtModel.h:320
const DtUniqueID myUniqueId
The unique id is constant after initialization.
Definition: DtModel.h:323
DtDe & de()
Get the DtDe object.
Definition: DtModel.h:180
DtUniqueID myParentSceneObjectID
Definition: DtModel.h:347
Contains DLL export macros.
int myVisualizerType
Definition: DtModel.h:345