VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfKinematicState.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
14 
15 #include "tbb/spin_mutex.h"
16 
23 {
24 public:
26  DtVrfKinematicState(const Coordinate_System* coordinateSystem,
28  const DtString& rwName = DtString::nullString(),
29  DtReaderWriterRegistry * parentRegistry = 0);
30 
33  const DtString& rwName = DtString::nullString(),
34  DtReaderWriterRegistry * parentRegistry = 0);
35 
38 
40  virtual ~DtVrfKinematicState();
41 
43  virtual DtSimKinematicState* clone(
44  const DtString& rwName = DtString::nullString(),
45  DtReaderWriterRegistry * parentRegistry = 0) const;
46 
50  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
51  virtual const Coordinate_System* coordinateSystem() const;
52 
54  virtual const DtVector& localPosition() const;
55  virtual void setLocalPosition(const DtVector& localPosition);
56 
58  virtual void setWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
59 
61  virtual const DtVector& localVelocity() const;
62  virtual void setLocalVelocity(const DtVector& localVelocity,
63  bool recomputeSpeed = true);
64 
66  virtual DtReal localSpeed() const;
67  virtual void setLocalSpeed(DtReal localSpeed);
68 
70  virtual const DtVector& localAcceleration() const;
71  virtual void setLocalAcceleration(const DtVector& localAcceleration);
72 
77  virtual const DtVector& relativeAcceleration() const;
78  virtual void setRelativeAcceleration(const DtVector& localAcceleration);
79 
81  virtual const DtVector& relativeVelocity() const;
82  virtual void setRelativeVelocity(const DtVector& localVelocity,
83  bool recomputeSpeed = true);
84 
86  virtual DtVector bodyVelocity() const;
87 
88  virtual void invalidateRelativeVelocity();
89  virtual void invalidateRelativeAcceleration();
90 
93  virtual const DtTaitBryan& localOrientationWrtDatabase() const;
94  virtual void setLocalOrientationWrtDatabase(
95  const DtTaitBryan& localOrientation,
97 
100  virtual const DtDcm& localOrientationMatrix() const;
101  virtual void setLocalOrientationMatrix(const DtDcm& localOrientationMatrix,
102  bool recomputeEulers = true);
103 
104  virtual void setRotationConstraint(
106 
108  virtual const DtVector& worldPosition() const;
109  virtual void setWorldPosition(const DtVector& gecoentricPosition);
110 
112  virtual const DtVector& worldVelocity() const;
113  virtual void setWorldVelocity(const DtVector& gecoentricVelocity,
114  bool recomputeSpeed = true);
115 
117  virtual const DtVector& worldAcceleration() const;
118  virtual void setWorldAcceleration(const DtVector& gecoentricAcceleration);
119 
122  virtual const DtTaitBryan& worldOrientation() const;
123  virtual void setWorldOrientation(const DtTaitBryan& orientation,
125 
127  virtual void setParentOrientation(const DtTaitBryan& orientation,
129 
131  virtual void setParentPosition(const DtVector& position);
132 
135  virtual void setWorldOrientationMatrix(const DtDcm& orientationMatrix,
136  bool recomputeEulers = true);
137 #if 0
138  virtual const DtDcm& worldOrientationMatrix() const;
139 #endif
140 
142  virtual void parentKinematicsChanged();
143 
147  DtCoordSysValidationVector& localVV();
148 
150  virtual void validateLocalState();
151  virtual void validateState();
152 
160  virtual const DtTaitBryan& localOrientation() const;
161  virtual void setLocalOrientation(const DtTaitBryan& topoOrientation,
164 
167 public:
169  virtual void addLocalVertex(const DtVector& vertex, DtVector& newGeometricCenter);
170 
174  virtual void setLocalVertices(const DtLocalVertexList& vertices,
175  DtVector& newGeometricCenter);
176  virtual void setLocalVertices(const DtList& vertices,
177  DtVector& newGeometricCenter);
179 
181  virtual void setIsEllipsoid(bool);
182  virtual bool isEllipsoid() const;
183 
185  virtual const DtLocalVertexList& localVertices() const;
186  virtual const DtLocalVectorIterator& localVertexIterator() const;
187  virtual void removeVertex(int i);
188  virtual void setGeometryNeedsUpdate(bool b);
189 
194  virtual void invalidateLocalGeometry();
195 
196 protected:
199  virtual const DtKinematicStateCS& localKinematicState() const;
200  virtual DtKinematicStateCS& localKinematicState();
201 
202  virtual void setLocalKinematicState(
203  const DtKinematicStateCS& localKinematicState);
204  virtual void clearLocalVertices();
205 
206 private:
207 
209 
210 protected:
211 
216 
218 
220 
224  DtTaitBryan myTopoOrientation;
225 
228 
231 
234 
235  mutable tbb::spin_mutex myLocalVerticesMutex;
236 };
237 
238 
240 {
242 
244 }

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)