VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfKinematicState.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2007 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: vrfKinState.h,v $ $Revision: 1.37 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef vrfKinematicState_H_
9 #define vrfKinematicState_H_
10 
13 
17 
18 #include "tbb/spin_mutex.h"
19 
26 {
27 public:
29  DtVrfKinematicState(const Coordinate_System* coordinateSystem,
31  const DtString& rwName = DtString::nullString(),
32  DtReaderWriterRegistry * parentRegistry = 0);
33 
36  const DtString& rwName = DtString::nullString(),
37  DtReaderWriterRegistry * parentRegistry = 0);
38 
41 
43  virtual ~DtVrfKinematicState();
44 
46  virtual DtSimKinematicState* clone(
47  const DtString& rwName = DtString::nullString(),
48  DtReaderWriterRegistry * parentRegistry = 0) const;
49 
53  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
54  virtual const Coordinate_System* coordinateSystem() const;
55 
57  virtual const DtVector& localPosition() const;
58  virtual void setLocalPosition(const DtVector& localPosition);
59 
61  virtual void setWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
62 
64  virtual const DtVector& localVelocity() const;
65  virtual void setLocalVelocity(const DtVector& localVelocity,
66  bool recomputeSpeed = true);
67 
69  virtual DtReal localSpeed() const;
70  virtual void setLocalSpeed(DtReal localSpeed);
71 
73  virtual const DtVector& localAcceleration() const;
74  virtual void setLocalAcceleration(const DtVector& localAcceleration);
75 
80  virtual const DtVector& relativeAcceleration() const;
81  virtual void setRelativeAcceleration(const DtVector& localAcceleration);
82 
84  virtual const DtVector& relativeVelocity() const;
85  virtual void setRelativeVelocity(const DtVector& localVelocity,
86  bool recomputeSpeed = true);
87 
89  virtual DtVector bodyVelocity() const;
90 
91  virtual void invalidateRelativeVelocity();
92  virtual void invalidateRelativeAcceleration();
93 
96  virtual const DtTaitBryan& localOrientationWrtDatabase() const;
97  virtual void setLocalOrientationWrtDatabase(
98  const DtTaitBryan& localOrientation,
100 
103  virtual const DtDcm& localOrientationMatrix() const;
104  virtual void setLocalOrientationMatrix(const DtDcm& localOrientationMatrix,
105  bool recomputeEulers = true);
106 
107  virtual void setRotationConstraint(
109 
111  virtual const DtVector& worldPosition() const;
112  virtual void setWorldPosition(const DtVector& gecoentricPosition);
113 
115  virtual const DtVector& worldVelocity() const;
116  virtual void setWorldVelocity(const DtVector& gecoentricVelocity,
117  bool recomputeSpeed = true);
118 
120  virtual const DtVector& worldAcceleration() const;
121  virtual void setWorldAcceleration(const DtVector& gecoentricAcceleration);
122 
125  virtual const DtTaitBryan& worldOrientation() const;
126  virtual void setWorldOrientation(const DtTaitBryan& orientation,
128 
130  virtual void setParentOrientation(const DtTaitBryan& orientation,
132 
134  virtual void setParentPosition(const DtVector& position);
135 
138  virtual void setWorldOrientationMatrix(const DtDcm& orientationMatrix,
139  bool recomputeEulers = true);
140 #if 0
141  virtual const DtDcm& worldOrientationMatrix() const;
142 #endif
143 
145  virtual void parentKinematicsChanged();
146 
150  DtCoordSysValidationVector& localVV();
151 
153  virtual void validateLocalState();
154  virtual void validateState();
155 
163  virtual const DtTaitBryan& localOrientation() const;
164  virtual void setLocalOrientation(const DtTaitBryan& topoOrientation,
167 
170 public:
172  virtual void addLocalVertex(const DtVector& vertex, DtVector& newGeometricCenter);
173 
177  virtual void setLocalVertices(const DtLocalVertexList& vertices,
178  DtVector& newGeometricCenter);
179  virtual void setLocalVertices(const DtList& vertices,
180  DtVector& newGeometricCenter);
182 
184  virtual const DtLocalVertexList& localVertices() const;
185  virtual const DtLocalVectorIterator& localVertexIterator() const;
186  virtual void removeVertex(int i);
187  virtual void setGeometryNeedsUpdate(bool b);
188 
193  virtual void invalidateLocalGeometry();
194 
195 protected:
198  virtual const DtKinematicStateCS& localKinematicState() const;
199  virtual DtKinematicStateCS& localKinematicState();
200 
201  virtual void setLocalKinematicState(
202  const DtKinematicStateCS& localKinematicState);
203  virtual void clearLocalVertices();
204 
205 private:
206 
208 
209 protected:
210 
215 
217 
218  const Coordinate_System* myCoordinateSystemPtr;
219 
223  DtTaitBryan myTopoOrientation;
224 
227 
230 
233 
234  mutable tbb::spin_mutex myLocalVerticesMutex;
235 };
236 
237 
239 {
241 
243 }
244 
245 #endif

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)