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;
40 const DtVector32& vel,
41 const DtTaitBryan& ori,
42 const DtVector32& acc,
43 const DtVector32& rotVel,
47 virtual const DtTime& velocityUpdateTime()
const = 0;
48 virtual const DtTime& locationUpdateTime()
const = 0;
58 virtual void setVelocity(
const DtVector32& vel,
DtTime curTime) = 0;
64 virtual const DtVector32& approxVelocity(
DtTime curTime)
const = 0;
68 virtual const DtVector32& approxUnsmoothedVelocity(
DtTime curTime)
const = 0;
71 virtual void setOrientation(
const DtTaitBryan& ori,
DtTime curTime) = 0;
75 virtual const DtTaitBryan& approxEuler(
DtTime curTime)
const = 0;
78 virtual void setAcceleration(
const DtVector32& acc,
DtTime curTime) = 0;
79 virtual const DtVector32& acceleration(
DtTime curTime)
const = 0;
82 virtual void setRotationalVelocity(
const DtVector32& vel,
DtTime curTime) = 0;
83 virtual const DtVector32& rotationalVelocity(
DtTime curTime)
const = 0;
86 virtual void setSmoothPeriod(
float period) = 0;
88 virtual void setSmoothingEnabled(
bool enabled) = 0;
92 virtual void setAlgorithm(DtDeadReckonTypes alg) = 0;
93 virtual DtDeadReckonTypes algorithm()
const = 0;
98 virtual void reset() = 0;
103 virtual void setFrozen(
bool frozen ) = 0;
104 virtual bool isFrozen()
const = 0;
111 virtual void setDeadReckoningEnabled(
bool enabled ) = 0;
112 virtual bool isDeadReckoningEnabled()
const = 0;
117 template <
typename DeadReckoner>
130 , myDeadReckoningEnabledFlag( true )
138 , myDeadReckoningEnabledFlag( orig.myDeadReckoningEnabledFlag )
141 setSmoothingEnabled(orig.mySmoothEnable);
142 setSmoothPeriod(orig.smoothPeriod());
158 return DeadReckoner::velocityUpdateTime();
163 return DeadReckoner::locationUpdateTime();
170 const DtVector32& vel,
171 const DtTaitBryan& ori,
172 const DtVector32& acc,
173 const DtVector32& rotVel,
176 DeadReckoner::setAll(loc, vel, ori, acc, rotVel, curTime);
182 DeadReckoner::setLocation(loc,curTime);
189 return DeadReckoner::approxLocation(curTime);
195 return DeadReckoner::setVelocity(vel,curTime);
202 return DeadReckoner::approxVelocity(curTime);
209 return DeadReckoner::approxUnsmoothedVelocity(curTime);
215 DeadReckoner::setOrientation(ori,curTime);
220 DeadReckoner::setSmoothPeriod(period);
225 DeadReckoner::setSmoothEnable(enabled);
232 return DeadReckoner::approxEuler(curTime);
238 DeadReckoner::setAcceleration(acc,curTime);
243 return DeadReckoner::acceleration(curTime);
249 DeadReckoner::setRotationalVelocity(vel,curTime);
254 return DeadReckoner::rotationalVelocity(curTime);
261 DeadReckoner::setAlgorithm(alg);
266 return DeadReckoner::algorithm();
271 DeadReckoner::reset();
276 DeadReckoner::setFrozen( frozen );
281 return DeadReckoner::isFrozen();
286 myDeadReckoningEnabledFlag = enabled;
291 return myDeadReckoningEnabledFlag;
virtual void reset()
Used to reset the DeadReckoner.
Definition: DtMotionModel.h:269
virtual void setAcceleration(const DtVector32 &acc, DtTime curTime)
Set/Get absolute acceleration.
Definition: DtMotionModel.h:236
virtual bool isFrozen() const
Get/Set the frozen state (enable/disable dead reckoning)
Definition: DtMotionModel.h:279
The base motion model class.
Definition: DtMotionModel.h:26
virtual const DtVector32 & acceleration(DtTime curTime) const
Definition: DtMotionModel.h:241
virtual void setRotationalVelocity(const DtVector32 &vel, DtTime curTime)
Set/Get absolute rotational velocity.
Definition: DtMotionModel.h:247
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:187
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:230
virtual void setSmoothingEnabled(bool enabled)
Enable or disable smoothing.
Definition: DtMotionModel.h:223
DtVRLDeadReckonerMotionModel(const DtVRLDeadReckonerMotionModel &orig, double time)
Copy CTOR.
Definition: DtMotionModel.h:135
virtual DtDeadReckonTypes algorithm() const
Definition: DtMotionModel.h:264
virtual const DtTime & velocityUpdateTime() const
Times at which velocity and position were last updated from the network.
Definition: DtMotionModel.h:156
The default motion model creator. Created using the name "PrDefaultMotionModel".
Definition: DtMotionModel.h:313
DtMotionModel * clone(double time)
Clone a DtVRLDeadReckonerMotionModel.
Definition: DtMotionModel.h:146
virtual void setAlgorithm(DtDeadReckonTypes alg)
Set/Get the dead reckoning algorithm used for generating the approximated values from the absolute va...
Definition: DtMotionModel.h:259
virtual void updateMotion(double dtTime)
Update the motion parameters at the specified time.
Definition: DtMotionModel.h:152
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:200
DtVRLDeadReckonerMotionModel extends DtMotionModel to use a VR-Link Dead Reckoner.
Definition: DtMotionModel.h:121
virtual void setOrientation(const DtTaitBryan &ori, DtTime curTime)
Set absolute orientation.
Definition: DtMotionModel.h:213
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:168
virtual void setDeadReckoningEnabled(bool enabled)
Get/Set whether dead reckoning is disabled (independently from frozen/paused state).
Definition: DtMotionModel.h:284
virtual bool isDeadReckoningEnabled() const
Get/Set whether dead reckoning is disabled (independently from frozen/paused state).
Definition: DtMotionModel.h:289
#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:274
bool myDeadReckoningEnabledFlag
Definition: DtMotionModel.h:296
virtual const DtTime & locationUpdateTime() const
Definition: DtMotionModel.h:161
virtual const DtVector32 & rotationalVelocity(DtTime curTime) const
Definition: DtMotionModel.h:252
DtVRLDeadReckonerMotionModel()
CTOR.
Definition: DtMotionModel.h:127
virtual void setSmoothPeriod(float period)
Set the smoothing period.
Definition: DtMotionModel.h:218
virtual void setVelocity(const DtVector32 &vel, DtTime curTime)
Set absolute velocity.
Definition: DtMotionModel.h:193
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:72
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:207
The motion model.
Definition: DtMotionModel.h:303
virtual void setLocation(const DtVector &loc, DtTime curTime)
Set absolute location.
Definition: DtMotionModel.h:180
Contains DLL export macros.