VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rwSimKinematicState.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 
13 #include <vlpi/disEnums.h>
15 #include "readerWriter/rwVector.h"
16 #include "readerWriter/rwInt.h"
17 #include "vrfutil/vertexList.h"
18 #include "vrfutil/rwUUID.h"
19 
20 #include <matrix/vlTaitBryan.h>
21 #include <boost/signals2.hpp>
22 
23 namespace makVrf
24 {
25  class DtStateData;
26  class DtLocationStateComponent;
27  class DtEntityLocationStateComponent;
28 
38  {
39  public:
40 
44 
46  DtRwSimKinematicState(const DtString& name,
47  DtReaderWriterRegistry * parentRegistry = NULL);
48 
50  DtReaderWriterRegistry * parentRegistry = NULL);
51 
53  DtRwSimKinematicState(const DtRwSimKinematicState& orig, const DtString& name,
54  DtReaderWriterRegistry * parentRegistry = 0);
55 
57  const DtSymbolString& name,
58  DtReaderWriterRegistry * parentRegistry = 0);
59 
61  const DtRwSimKinematicState& operator=(const DtRwSimKinematicState& orig);
62 
64  virtual ~DtRwSimKinematicState();
65 
67  virtual DtRwSimKinematicState* clone(const DtString& name = DtString::nullString(),
68  DtReaderWriterRegistry* parentRegistry = NULL) const;
69 
70  virtual DtRwSimKinematicState* clone(const DtSymbolString& name,
71  DtReaderWriterRegistry* parentRegistry = NULL) const;
72 
73  virtual const DtVector& parentPosition() const;
74  virtual void setParentPosition(const DtVector& position);
75 
76  virtual const DtVector& parentVelocity() const;
77  virtual void setParentVelocity(const DtVector& velocity,
78  bool recomputeSpeed = true);
79  virtual DtReal parentSpeed() const;
80 
81  virtual const DtVector& parentAcceleration() const;
82  virtual void setParentAcceleration(const DtVector& acceleration);
83 
84  virtual const DtTaitBryan& parentOrientation() const;
85  virtual void setParentOrientation(const DtTaitBryan& orientation,
87 
88  virtual const DtDcm& parentOrientationMatrix() const;
89  virtual void setParentOrientationMatrix(const DtDcm& orientationMatrix,
90  bool recomputeEulers = true);
91 
92  virtual const DtVector& worldPosition() const;
93  virtual void setWorldPosition(const DtVector& position);
94 
95  virtual const DtVector& worldVelocity() const;
96  virtual void setWorldVelocity(const DtVector& velocity,
97  bool recomputeSpeed = true);
98 
99  virtual DtReal worldSpeed() const;
100 
101  virtual const DtVector& worldAcceleration() const;
102  virtual void setWorldAcceleration(const DtVector& acceleration);
103 
104  virtual const DtTaitBryan& worldOrientation() const;
105  virtual void setWorldOrientation(const DtTaitBryan& orientation,
107 
108  virtual const DtDcm& worldOrientationMatrix() const;
109  virtual void setWorldOrientationMatrix(const DtDcm& orientationMatrix,
110  bool recomputeEulers = true);
111 
112  virtual DtVector bodyVelocity() const;
115  virtual const DtTaitBryan& topoEuler() const;
118  virtual double heading() const;
121  virtual double pitch() const;
124  virtual double roll() const;
125 
126  virtual const DtVector& rotationalVelocity() const;
127  virtual void setRotationalVelocity(const DtVector& rotationalVelocity);
128 
129  virtual DtKinematicStateCS::DtRotationConstraint rotationConstraint()
130  const;
131 
132  virtual void setRotationConstraint(
134 
136  virtual DtKinematicStateCS::DtSimOrientationType orientationType() const;
137  virtual void setOrientationType(
139 
142  virtual void setObjectAttachMode(int m);
143  int objectAttachMode() const
144  {
145  return myObjectAttachMode;
146  }
147 
148  virtual void setAttachedTo(const DtStateData* stateData, const DtUUID& uuid);
149  const DtStateData* attachedTo() const
150  {
151  return myAttachedTo;
152  }
153 
154  const DtUUID& attachedToUUID() const
155  {
156  return myAttachedToUUID;
157  }
158 
159  bool isAttachedTo() const;
160 
161  virtual void detach();
162  virtual void attach();
163 
164  DtCoordSysValidationVector& parentVV();
165  DtCoordSysValidationVector& worldVV();
166 
167  const DtCoordSysValidationVector& parentVV() const;
168  const DtCoordSysValidationVector& worldVV() const;
169 
173  virtual void putSelf(std::string& fp, int indentLevel = 0, bool writeUnspecified = false,
174  const DtFilename& path = DtReaderWriter::appPath());
175 
177  virtual void validateParentState();
178  virtual void validateWorldState();
179  virtual void invalidateState();
180  virtual void validateState();
181 
182  bool operator==(const DtRwSimKinematicState& orig) const;
183  bool operator!=(const DtRwSimKinematicState& orig) const
184  {
185  return !(*this == orig);
186  }
187 
188  void setFrozen(bool b) { myFrozen = b; };
189  bool frozen() const { return myFrozen; };
190 
191  public:
192 
195  virtual const DtKinematicStateCS& parentKinematicState() const;
196  virtual DtKinematicStateCS& parentKinematicState();
197 
198  virtual void setParentKinematicState(
199  const DtKinematicStateCS& parentKinematicState);
200 
203  virtual const DtKinematicStateCS& worldKinematicState() const;
204  virtual DtKinematicStateCS& worldKinematicState();
205 
206  virtual void setWorldKinematicState(
207  const DtKinematicStateCS& worldKinematicState);
208 
210  virtual const DtVector& setWorldPositionFromParent();
211 
213  virtual void setWorldOrientationFromParent();
214 
215  protected:
216  virtual void postGetSelf();
217  virtual const DtLocationStateComponent* attachedLocationStateComponent() const;
218  virtual const DtEntityLocationStateComponent* attachedEntityLocationStateComponent() const;
219 
220  protected:
224 
229 
233 
237 
240 
243 
251 
257 
258  DtTaitBryan myTopoEuler;
260 
261  boost::signals2::connection myRemovalConnection;
262  bool myFrozen;
263  };
264 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
const DtLocationStateComponent * myAttachedLocationComponent
Definition: rwSimKinematicState.h:254
DtKinematicStateCS myParentKinematicState
position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in parent&#39;s co...
Definition: rwSimKinematicState.h:223
DtCoordSysValidationVector myParentVV
XXX This will not be here... This belongs in the network interface. just have to figure out how it ge...
Definition: rwSimKinematicState.h:238
const DtStateData * myAttachedTo
Definition: rwSimKinematicState.h:252
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
class DtKinematicStateCS: DtKinematicStateCS contains the current kinematic state of an object in one...
Definition: kinematicStateCS.h:43
void setFrozen(bool b)
Definition: rwSimKinematicState.h:188
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
boost::signals2::connection myRemovalConnection
Definition: rwSimKinematicState.h:261
2) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: entityLocationStateComponent.h:116
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
DtKinematicStateCS myWorldKinematicState
position, velocity, acceleration, orientation (Euler and DCM), and rotational velocity in database ...
Definition: rwSimKinematicState.h:232
Definition: readerWriter.h:85
bool operator!=(const DtRwSimKinematicState &orig) const
Definition: rwSimKinematicState.h:183
Definition: readerWriterRegistry.h:39
Contains the DtUUID class declaration.
bool myFrozen
Definition: rwSimKinematicState.h:262
DtCoordSysValidationVector myWorldVV
Definition: rwSimKinematicState.h:239
const DtUUID & attachedToUUID() const
Definition: rwSimKinematicState.h:154
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: rwVector.h:23
bool frozen() const
Definition: rwSimKinematicState.h:189
const DtEntityLocationStateComponent * myAttachedEntityLocationComponent
Definition: rwSimKinematicState.h:255
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
bool myCheckedEntityLocationComponent
Definition: rwSimKinematicState.h:256
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwInt myObjectAttachMode
The object attach mode: EntityOrientation = 0 Heading/pitch/roll of entity affects each point in atta...
Definition: rwSimKinematicState.h:250
DtTaitBryan myTopoEuler
Definition: rwSimKinematicState.h:258
DtRwVector myRotationalVelocity
this is the rate at which the object is rolling, pitching and yawing
Definition: rwSimKinematicState.h:242
Definition: kinematicStateCS.h:57
#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
DtSimOrientationType
Definition: kinematicStateCS.h:47
Definition: coordSysValidationVector.h:20
bool myTopoInvalid
Definition: rwSimKinematicState.h:259
DtUUID myAttachedToUUID
Definition: rwSimKinematicState.h:253
const DtStateData * attachedTo() const
Definition: rwSimKinematicState.h:149
int objectAttachMode() const
Definition: rwSimKinematicState.h:143
File: rwVector.h.
static const DtFilename & appPath()
Gets the current working directory. The first time this accessor is called, it determines the current...

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)