18 #include <matrix/vlVector.h>
19 #include <matrix/vlTaitBryan.h>
25 class DtModelInstance;
26 class DtModelDefinition;
27 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;
91 unsigned int transformSize()
const;
94 virtual void setPosition(
int vtx,
const DtVector& position);
98 virtual const DtVector& position(
int vtx = 0)
const;
101 virtual void removePosition(
int vtx);
106 virtual void setPositionOffset(
const DtVector& positionOffset);
109 virtual const DtVector& positionOffset()
const;
112 virtual void setOrientation(
int vtx,
const DtTaitBryan& orientation );
115 virtual void setPositionAndOrientation(
int vtx,
const DtVector& positionOffset,
const DtTaitBryan& orientation);
119 virtual const DtTaitBryan& orientation(
int vtx = 0)
const;
124 virtual void setOrientationOffset(
const DtTaitBryan& orientationOffset);
127 virtual const DtTaitBryan& orientationOffset()
const;
130 virtual void enableColorBlending(
bool b );
133 virtual void setBlendColor(
float r,
float g,
float b,
float a );
136 virtual void getBlendColor(
float& r,
float& g,
float& b,
float& a);
139 virtual bool colorBlendingEnabled()
const;
142 virtual void setColor(
float r,
float g,
float b,
float a);
146 virtual void enableLighting(
bool l );
152 const DtVector& boundingBoxExtents()
const;
155 void getBoundingBoxExtents(
double&
x,
double&
y,
double&
z)
const;
158 const DtVector& boundingBoxCenter()
const;
161 virtual void getBoundingBoxCenter(
double&
x,
double&
y,
double&
z)
const;
164 virtual void getBoundingBoxComponents( DtVector& minimum, DtVector& maximum );
168 void setContributesToBound(
bool trueOrFalse );
172 bool contributesToBound()
const;
175 int visualizerType()
const;
198 virtual void setVisible(
bool isVisible);
204 virtual bool visible()
const;
210 virtual void addedToSceneObjectAsProp(
const DtUniqueID& sceneObj );
215 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,
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();
342 void deleteModelInstance();
354 float myBlendColor[4];
360 bool myRequireModelInstance =
true;
DtVector myPositionOffset
Definition: DtModel.h:356
The base class for all model instances.
Definition: DtModelInstance.h:41
TransformList myTransforms
We keep our own copy in case we get updates before we get a model instance.
Definition: DtModel.h:348
Virtual base class.
Definition: DtVirtualBaseClass.h:19
DtTaitBryan myOrientationOffset
Definition: DtModel.h:357
boost::signalslib::signal< void(DtModelInstance *, DtModel *)> signal_modelInstanceCreated
Signal emitted when the model instance is created.
Definition: DtModel.h:242
std::string myModelDefinitionName
Definition: DtModel.h:358
DtModelInstance * myBackgroundModelInstance
holds the model created in the background for a bit
Definition: DtModel.h:335
async task that loads a DtModel in the background
Definition: DtBackgroundLoadAsyncTask.h:26
std::vector< ObjectTransform > TransformList
Definition: DtModel.h:318
core singleton that manages loading for all the various DtModel subclasses
Definition: DtBackgroundLoader.h:39
bool myContributesToBound
Definition: DtModel.h:352
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
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
bool myVisibleFlag
Definition: DtModel.h:355
boost::signalslib::signal< void(DtModel *)> signal_modelToBeDestroyed
Signal emitted when the model is to be destroyed.
Definition: DtModel.h:234
DtModelInstance * myModelInstance
Definition: DtModel.h:349
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t x *y t *t t x *y t *t *t x y *z t t *t t x *y *z t *t *t t x y z t t t t x *y z t *t t t x * y(z *w))
bool result_type
Definition: DtModel.h:33
boost::signalslib::signal< void(DtModel *)> signal_modelChanged
Definition: DtModel.h:235
boost::signalslib::signal< void(DtModelInstance &)> signal_modelToBeDestroyed
Signal emitted when a model is fully created.
Definition: DtModel.h:381
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.
boost::signalslib::signal< void(DtModelInstance *, DtModel *)> signal_modelInstanceToBeDestroyed
Signal emitted when the model instance is to be destroyed.
Definition: DtModel.h:245
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:338
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:374
x y * z
Definition: exprtk.hpp:9133
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signalslib::signal< void(DtModelInstance &)> signal_modelChanged
Signal emitted when a model has changed in some way.
Definition: DtModel.h:377
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:332
DtModelSetId myModelSet
Definition: DtModel.h:350
DtUniqueID myElementId
Definition: DtModel.h:326
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t x(y+z)
DtLoaderHandle * myInLoadQueueHandle
Definition: DtModel.h:307
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:72
bool myIsPropFlag
Definition: DtModel.h:353
A signaler for model changes.
Definition: DtModel.h:364
DtModelSetId
Definition: DtModelSetEnums.h:19
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
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:239
const DtUniqueID myUniqueId
The unique id is constant after initialization.
Definition: DtModel.h:323
DtDe & de()
Get the DtDe object.
Definition: DtModel.h:182
DtUniqueID myParentSceneObjectID
Definition: DtModel.h:329
Contains DLL export macros.
int myVisualizerType
Definition: DtModel.h:351