VR-Forces 4.8 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  virtual void freezeSpatial();
197  virtual void thawSpatial();
198 
199 protected:
202  virtual const DtKinematicStateCS& localKinematicState() const;
203  virtual DtKinematicStateCS& localKinematicState();
204 
205  virtual void setLocalKinematicState(
206  const DtKinematicStateCS& localKinematicState);
207  virtual void clearLocalVertices();
208 
209 private:
210 
212 
213 protected:
214 
219 
221 
223 
227  DtTaitBryan myTopoOrientation;
228 
231 
234 
237 
238  mutable tbb::spin_mutex myLocalVerticesMutex;
239 };
240 
241 
243 {
245 
247 }
const Coordinate_System * myCoordinateSystemPtr
Definition: vrfKinematicState.h:222
virtual void setWorldVelocity(const DtVector &velocity, bool recomputeSpeed=true)
virtual void setGeometryNeedsUpdate(bool)
Sets flags to update vertices.
Definition: simKinematicState.h:268
DtTaitBryan myTopoOrientation
This data member is used in localOrientation(), to provide a way to return a const reference to a DtT...
Definition: vrfKinematicState.h:227
virtual void setWorldOrientationMatrix(const DtDcm &orientationMatrix, bool recomputeEulers=true)
DtVector myRelativeAcceleration
Definition: vrfKinematicState.h:229
virtual DtSimKinematicState * clone(const DtString &name=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=NULL) const
Clone.
class DtKinematicStateCS: DtKinematicStateCS contains the current kinematic state of an object in one...
Definition: kinematicStateCS.h:42
virtual const DtVector & worldAcceleration() const
virtual const DtVector & worldPosition() const
virtual void setParentPosition(const DtVector &position)
bool myRelativeAccelerationInvalid
Definition: vrfKinematicState.h:230
virtual void setWorldVertices(const DtVertexList &vertices, DtVector &newGeometricCenter)
Sets world vertices and translates them to body coordinates.
File: lclVecIter.h.
Definition: localVectorIterator.h:25
This class is a DtSimKinematicState with the addition of another CS for local database coordinates...
Definition: vrfKinematicState.h:22
DtRotationConstraint
Definition: kinematicStateCS.h:53
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
virtual void parentKinematicsChanged()
virtual void setGeometryNeedsUpdate(bool b)
Sets flags to update vertices.
Definition: vrfKinematicState.h:242
virtual void setWorldPosition(const DtVector &position)
DtKinematicStateCS myLocalKinematicState
Position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database co...
Definition: vrfKinematicState.h:218
Definition: coordSystem.h:54
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual void setParentOrientation(const DtTaitBryan &orientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX)
bool myLocalObjectGeometryInvalid
Definition: vrfKinematicState.h:235
class DtSimKinematicState: This class encapsulates the kinematic state of an object wrt to the local ...
Definition: simKinematicState.h:30
DtCoordSysValidationVector myLocalVV
Definition: vrfKinematicState.h:220
virtual const DtTaitBryan & worldOrientation() const
virtual void setWorldOrientation(const DtTaitBryan &orientation, DtKinematicStateCS::DtRotationConstraint recomputeMatrix=DtKinematicStateCS::RotateAboutX)
virtual void validateState()
virtual const DtDcm & worldOrientationMatrix() const
virtual void removeVertex(int)
Removes vertex at the specified position.
const DtSimKinematicState & operator=(const DtSimKinematicState &orig)
Assignment Operator.
virtual DtVector bodyVelocity() const
virtual void setRotationConstraint(DtKinematicStateCS::DtRotationConstraint constraint)
DtVector myRelativeVelocity
Definition: vrfKinematicState.h:232
virtual void setWorldAcceleration(const DtVector &acceleration)
class DtLocalVertexList:
Definition: localVertexList.h:20
DtLocalVertexList myLocalVertexList
Definition: vrfKinematicState.h:236
virtual const DtVector & worldVelocity() const
bool myRelativeVelocityInvalid
Definition: vrfKinematicState.h:233
tbb::spin_mutex myLocalVerticesMutex
Definition: vrfKinematicState.h:238

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)