VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simKinematicState.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2001 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
9 
12 #include <vlpi/disEnums.h>
14 #include "readerWriter/rwVector.h"
15 #include "vrfutil/vertexList.h"
16 
17 #include <matrix/vlTaitBryan.h>
18 
19 class DtVertexList;
21 class DtRwVectorIterator;
22 
31 {
32 public:
33 
36  const DtString& name = DtString::nullString(),
37  DtReaderWriterRegistry * parentRegistry = NULL);
38 
40  const DtSymbolString& name,
41  DtReaderWriterRegistry * parentRegistry = NULL);
42 
45  const DtString& name = DtString::nullString(),
46  DtReaderWriterRegistry * parentRegistry = 0);
47 
49  const DtSymbolString& name,
50  DtReaderWriterRegistry * parentRegistry = 0);
51 
54 
56  virtual ~DtSimKinematicState();
57 
59  virtual DtSimKinematicState* clone(const DtString& name = DtString::nullString(),
60  DtReaderWriterRegistry* parentRegistry = NULL) const;
61 
62  virtual DtSimKinematicState* clone(const DtSymbolString& name,
63  DtReaderWriterRegistry* parentRegistry = NULL) const;
64 
65  virtual const DtVector& parentPosition() const;
66  virtual void setParentPosition(const DtVector& position);
67 
68  virtual const DtVector& parentVelocity() const;
69  virtual void setParentVelocity(const DtVector& velocity,
70  bool recomputeSpeed = true);
71  virtual DtReal parentSpeed() const;
72 
73  virtual const DtVector& parentAcceleration() const;
74  virtual void setParentAcceleration(const DtVector& acceleration);
75 
76  virtual const DtTaitBryan& parentOrientation() const;
77  virtual void setParentOrientation(const DtTaitBryan& orientation,
79 
80  virtual const DtDcm& parentOrientationMatrix() const;
81  virtual void setParentOrientationMatrix(const DtDcm& orientationMatrix,
82  bool recomputeEulers = true);
83 
84  virtual const DtVector& worldPosition() const;
85  virtual void setWorldPosition(const DtVector& position);
86 
87  virtual const DtVector& worldVelocity() const;
88  virtual void setWorldVelocity(const DtVector& velocity,
89  bool recomputeSpeed = true);
90 
91  virtual DtReal worldSpeed() const;
92 
93  virtual const DtVector& worldAcceleration() const;
94  virtual void setWorldAcceleration(const DtVector& acceleration);
95 
96  virtual const DtTaitBryan& worldOrientation() const;
97  virtual void setWorldOrientation(const DtTaitBryan& orientation,
99 
100  virtual const DtDcm& worldOrientationMatrix() const;
101  virtual void setWorldOrientationMatrix(const DtDcm& orientationMatrix,
102  bool recomputeEulers = true);
103 
104  virtual DtVector bodyVelocity() const;
107  virtual DtTaitBryan topoEuler() const;
110  virtual double heading() const;
113  virtual double pitch() const;
116  virtual double roll() const;
117 
118  virtual const DtVector& rotationalVelocity() const;
119  virtual void setRotationalVelocity(const DtVector& rotationalVelocity);
120 
123  virtual void setAffectAttachments(bool);
124  bool affectAttachments() const;
125 
126  virtual DtKinematicStateCS::DtRotationConstraint rotationConstraint()
127  const;
128 
129  virtual void setRotationConstraint(
131 
133  virtual DtKinematicStateCS::DtSimOrientationType orientationType() const;
134  virtual void setOrientationType(
136 
137  virtual DtSimObjectStateRepository* stateRepository() const;
138 
139  virtual void parentKinematicsChanged();
140 
141  DtCoordSysValidationVector& parentVV();
142  DtCoordSysValidationVector& worldVV();
143 
147  virtual void putSelf(std::string& fp, int indentLevel = 0, bool writeUnspecified = false,
148  const DtFilename& path = DtReaderWriter::appPath());
149 
151  virtual void validateParentState();
152  virtual void validateWorldState();
153  virtual void validateState();
154 
156  virtual void clearWorldVertices();
157  virtual void copyWorldVertices(const DtList&);
158 
161 public:
163  virtual void addWorldVertex(const DtVector& vertex, DtVector& newGeometricCenter);
164 
166  virtual void setWorldVertices(const DtVertexList& vertices, DtVector& newGeometricCenter);
167  virtual void setWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
168 
170  virtual const DtVertexList& worldVertices() const;
171  virtual const DtRwVectorIterator& worldVertexIterator() const;
172 
174  virtual void removeVertex(int);
175 
177  virtual void setGeometryNeedsUpdate(bool);
178 
182  virtual void invalidateWorldGeometry();
183 
185  virtual bool calculateGeometricCenter(const DtList& vertices, DtVector& geometricCenter) const;
186 
189  virtual const DtKinematicStateCS& parentKinematicState() const;
190  virtual DtKinematicStateCS& parentKinematicState();
191 
192  virtual void setParentKinematicState(
193  const DtKinematicStateCS& parentKinematicState);
194 
197  virtual const DtKinematicStateCS& worldKinematicState() const;
198  virtual DtKinematicStateCS& worldKinematicState();
199 
200  virtual void setWorldKinematicState(
201  const DtKinematicStateCS& worldKinematicState);
202 
204  virtual void setWorldPositionFromParent();
205 
207  virtual void setWorldOrientationFromParent();
208 
211  virtual bool isFrozen() const
212  {
213  return myFreezeMovement;
214  }
215 protected:
216 
220  virtual void calculateBodyCoordinates(const DtList& worldVertices);
221 
222 private:
223 
226 
227 protected:
231 
236 
241 
245 
248 
251 
252 
254 
255  DtTaitBryan myTopoEuler;
257 
261 
263 
266 };
267 
269 {
271 }
272 
virtual void setGeometryNeedsUpdate(bool)
Sets flags to update vertices.
Definition: simKinematicState.h:268
class DtKinematicStateCS: DtKinematicStateCS contains the current kinematic state of an object in one...
Definition: kinematicStateCS.h:42
Definition: symbolString.h:20
bool myTopoInvalid
Definition: simKinematicState.h:256
bool myFreezeMovement
When set to true this will cause velocity, acceleration, and rotation velocity.
Definition: simKinematicState.h:265
Definition: readerWriter.h:85
DtRotationConstraint
Definition: kinematicStateCS.h:53
DtRwVector myRotationalVelocity
this is the rate at which the object is rolling, pitching and yawing
Definition: simKinematicState.h:250
The DtSimObjectStateRepository is an abstract base class (ABC) for all state repositories.
Definition: simObjectStateRepository.h:46
Definition: readerWriterRegistry.h:39
Definition: kinematicStateCS.h:56
File: csValidVec.h.
Definition: coordSysValidationVector.h:19
Definition: rwVector.h:23
DtKinematicStateCS myWorldKinematicState
position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database co...
Definition: simKinematicState.h:239
DtCoordSysValidationVector myWorldVV
Definition: simKinematicState.h:247
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtCoordSysValidationVector myParentVV
XXX This will not be here...
Definition: simKinematicState.h:246
DtKinematicStateCS myParentKinematicState
position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in parent&#39;s co...
Definition: simKinematicState.h:230
class DtSimKinematicState: This class encapsulates the kinematic state of an object wrt to the local ...
Definition: simKinematicState.h:30
class DtVertexList:
Definition: vertexList.h:22
virtual bool isFrozen() const
Use this method to check freeze movement rather than state data in vrfsim due to timing on when the a...
Definition: simKinematicState.h:211
bool myAffectAttachments
Definition: simKinematicState.h:262
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file.
DtSimOrientationType
Definition: kinematicStateCS.h:46
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
DtTaitBryan myTopoEuler
Definition: simKinematicState.h:255
bool myObjectGeometryInvalid
If true, and if this item is attached to a parent, redo object geometry.
Definition: simKinematicState.h:260
DtSimObjectStateRepository * myStateRepository
Definition: simKinematicState.h:253
File: rwVector.h.
static const DtFilename & appPath()
Gets the current working directory.
File: rwVecIterator.h.
Definition: rwVectorIterator.h:29
DtVertexList myWorldVertices
Definition: simKinematicState.h:240

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)