13 #include <matrix/vlVector.h>
14 #include <matrix/vlTaitBryan.h>
15 #include <vlutil/vlTime.h>
16 #include <vlpi/disEnums.h>
34 virtual void updateMotion(
double dtTime) = 0;
37 virtual void modelAdded(
DtModel*) = 0;
40 virtual void modelRemoved(
DtModel*) = 0;
46 const DtVector32& vel,
47 const DtTaitBryan& ori,
48 const DtVector32& acc,
49 const DtVector32& rotVel,
60 virtual void setVelocity(
const DtVector32& vel,
DtTime curTime) = 0;
66 virtual const DtVector32& approxVelocity(
DtTime curTime)
const = 0;
70 virtual const DtVector32& approxUnsmoothedVelocity(
DtTime curTime)
const = 0;
73 virtual void setOrientation(
const DtTaitBryan& ori,
DtTime curTime) = 0;
77 virtual const DtTaitBryan& approxEuler(
DtTime curTime)
const = 0;
80 virtual void setAcceleration(
const DtVector32& acc,
DtTime curTime) = 0;
81 virtual const DtVector32& acceleration(
DtTime curTime)
const = 0;
84 virtual void setRotationalVelocity(
const DtVector32& vel,
DtTime curTime) = 0;
85 virtual const DtVector32& rotationalVelocity(
DtTime curTime)
const = 0;
88 virtual void setSmoothPeriod(
float period) = 0;
90 virtual void setSmoothingEnabled(
bool enabled) = 0;
94 virtual void setAlgorithm(DtDeadReckonTypes alg) = 0;
95 virtual DtDeadReckonTypes algorithm()
const = 0;
100 virtual void reset() = 0;
105 virtual void setFrozen(
bool frozen ) = 0;
106 virtual bool isFrozen()
const = 0;
113 virtual void setDeadReckoningEnabled(
bool enabled ) = 0;
114 virtual bool isDeadReckoningEnabled()
const = 0;
119 template <
typename DeadReckoner>
132 , myDeadReckoningEnabledFlag( true )
140 , myDeadReckoningEnabledFlag( orig.myDeadReckoningEnabledFlag )
143 setSmoothingEnabled(orig.mySmoothEnable);
144 setSmoothPeriod(orig.smoothPeriod());
174 const DtVector32& vel,
175 const DtTaitBryan& ori,
176 const DtVector32& acc,
177 const DtVector32& rotVel,
180 DeadReckoner::setAll(loc, vel, ori, acc, rotVel, curTime);
186 DeadReckoner::setLocation(loc,curTime);
193 return DeadReckoner::approxLocation(curTime);
199 return DeadReckoner::setVelocity(vel,curTime);
206 return DeadReckoner::approxVelocity(curTime);
213 return DeadReckoner::approxUnsmoothedVelocity(curTime);
219 DeadReckoner::setOrientation(ori,curTime);
224 DeadReckoner::setSmoothPeriod(period);
229 DeadReckoner::setSmoothEnable(enabled);
236 return DeadReckoner::approxEuler(curTime);
242 DeadReckoner::setAcceleration(acc,curTime);
247 return DeadReckoner::acceleration(curTime);
253 DeadReckoner::setRotationalVelocity(vel,curTime);
258 return DeadReckoner::rotationalVelocity(curTime);
265 DeadReckoner::setAlgorithm(alg);
270 return DeadReckoner::algorithm();
275 DeadReckoner::reset();
280 DeadReckoner::setFrozen( frozen );
285 return DeadReckoner::isFrozen();
290 myDeadReckoningEnabledFlag = enabled;
295 return myDeadReckoningEnabledFlag;
virtual void reset()
Used to reset the DeadReckoner.
Definition: DtMotionModel.h:273
virtual void setAcceleration(const DtVector32 &acc, DtTime curTime)
Set/Get absolute acceleration.
Definition: DtMotionModel.h:240
virtual bool isFrozen() const
Get/Set the frozen state (enable/disable dead reckoning)
Definition: DtMotionModel.h:283
The base motion model class.
Definition: DtMotionModel.h:26
virtual const DtVector32 & acceleration(DtTime curTime) const
Definition: DtMotionModel.h:245
virtual void setRotationalVelocity(const DtVector32 &vel, DtTime curTime)
Set/Get absolute rotational velocity.
Definition: DtMotionModel.h:251
virtual const DtVector & approxLocation(DtTime curTime) const
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) location at the specified time...
Definition: DtMotionModel.h:191
virtual void modelAdded(DtModel *)
Called whenever a model is added.
Definition: DtMotionModel.h:159
virtual const DtTaitBryan & approxEuler(DtTime curTime) const
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) orientation at the specified time...
Definition: DtMotionModel.h:234
virtual void setSmoothingEnabled(bool enabled)
Enable or disable smoothing.
Definition: DtMotionModel.h:227
DtVRLDeadReckonerMotionModel(const DtVRLDeadReckonerMotionModel &orig, double time)
Copy CTOR.
Definition: DtMotionModel.h:137
virtual DtDeadReckonTypes algorithm() const
Definition: DtMotionModel.h:268
The default motion model creator. Created using the name "PrDefaultMotionModel".
Definition: DtMotionModel.h:317
DtMotionModel * clone(double time)
Clone a DtVRLDeadReckonerMotionModel.
Definition: DtMotionModel.h:148
virtual void setAlgorithm(DtDeadReckonTypes alg)
Set/Get the dead reckoning algorithm used for generating the approximated values from the absolute va...
Definition: DtMotionModel.h:263
virtual void updateMotion(double dtTime)
Update the motion parameters at the specified time.
Definition: DtMotionModel.h:154
virtual const DtVector32 & approxVelocity(DtTime curTime) const
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) velocity at the specified time...
Definition: DtMotionModel.h:204
DtVRLDeadReckonerMotionModel extends DtMotionModel to use a VR-Link Dead Reckoner.
Definition: DtMotionModel.h:123
virtual void setOrientation(const DtTaitBryan &ori, DtTime curTime)
Set absolute orientation.
Definition: DtMotionModel.h:217
virtual void setAll(const DtVector &loc, const DtVector32 &vel, const DtTaitBryan &ori, const DtVector32 &acc, const DtVector32 &rotVel, DtTime curTime)
Coherently set all DR parameters, thus avoiding DR computations associated with a partial set...
Definition: DtMotionModel.h:172
virtual void setDeadReckoningEnabled(bool enabled)
Get/Set whether dead reckoning is disabled (independently from frozen/paused state).
Definition: DtMotionModel.h:288
virtual bool isDeadReckoningEnabled() const
Get/Set whether dead reckoning is disabled (independently from frozen/paused state).
Definition: DtMotionModel.h:293
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
virtual void setFrozen(bool frozen)
Get/Set the frozen state (enable/disable dead reckoning)
Definition: DtMotionModel.h:278
bool myDeadReckoningEnabledFlag
Definition: DtMotionModel.h:300
virtual const DtVector32 & rotationalVelocity(DtTime curTime) const
Definition: DtMotionModel.h:256
DtVRLDeadReckonerMotionModel()
CTOR.
Definition: DtMotionModel.h:129
virtual void setSmoothPeriod(float period)
Set the smoothing period.
Definition: DtMotionModel.h:222
virtual void setVelocity(const DtVector32 &vel, DtTime curTime)
Set absolute velocity.
Definition: DtMotionModel.h:197
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:42
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:55
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
virtual void modelRemoved(DtModel *)
Called whenever a model is removed.
Definition: DtMotionModel.h:165
virtual const DtVector32 & approxUnsmoothedVelocity(DtTime curTime) const
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) velocity at the specified time...
Definition: DtMotionModel.h:211
The motion model.
Definition: DtMotionModel.h:307
virtual void setLocation(const DtVector &loc, DtTime curTime)
Set absolute location.
Definition: DtMotionModel.h:184
Contains DLL export macros.