VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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  virtual void updateBVolFromModelVertices();
74 
75  virtual const DtObjectType& objectType() const;
76  virtual void setObjectType(const DtObjectType& objectType);
77 
79  virtual bool createKinematicState();
80  virtual DtVrfKinematicState* vrfKinematicState();
81  virtual const DtVrfKinematicState* vrfKinematicState() const;
82 
83  virtual bool createObjectGeometry();
84  virtual DtVrfObjectGeometry* vrfObjectGeometry();
85  virtual const DtVrfObjectGeometry* vrfObjectGeometry() const;
86 
87  virtual bool createAttachments();
88  virtual DtAttachmentManager* attachments();
89  virtual const DtAttachmentManager* attachments() const;
90 
91  virtual DtSimObjectStateRepository* parent();
92  virtual const DtSimObjectStateRepository* parent() const;
93 
94  virtual bool isEmbarkedOn(const DtUUID& parent) const;
95 
98  virtual void attachToParent(const DtUUID& parent);
99 
105  virtual void attachToParent(DtSimObjectStateRepository* parent);
106 
107  virtual void detachFromParent();
108 
109  virtual const DtUUID& attachedToRepository();
110 
111  virtual DtSimObjectStateRepository* findRootSimStateRepository();
112  virtual const DtSimObjectStateRepository* findRootSimStateRepository()
113  const;
114 
115  virtual void ancestorObjectChanged();
116 
118  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
119  const DtVariableBindingsList& variableBindings);
120 
122  virtual void preGetSelf() {}
123 
125  virtual void postGetSelf() {}
126 
129 
130  static void completeAttachmentCallback(DtVrfObject * simObject, void * usr);
131  virtual bool processCompleteAttachment(DtVrfObject*);
132  static void objectAboutToBeRemovedCallback(DtVrfObject * simObject, void * usr);
133  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject * simObject);
134 
135  static DtSimObjectStateRepository* isSimObjectStateRepository(
136  DtSimObjectStateRepository* repository);
137 
138  static const DtSimObjectStateRepository* isSimObjectStateRepository(
139  const DtSimObjectStateRepository* repository);
140 
142  virtual const class DtVrfObjectStateRepository* toVrfObjectStateRepository() const;
143 
146 
147  virtual DtVrfObject* vrfObject();
148  virtual const DtVrfObject* vrfObject() const;
149  virtual void setVrfObject(DtVrfObject* vrfObject);
150 
152  virtual const DtSimKinematicState* kinematicState() const;
153 
155  virtual const DtVrfObjectGeometry* objectGeometry() const;
156 
157  //***
160 
162  virtual const DtVector & bodyPosition() const;
163 
165  virtual void setBodyPosition(const DtVector & pos);
166  virtual void setBodyPosition(DtFloat64 x, DtFloat64 y, DtFloat64 z);
167 
169  const DtDcm & bodyOrientationMatrix() const;
170 
173  virtual void embarkOnParent(const DtUUID& parent);
174 
175 public:
179  virtual void removeVertex(int iIndex);
180  virtual void addLocalVertex(const DtVector& vertex);
181  virtual void addLocalVertex(const DtVector& vertex, DtVector& newGeometricCenter);
182  virtual void setLocalVertices(const DtLocalVertexList& vertices, DtVector& newGeometricCenter);
183  virtual void setLocalVertices(const DtList& vertices, DtVector& newGeometricCenter);
184  virtual const DtLocalVertexList& localVertices() const;
185  virtual const DtLocalVectorIterator& localVertexIterator() const;
186 
187  virtual void addWorldVertex(const DtVector& vertex, DtVector& newGeometricCenter);
188  virtual void setWorldVertices(const DtVertexList& vertices, DtVector& newGeometricCenter);
189  virtual void setWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
190  virtual const DtVertexList& worldVertices() const;
191  virtual const DtRwVectorIterator& worldVertexIterator() const;
193 
197  virtual void setRelativeVertices(const DtLocalVertexList& vertices);
198  virtual void setRelativeVertices(const DtList& vertices);
199  virtual const DtLocalVertexList& relativeVertices() const;
200  virtual const DtLocalVectorIterator& relativeVertexIterator() const;
202 
203  virtual bool leftOf(const DtVector& localVector) const;
204  virtual bool inside(const DtVector& point) const;
205 
209  const DtVector & localPosition() const;
210  void setLocalPosition(const DtVector & pos);
211 
212  const DtVector & localVelocity() const;
213  void setLocalVelocity(const DtVector & vel);
214 
215  const DtVector & localAcceleration() const;
216  void setLocalAcceleration(const DtVector & acc);
217 
218  const DtVector & relativeVelocity() const;
219  void setRelativeVelocity(const DtVector & vel);
220 
221  const DtVector & relativeAcceleration() const;
222  void setRelativeAcceleration(const DtVector & acc);
223 
224  const DtTaitBryan & localOrientation() const;
225  void setLocalOrientation(const DtTaitBryan & angles);
226 
227  const DtVector & worldPosition() const;
228  void setWorldPosition(const DtVector & pos);
229 
230  const DtVector & worldVelocity() const;
231  void setWorldVelocity(const DtVector & vel);
232 
233  const DtVector & worldAcceleration() const;
234  void setWorldAcceleration(const DtVector & acc);
235 
236  const DtTaitBryan & worldOrientation() const;
237  void setWorldOrientation(const DtTaitBryan & angles);
238 
239  const DtVector &rotationalVelocity() const;
241 
242  const DtDcm & localOrientationMatrix() const;
243  void setLocalOrientationMatrix(const DtDcm & orient);
245 
253  virtual double distanceToLocalVector(const DtVector& localVector) const;
254 
255  const Coordinate_System* coordinateSystem() const;
256 
257 protected:
260 
262  virtual void setOrientationRelativeToParent();
263 
264 protected:
265 
267 
269 
272 
274 
276 
279 
281 
285 
287 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)