VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtMultiDeadReckonUpdater.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtTickable.h>
14 #include <vrvCore/DtUniqueID.h>
15 
16 #include <vlpi/disEnums.h>
17 
18 #include <vector>
19 #include <string>
20 
21 #include <boost/function.hpp>
22 
23 #include <matrix/vlVector.h>
24 
25 class DtTaitBryan;
26 
27 namespace makVrv
28 {
29 
30  class DtDe;
31  class DtMotionModel;
32  class DtSceneObject;
33 
39  {
40  typedef std::vector<DtMotionModel*> MotionModels;
41 
42  public:
48 
50  virtual ~DtMultiDeadReckonUpdater();
51 
54  virtual void update( DtTime tNow );
55 
65  virtual bool needsUpdate( DtTime tNow );
66 
69  virtual void setSceneObject( DtSceneObject* sceneObject );
70 
72  virtual void setInputPosition( unsigned int vtx, const DtVector& position );
74  virtual void setInputPosition( unsigned int vtx, const DtVector& position,
75  double time);
77 
79  virtual void setInputOrientation(unsigned int vtx, const DtTaitBryan& ori );
82  virtual void setInputOrientation(unsigned int vtx, const DtTaitBryan& ori,
83  double time );
85 
89  virtual void setVelocity( int vtx, const DtVector32& velo );
90 
94  virtual void setAcceleration( int vtx, const DtVector32& accel );
95 
99  virtual void setAngularVelocity( int vtx, const DtVector32& velo );
100 
107  virtual void setDeadReckoningSettings( bool pos, bool ori, bool velo );
108 
111  virtual void setSmoothingEnabled( bool enabled );
112 
117  virtual void setSmoothingPeriod( float period );
118 
121  virtual void updateSpacial( DtTime tNow );
122 
125  virtual void setMotionModel( const std::string& modelName );
126 
130  virtual DtMotionModel* motionModel( int vtx );
131 
134  virtual void setUseAbsoluteTimeStamping(bool);
135  bool useAbsoluteTimeStamping() const;
136 
140  {
141  return mySceneObject;
142  }
143 
145  inline DtUniqueID uniqueId() const
146  {
147  return myUniqueId;
148  }
149 
150  protected:
155  DtMotionModel* createMotionModel( DtMotionModel* other );
156 
158  void applyToAllMotionModels(
159  const boost::function<void (DtMotionModel*)>& func );
160 
163  virtual void slot_sceneObjectToBeDeleted( const DtUniqueID& id );
165 
166  protected:
169 
172 
175 
176  // When the class is destructed, the scene object may or may not
177  // exist. Using a separate connection variable makes it possible to
178  // 'disconnect' even if the scene object has been deleted.
179  boost::signalslib::connection mySceneObjectConnection;
180 
182 
183  std::string myMotionModelType;
184  DtDeadReckonTypes myDeadReckonTypes;
185 
190  };
191 
192 }
The base motion model class.
Definition: DtMotionModel.h:26
boost::signalslib::connection mySceneObjectConnection
Definition: DtMultiDeadReckonUpdater.h:179
MotionModels myMotionModels
Definition: DtMultiDeadReckonUpdater.h:181
bool mySmoothingEnabled
Definition: DtMultiDeadReckonUpdater.h:187
DtSceneObject * mySceneObject
A pointer to the current scene object being updated.
Definition: DtMultiDeadReckonUpdater.h:174
DtDe & myDe
The display engine.
Definition: DtMultiDeadReckonUpdater.h:168
DtMultiDeadReckonUpdater is an updater that takes kinematic updates for multiple indices and updates ...
Definition: DtMultiDeadReckonUpdater.h:38
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
float mySmoothingPeriod
Definition: DtMultiDeadReckonUpdater.h:186
std::string myMotionModelType
Definition: DtMultiDeadReckonUpdater.h:183
DtSceneObject * sceneObject()
Get the current scene object for this updater.
Definition: DtMultiDeadReckonUpdater.h:139
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool myHasReceivedInput
Definition: DtMultiDeadReckonUpdater.h:189
DtUniqueID myUniqueId
This distributed object&#39;s unique identifier.
Definition: DtMultiDeadReckonUpdater.h:171
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myUseAbsoluteTimeStamping
Definition: DtMultiDeadReckonUpdater.h:188
Contains the declaration for makVrv::DtTickable.
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
Contains makVrv::DtUniqueID type.
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
std::vector< DtMotionModel * > MotionModels
Definition: DtMultiDeadReckonUpdater.h:40
DtDeadReckonTypes myDeadReckonTypes
Definition: DtMultiDeadReckonUpdater.h:184
DtUniqueID uniqueId() const
Returns the distributed object id of this updater.
Definition: DtMultiDeadReckonUpdater.h:145
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)