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;
51 virtual void setLocation(
const DtVector& loc,
DtTime curTime) = 0;
55 virtual const DtVector& approxLocation(
DtTime curTime)
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;
119 template <
typename DeadReckoner>
128 , myDeadReckoningEnabledFlag( true )
136 , myDeadReckoningEnabledFlag( orig.myDeadReckoningEnabledFlag )
139 setSmoothingEnabled( orig.mySmoothEnable );
140 setSmoothPeriod( orig.smoothPeriod() );
156 return DeadReckoner::velocityUpdateTime();
161 return DeadReckoner::locationUpdateTime();
166 virtual void setAll(
const DtVector& loc,
const DtVector32& vel,
const DtTaitBryan& ori,
167 const DtVector32& acc,
const DtVector32& rotVel,
DtTime curTime )
override
169 DeadReckoner::setAll( loc, vel, ori, acc, rotVel, curTime );
175 DeadReckoner::setLocation( loc, curTime );
182 return DeadReckoner::approxLocation( curTime );
188 return DeadReckoner::setVelocity( vel, curTime );
195 return DeadReckoner::approxVelocity( curTime );
202 return DeadReckoner::approxUnsmoothedVelocity( curTime );
208 DeadReckoner::setOrientation( ori, curTime );
213 DeadReckoner::setSmoothPeriod( period );
218 DeadReckoner::setSmoothEnable( enabled );
225 return DeadReckoner::approxEuler( curTime );
231 DeadReckoner::setAcceleration( acc, curTime );
236 return DeadReckoner::acceleration( curTime );
242 DeadReckoner::setRotationalVelocity( vel, curTime );
247 return DeadReckoner::rotationalVelocity( curTime );
254 DeadReckoner::setAlgorithm( alg );
259 return DeadReckoner::algorithm();
264 DeadReckoner::reset();
269 DeadReckoner::setFrozen( frozen );
274 return DeadReckoner::isFrozen();
279 myDeadReckoningEnabledFlag = enabled;
284 return myDeadReckoningEnabledFlag;
virtual void reset()
Used to reset the DeadReckoner.
Definition: DtMotionModel.h:262
virtual const DtVector & approxLocation(DtTime curTime) const override
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) location at the specified time...
Definition: DtMotionModel.h:180
virtual bool isFrozen() const
Get/Set the frozen state (enable/disable dead reckoning)
Definition: DtMotionModel.h:272
virtual const DtTaitBryan & approxEuler(DtTime curTime) const override
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) orientation at the specified time...
Definition: DtMotionModel.h:223
virtual void setOrientation(const DtTaitBryan &ori, DtTime curTime) override
Set absolute orientation.
Definition: DtMotionModel.h:206
The base motion model class.
Definition: DtMotionModel.h:26
virtual void setSmoothingEnabled(bool enabled)
Enable or disable smoothing.
Definition: DtMotionModel.h:216
DtVRLDeadReckonerMotionModel(const DtVRLDeadReckonerMotionModel &orig, double time)
Copy CTOR.
Definition: DtMotionModel.h:133
The default motion model creator. Created using the name "PrDefaultMotionModel".
Definition: DtMotionModel.h:306
DtMotionModel * clone(double time)
Clone a DtVRLDeadReckonerMotionModel.
Definition: DtMotionModel.h:144
virtual void updateMotion(double dtTime)
Update the motion parameters at the specified time.
Definition: DtMotionModel.h:150
virtual const DtVector32 & approxVelocity(DtTime curTime) const override
Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) velocity at the specified time...
Definition: DtMotionModel.h:193
DtVRLDeadReckonerMotionModel extends DtMotionModel to use a VR-Link Dead Reckoner.
Definition: DtMotionModel.h:120
virtual void setDeadReckoningEnabled(bool enabled)
Get/Set whether dead reckoning is disabled (independently from frozen/paused state).
Definition: DtMotionModel.h:277
virtual bool isDeadReckoningEnabled() const
Get/Set whether dead reckoning is disabled (independently from frozen/paused state).
Definition: DtMotionModel.h:282
virtual void setRotationalVelocity(const DtVector32 &vel, DtTime curTime) override
Set/Get absolute rotational velocity.
Definition: DtMotionModel.h:240
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
virtual const DtTime & locationUpdateTime() const override
Definition: DtMotionModel.h:159
virtual void setVelocity(const DtVector32 &vel, DtTime curTime) override
Set absolute velocity.
Definition: DtMotionModel.h:186
virtual void setFrozen(bool frozen)
Get/Set the frozen state (enable/disable dead reckoning)
Definition: DtMotionModel.h:267
bool myDeadReckoningEnabledFlag
Definition: DtMotionModel.h:289
virtual void setAlgorithm(DtDeadReckonTypes alg) override
Set/Get the dead reckoning algorithm used for generating the approximated values from the absolute va...
Definition: DtMotionModel.h:252
DtVRLDeadReckonerMotionModel()
CTOR.
Definition: DtMotionModel.h:125
virtual void setSmoothPeriod(float period)
Set the smoothing period.
Definition: DtMotionModel.h:211
virtual void setAcceleration(const DtVector32 &acc, DtTime curTime) override
Set/Get absolute acceleration.
Definition: DtMotionModel.h:229
virtual const DtVector32 & acceleration(DtTime curTime) const override
Definition: DtMotionModel.h:234
virtual void setAll(const DtVector &loc, const DtVector32 &vel, const DtTaitBryan &ori, const DtVector32 &acc, const DtVector32 &rotVel, DtTime curTime) override
Coherently set all DR parameters, thus avoiding DR computations associated with a partial set...
Definition: DtMotionModel.h:166
virtual void setLocation(const DtVector &loc, DtTime curTime) override
Set absolute location.
Definition: DtMotionModel.h:173
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:76
virtual const DtVector32 & rotationalVelocity(DtTime curTime) const override
Definition: DtMotionModel.h:245
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:200
virtual const DtTime & velocityUpdateTime() const override
Times at which velocity and position were last updated from the network.
Definition: DtMotionModel.h:154
The motion model.
Definition: DtMotionModel.h:296
virtual DtDeadReckonTypes algorithm() const override
Definition: DtMotionModel.h:257
Contains DLL export macros.