VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rwVrfKinematicState.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 
13 
14 namespace makVrf
15 {
23  class DtRwVrfKinematicState;
25 
27  {
28  public:
31  DtRwVrfKinematicState(const Coordinate_System* coordinateSystem);
33 
34  DtRwVrfKinematicState(const Coordinate_System* coordinateSystem,
35  const DtString& rwName, DtReaderWriterRegistry * parentRegistry = nullptr);
36 
38  DtRwVrfKinematicState(const DtRwVrfKinematicState& orig, const DtString& rwName,
39  DtReaderWriterRegistry * parentRegistry = nullptr);
40 
42  const DtRwVrfKinematicState& operator=(const DtRwVrfKinematicState& orig);
43 
44  bool operator==(const DtRwVrfKinematicState& orig) const;
45  bool operator!=(const DtRwVrfKinematicState& orig) const
46  {
47  return !(*this == orig);
48  }
49 
50  bool operator==(const DtRwSimKinematicState& orig) const;
51  bool operator!=(const DtRwSimKinematicState& orig) const
52  {
53  return !(*this == orig);
54  }
55 
57  virtual ~DtRwVrfKinematicState() override;
58 
60  virtual DtRwSimKinematicState* clone(
61  const DtString& rwName = DtString::nullString(),
62  DtReaderWriterRegistry * parentRegistry = nullptr) const override;
63 
67  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
68  virtual const Coordinate_System* coordinateSystem() const;
69 
71  virtual const DtVector& localPosition() const;
72  virtual const DtVector& worldPosition() const override;
73  virtual void setLocalPosition(const DtVector& localPosition);
74  virtual void setWorldPosition(const DtVector& localPosition) override;
75  virtual void setParentPosition(const DtVector& localPosition) override;
76  virtual void validateLocalState();
77 
80  virtual const DtVector&localVelocity() const;
81  virtual const DtVector&worldVelocity() const override;
82  virtual void setLocalVelocity(const DtVector& localVelocity,
83  bool recomputeSpeed = true);
84  virtual void setWorldVelocity(const DtVector& localVelocity,
85  bool recomputeSpeed = true) override;
86 
88  DtReal localSpeed() const;
89  void setLocalSpeed(DtReal localSpeed);
90 
93  virtual const DtVector& localAcceleration() const;
94  virtual const DtVector& worldAcceleration() const override;
95  virtual void setLocalAcceleration(const DtVector& localAcceleration);
96  virtual void setWorldAcceleration(const DtVector& localAcceleration) override;
97 
102  virtual const DtVector& relativeAcceleration() const;
103  virtual void setRelativeAcceleration(const DtVector& localAcceleration);
104 
106  {
107  return myLocalKinematicState;
108  }
109 
111  virtual const DtVector& relativeVelocity() const;
112  virtual void setRelativeVelocity(const DtVector& localVelocity,
113  bool recomputeSpeed = true);
114 
116  virtual DtVector bodyVelocity() const override;
117 
120  virtual const DtTaitBryan& localOrientationWrtDatabase() const;
121  virtual void setLocalOrientationWrtDatabase(const DtTaitBryan& localOrientation,
123 
126  virtual const DtDcm& localOrientationMatrix() const;
127  virtual void setLocalOrientationMatrix(const DtDcm& localOrientationMatrix,
128  bool recomputeEulers = true);
129  virtual void setWorldOrientationMatrix(const DtDcm& localOrientationMatrix,
130  bool recomputeEulers = true) override;
131 
132  virtual void setRotationConstraint(
133  DtKinematicStateCS::DtRotationConstraint constraint) override;
134 
142  virtual const DtTaitBryan& localOrientation() const;
143  virtual const DtTaitBryan& worldOrientation() const override;
144  virtual void setLocalOrientation(const DtTaitBryan& topoOrientation,
146  virtual void setWorldOrientation(const DtTaitBryan& topoOrientation,
148  virtual void setParentOrientation(const DtTaitBryan& topoOrientation,
151 
154  public:
155 
156  DtCoordSysValidationVector& localVV();
157  const DtCoordSysValidationVector& localVV() const;
158 
159  virtual void invalidateState() override;
160  virtual void validateState() override;
161 
162  virtual void invalidateRelativeVelocity();
163  virtual void validateRelativeVelocity();
164 
165  virtual void invalidateRelativeAcceleration();
166  virtual void validateRelativeAcceleration();
167 
168  static DtRwVrfKinematicState* create();
169  static DtRwVrfKinematicStateCreatorFcn setRwVrfKinematicStateCreatorFcn(DtRwVrfKinematicStateCreatorFcn);
170 
171  protected:
172  virtual void detach() override;
173  virtual void attach() override;
174  virtual void postGetSelf() override;
175 
176  protected:
177 
183 
185 
189  mutable DtTaitBryan myTopoOrientation;
190 
191  mutable DtVector myRelativeAcceleration;
193 
194  mutable DtVector myRelativeVelocity;
196 
198  };
199 }
DtVector myRelativeAcceleration
Definition: rwVrfKinematicState.h:191
class DtKinematicStateCS: DtKinematicStateCS contains the current kinematic state of an object in one...
Definition: kinematicStateCS.h:43
bool operator!=(const DtRwSimKinematicState &orig) const
Definition: rwVrfKinematicState.h:51
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
bool myRelativeVelocityInvalid
Definition: rwVrfKinematicState.h:195
Definition: readerWriterRegistry.h:39
DtTaitBryan myTopoOrientation
This data member is used in localOrientation(), to provide a way to return a const reference to a DtT...
Definition: rwVrfKinematicState.h:189
const Coordinate_System * myCoordinateSystemPtr
Definition: rwVrfKinematicState.h:184
class DtRwSimKinematicState: This class encapsulates the kinematic state of an object wrt to the netw...
Definition: rwSimKinematicState.h:37
DtRotationConstraint
Definition: kinematicStateCS.h:54
Definition: coordSystem.h:54
bool myRelativeAccelerationInvalid
Definition: rwVrfKinematicState.h:192
bool operator!=(const DtRwVrfKinematicState &orig) const
Definition: rwVrfKinematicState.h:45
static DtRwVrfKinematicStateCreatorFcn theRwVrfKinematicStateCreatorFcn
Definition: rwVrfKinematicState.h:197
DtVector myRelativeVelocity
Definition: rwVrfKinematicState.h:194
const DtKinematicStateCS & localKinematicState() const
Definition: rwVrfKinematicState.h:105
DtRwVrfKinematicState *(*)( DtRwVrfKinematicStateCreatorFcn)
Definition: rwVrfKinematicState.h:24
Definition: kinematicStateCS.h:57
Definition: rwVrfKinematicState.h:26
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
Definition: coordSysValidationVector.h:15
DtCoordSysValidationVector myLocalVV
Definition: rwVrfKinematicState.h:182
DtKinematicStateCS myLocalKinematicState
Position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database co...
Definition: rwVrfKinematicState.h:181

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)