VR-Forces 4.7 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 
209 protected:
210 
214  virtual void calculateBodyCoordinates(const DtList& worldVertices);
215 
216 private:
217 
220 
221 protected:
225 
230 
235 
239 
242 
245 
246 
248 
249  DtTaitBryan myTopoEuler;
251 
255 
257 };
258 
260 {
262 }
263 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)