VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simObjectStateRepository.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 
10 
13 
14 #include "vrfutil/readerWriter.h"
15 #include <vlutil/vlString.h>
16 #include <vlpi/disEnums.h>
18 #include <vlutil/vlString.h>
19 #include <vl/hostStructs.h>
24 #include "vrfutil/rwObjectType.h"
25 #include "vrfutil/rwForceType.h"
26 #include "vrfutil/rwString.h"
27 #include <vrfutil/rwUUID.h>
28 
29 class DtVrfObject;
33 
40 {
41 public:
43  const DtObjectType& objectType,
44  const DtString& rwName = DtString::nullString(),
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
47 protected:
49  const DtString& rwName = DtString::nullString(),
50  DtReaderWriterRegistry* parentRegistry = 0);
51 
52 public:
53 
55  const DtSimObjectStateRepository& orig);
56 
57  virtual ~DtSimObjectStateRepository();
58 
59  virtual DtSimObjectStateRepository* clone(
60  const DtString& rwName = DtString::nullString(),
61  DtReaderWriterRegistry* parentRegistry = 0) const;
62 
64  virtual DtString type() const;
65 
67  virtual const int objectStateRepositorySubType() const;
68 
70  virtual bool init();
71 
72  virtual void updatePositionFromModelVertices();
73 
74  virtual const DtObjectType& objectType() const;
75  virtual void setObjectType(const DtObjectType& objectType);
76 
78  virtual bool createKinematicState();
79  virtual DtVrfKinematicState* vrfKinematicState();
80  virtual const DtVrfKinematicState* vrfKinematicState() const;
81 
82  virtual bool createObjectGeometry();
83  virtual DtVrfObjectGeometry* vrfObjectGeometry();
84  virtual const DtVrfObjectGeometry* vrfObjectGeometry() const;
85 
86  virtual bool createAttachments();
87  virtual DtAttachmentManager* attachments();
88  virtual const DtAttachmentManager* attachments() const;
89 
90  virtual DtSimObjectStateRepository* parent();
91  virtual const DtSimObjectStateRepository* parent() const;
92 
93  virtual bool isEmbarkedOn(const DtUUID& parent) const;
94 
97  virtual void attachToParent(const DtUUID& parent);
98 
104  virtual void attachToParent(DtSimObjectStateRepository* parent);
105 
106  virtual void detachFromParent();
107 
108  virtual const DtUUID& attachedToRepository();
109 
110  virtual DtSimObjectStateRepository* findRootSimStateRepository();
111  virtual const DtSimObjectStateRepository* findRootSimStateRepository()
112  const;
113 
114  virtual void ancestorObjectChanged();
115 
117  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
118  const DtVariableBindingsList& variableBindings);
119 
121  virtual void preGetSelf() {}
122 
124  virtual void postGetSelf() {}
125 
128 
129  static void completeAttachmentCallback(DtVrfObject * simObject, void * usr);
130  virtual bool processCompleteAttachment(DtVrfObject*);
131  static void objectAboutToBeRemovedCallback(DtVrfObject * simObject, void * usr);
132  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject * simObject);
133 
134  static DtSimObjectStateRepository* isSimObjectStateRepository(
135  DtSimObjectStateRepository* repository);
136 
137  static const DtSimObjectStateRepository* isSimObjectStateRepository(
138  const DtSimObjectStateRepository* repository);
139 
141  virtual const class DtVrfObjectStateRepository* toVrfObjectStateRepository() const;
142 
145 
146  virtual DtVrfObject* vrfObject();
147  virtual const DtVrfObject* vrfObject() const;
148  virtual void setVrfObject(DtVrfObject* vrfObject);
149 
151  virtual const DtSimKinematicState* kinematicState() const;
152 
154  virtual const DtVrfObjectGeometry* objectGeometry() const;
155 
156  //***
159 
161  virtual const DtVector & bodyPosition() const;
162 
164  virtual void setBodyPosition(const DtVector & pos);
165  virtual void setBodyPosition(DtFloat64 x, DtFloat64 y, DtFloat64 z);
166 
168  const DtDcm & bodyOrientationMatrix() const;
169 
172  virtual void embarkOnParent(const DtUUID& parent);
173 
174 public:
178  virtual void removeVertex(int iIndex);
179  virtual void addLocalVertex(const DtVector& vertex);
180  virtual void addLocalVertex(const DtVector& vertex, DtVector& newGeometricCenter);
181  virtual void setLocalVertices(const DtLocalVertexList& vertices, DtVector& newGeometricCenter);
182  virtual void setLocalVertices(const DtList& vertices, DtVector& newGeometricCenter);
183  virtual const DtLocalVertexList& localVertices() const;
184  virtual const DtLocalVectorIterator& localVertexIterator() const;
185 
186  virtual void addWorldVertex(const DtVector& vertex, DtVector& newGeometricCenter);
187  virtual void setWorldVertices(const DtVertexList& vertices, DtVector& newGeometricCenter);
188  virtual void setWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
189  virtual const DtVertexList& worldVertices() const;
190  virtual const DtRwVectorIterator& worldVertexIterator() const;
192 
196  virtual void setRelativeVertices(const DtLocalVertexList& vertices);
197  virtual void setRelativeVertices(const DtList& vertices);
198  virtual const DtLocalVertexList& relativeVertices() const;
199  virtual const DtLocalVectorIterator& relativeVertexIterator() const;
201 
202  virtual bool leftOf(const DtVector& localVector) const;
203  virtual bool inside(const DtVector& point) const;
204 
208  const DtVector & localPosition() const;
209  void setLocalPosition(const DtVector & pos);
210 
211  const DtVector & localVelocity() const;
212  void setLocalVelocity(const DtVector & vel);
213 
214  const DtVector & localAcceleration() const;
215  void setLocalAcceleration(const DtVector & acc);
216 
217  const DtVector & relativeVelocity() const;
218  void setRelativeVelocity(const DtVector & vel);
219 
220  const DtVector & relativeAcceleration() const;
221  void setRelativeAcceleration(const DtVector & acc);
222 
223  const DtTaitBryan & localOrientation() const;
224  void setLocalOrientation(const DtTaitBryan & angles);
225 
226  const DtVector & worldPosition() const;
227  void setWorldPosition(const DtVector & pos);
228 
229  const DtVector & worldVelocity() const;
230  void setWorldVelocity(const DtVector & vel);
231 
232  const DtVector & worldAcceleration() const;
233  void setWorldAcceleration(const DtVector & acc);
234 
235  const DtTaitBryan & worldOrientation() const;
236  void setWorldOrientation(const DtTaitBryan & angles);
237 
238  const DtVector &rotationalVelocity() const;
240 
241  const DtDcm & localOrientationMatrix() const;
242  void setLocalOrientationMatrix(const DtDcm & orient);
243 
244  void setParentPosition(const DtVector& pos);
246 
251  const double lastPositionSetTime() const;
252  void setLastPositionSetTime(const double simTime);
254 
262  virtual double distanceToLocalVector(const DtVector& localVector) const;
263 
264  const Coordinate_System* coordinateSystem() const;
265 
266 protected:
269 
271  virtual void setOrientationRelativeToParent();
272 
273 protected:
274 
276 
278 
282 
284 
286 
289 
291 
295 
297 };

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)