VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtMultiDeadReckonUpdater.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtSceneObject.h>
14 #include <vrvCore/DtTickable.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 
38  {
39  typedef std::vector<DtMotionModel*> MotionModels;
40 
41  public:
47 
49  virtual ~DtMultiDeadReckonUpdater();
50 
53  virtual void update( DtTime tNow );
54 
64  virtual bool needsUpdate( DtTime tNow );
65 
68  virtual void setSceneObject( DtSceneObject* sceneObject );
69 
71 
72  virtual void setInputPosition( unsigned int vtx, const DtVector& position );
73  virtual void setInputPosition( unsigned int vtx, const DtVector& position,
74  double time);
76 
78 
79 
80  virtual void setInputOrientation(unsigned int vtx, const DtTaitBryan& ori );
81  virtual void setInputOrientation(unsigned int vtx, const DtTaitBryan& ori,
82  double time );
84 
88  virtual void setVelocity( int vtx, const DtVector32& velo );
89 
93  virtual void setAcceleration( int vtx, const DtVector32& accel );
94 
98  virtual void setAngularVelocity( int vtx, const DtVector32& velo );
99 
106  virtual void setDeadReckoningSettings( bool pos, bool ori, bool velo );
107 
110  virtual void setSmoothingEnabled( bool enabled );
111 
116  virtual void setSmoothingPeriod( float period );
117 
120  virtual void updateSpacial( DtTime tNow );
121 
124  virtual void setMotionModel( const std::string& modelName );
125 
129  virtual DtMotionModel* motionModel( int vtx );
130 
133  virtual void setUseAbsoluteTimeStamping(bool);
134  bool useAbsoluteTimeStamping() const;
135 
138  inline DtSceneObject* sceneObject()
139  {
140  return mySceneObject;
141  }
142 
144  inline DtUniqueID uniqueId() const
145  {
146  return myUniqueId;
147  }
148 
149  protected:
154  DtMotionModel* createMotionModel( DtMotionModel* other );
155 
157  void applyToAllMotionModels(
158  const boost::function<void (DtMotionModel*)>& func );
159 
162  virtual void slot_sceneObjectToBeDeleted( const DtUniqueID& id );
164 
165  protected:
168 
171 
174 
177 
179 
180  std::string myMotionModelType;
181  DtDeadReckonTypes myDeadReckonTypes;
182 
187  };
188 
189 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)