VR-Forces 4.3 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>
17 #include <vrfExtProtocol/objectType.h>
18 #include <vlutil/vlString.h>
19 #include <vl/hostStructs.h>
23 #include "vrfutil/rwObjectType.h"
24 #include "vrfutil/rwForceType.h"
25 #include "vrfutil/rwString.h"
26 
27 class DtVrfObject;
31 
38 {
39 public:
41  const DtObjectType& objectType,
42  const DtString& rwName = DtString::nullString(),
43  DtReaderWriterRegistry* parentRegistry = 0);
44 
45 protected:
47  const DtString& rwName = DtString::nullString(),
48  DtReaderWriterRegistry* parentRegistry = 0);
49 
50 public:
51 
53  const DtSimObjectStateRepository& orig);
54 
55  virtual ~DtSimObjectStateRepository();
56 
57  virtual DtSimObjectStateRepository* clone(
58  const DtString& rwName = DtString::nullString(),
59  DtReaderWriterRegistry* parentRegistry = 0) const;
60 
62  virtual DtString type() const;
63 
65  virtual const int objectStateRepositorySubType() const;
66 
68  virtual bool init();
69 
70  virtual void updatePositionFromModelVertices();
71  virtual void updateBVolFromModelVertices();
72 
73  virtual const DtObjectType& objectType() const;
74  virtual void setObjectType(const DtObjectType& objectType);
75 
77  virtual bool createKinematicState();
78  virtual DtVrfKinematicState* vrfKinematicState();
79  virtual const DtVrfKinematicState* vrfKinematicState() const;
80 
81  virtual bool createObjectGeometry();
82  virtual DtVrfObjectGeometry* vrfObjectGeometry();
83  virtual const DtVrfObjectGeometry* vrfObjectGeometry() const;
84 
85  virtual bool createAttachments();
86  virtual DtAttachmentManager* attachments();
87  virtual const DtAttachmentManager* attachments() const;
88 
89  virtual DtSimObjectStateRepository* parent();
90  virtual const DtSimObjectStateRepository* parent() const;
91 
92  virtual bool isEmbarkedOn(const DtString& parent) const;
93 
96  virtual void attachToParent(DtString parent);
97 
103  virtual void attachToParent(DtSimObjectStateRepository* parent);
104 
105  virtual void detachFromParent();
106 
107  virtual const DtString& attachedToRepositoryName();
108 
109  virtual DtSimObjectStateRepository* findRootSimStateRepository();
110  virtual const DtSimObjectStateRepository* findRootSimStateRepository()
111  const;
112 
113  virtual void ancestorObjectChanged();
114 
116  virtual void putData (FILE *fp, int indentLevel=0);
117 
119  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
120  const DtVariableBindingsList& variableBindings);
121 
123  virtual void preGetSelf() {}
124 
126  virtual void postGetSelf() {}
127 
130 
131  static void completeAttachmentCallback(DtVrfObject * simObject, void * usr);
132  virtual bool processCompleteAttachment(DtVrfObject * simObject);
133  static void objectAboutToBeRemovedCallback(DtVrfObject * simObject, void * usr);
134  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject * simObject);
135 
136  static DtSimObjectStateRepository* isSimObjectStateRepository(
137  DtSimObjectStateRepository* repository);
138 
139  static const DtSimObjectStateRepository* isSimObjectStateRepository(
140  const DtSimObjectStateRepository* repository);
141 
143  virtual const class DtVrfObjectStateRepository* toVrfObjectStateRepository() const;
144 
146  virtual void setCoordinateSystem(const Coordinate_System* coordinateSystem);
147 
148  virtual DtVrfObject* vrfObject();
149  virtual const DtVrfObject* vrfObject() const;
150  virtual void setVrfObject(DtVrfObject* vrfObject);
151 
153  virtual const DtSimKinematicState* kinematicState() const;
154 
156  virtual const DtVrfObjectGeometry* objectGeometry() const;
157 
158  //***
161 
163  virtual const DtVector & bodyPosition() const;
164 
166  virtual void setBodyPosition(const DtVector & pos);
167  virtual void setBodyPosition(DtFloat64 x, DtFloat64 y, DtFloat64 z);
168 
170  const DtDcm & bodyOrientationMatrix() const;
171 
174  virtual void embarkOnParent(const DtString& parent);
175 
176 public:
180  virtual void removeVertex(int iIndex);
181  virtual void addLocalVertex(const DtVector& vertex);
182  virtual void addLocalVertex(const DtVector& vertex, DtVector& newGeometricCenter);
183  virtual void setLocalVertices(const DtLocalVertexList& vertices, DtVector& newGeometricCenter);
184  virtual void setLocalVertices(const DtList& vertices, DtVector& newGeometricCenter);
185  virtual const DtLocalVertexList& localVertices() const;
186  virtual const DtLocalVectorIterator& localVertexIterator() const;
187 
188  virtual void addWorldVertex(const DtVector& vertex, DtVector& newGeometricCenter);
189  virtual void setWorldVertices(const DtVertexList& vertices, DtVector& newGeometricCenter);
190  virtual void setWorldVertices(const DtList& vertices, DtVector& newGeometricCenter);
191  virtual const DtVertexList& worldVertices() const;
192  virtual const DtRwVectorIterator& worldVertexIterator() const;
194 
198  virtual void setRelativeVertices(const DtLocalVertexList& vertices);
199  virtual void setRelativeVertices(const DtList& vertices);
200  virtual const DtLocalVertexList& relativeVertices() const;
201  virtual const DtLocalVectorIterator& relativeVertexIterator() const;
203 
204  virtual bool leftOf(const DtVector& localVector) const;
205  virtual bool inside(const DtVector& point) const;
206 
210  const DtVector & localPosition() const;
211  void setLocalPosition(const DtVector & pos);
212 
213  const DtVector & localVelocity() const;
214  void setLocalVelocity(const DtVector & vel);
215 
216  const DtVector & localAcceleration() const;
217  void setLocalAcceleration(const DtVector & acc);
218 
219  const DtVector & relativeVelocity() const;
220  void setRelativeVelocity(const DtVector & vel);
221 
222  const DtVector & relativeAcceleration() const;
223  void setRelativeAcceleration(const DtVector & acc);
224 
225  const DtTaitBryan & localOrientation() const;
226  void setLocalOrientation(const DtTaitBryan & angles);
227 
228  const DtVector & worldPosition() const;
229  void setWorldPosition(const DtVector & pos);
230 
231  const DtVector & worldVelocity() const;
232  void setWorldVelocity(const DtVector & vel);
233 
234  const DtVector & worldAcceleration() const;
235  void setWorldAcceleration(const DtVector & acc);
236 
237  const DtTaitBryan & worldOrientation() const;
238  void setWorldOrientation(const DtTaitBryan & angles);
239 
240  const DtVector &rotationalVelocity() const;
242 
243  const DtDcm & localOrientationMatrix() const;
244  void setLocalOrientationMatrix(const DtDcm & orient);
246 
254  virtual double distanceToLocalVector(const DtVector& localVector) const;
255 
256  const Coordinate_System* coordinateSystem() const;
257 
258 protected:
261 
263  virtual void setOrientationRelativeToParent();
264 
265 protected:
266 
268 
270 
273 
275 
277 
280 
282 
285  const Coordinate_System* myCoordinateSystemPtr;
286 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)