VR-Forces 4.1.1 Class Documentation
embarkationController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 
13 
17 
18 
19 class DtString;
20 class DtSimManager;
21 class DtTaskMessage;
24 class DtSetDataRequest;
25 
26 #include <list>
27 
40 {
41 public:
42 
45  DtEmbarkationController(const DtString& name,
46  DtVrfObject* owner,
47  DtSimManager* simManager,
48  DtComponentDescriptor* desc = 0,
49  DtReaderWriterRegistry* parentRegistry = 0);
50 
52  virtual ~DtEmbarkationController();
53 
55  virtual bool init();
56 
59  virtual DtString type() const;
60 
64  static DtSimComponent * creator(const DtString& name,
65  DtVrfObject* owner,
66  DtSimManager* simManager,
67  DtComponentDescriptor* desc = 0,
68  DtReaderWriterRegistry* parentRegistry = 0);
69 
70 protected:
72  virtual void registerTaskMsgCallbacks();
73 
75  virtual void unregisterTaskMsgCallbacks();
76 
78  virtual void preFirstTickInit();
79 
81  virtual void tick();
82 
84  virtual void clearCurrentTaskMessage();
85 
87  virtual void clearTask();
88 
90 protected:
92  virtual void processDisembarkTask(DtSimMessage* msg);
93  static void disembarkTaskCallback(DtSimMessage* msg, void* usr);
94 
100  virtual void processEmbarkTask(DtSimMessage* msg);
101  static void embarkTaskCallback(DtSimMessage* msg, void* usr);
102 
105  static void embarkObjectCallback(DtSimMessage* msg, void* usr);
106  virtual void processEmbarkObjectCallback(DtSimMessage* msg);
107 
108  static void disembarkObjectCallback(DtSimMessage* msg, void* usr);
109  virtual void processDisembarkObjectCallback(DtSimMessage* msg);
110 
114  static void embarkationInformationCallback(DtSimMessage* msg, void* usr);
115  virtual void processEmbarkationInformationCallback(DtSimMessage* msg);
116 
117 protected:
119  virtual void processLoadEntity(DtSimMessage * msg);
120  virtual void processUnloadEntity(DtSimMessage * msg);
121 
122  static void setLoadEntityCallback(DtSimMessage * msg, void * usrData);
123  static void setUnloadEntityCallback(DtSimMessage * msg, void * usrData);
124 
126  virtual void unload(const DtVector& point);
127 
130  static void deleteVrfObjectCallback(DtVrfObject * msg, void * usr);
131  virtual void processDeleteVrfObjectCallback(DtVrfObject* obj);
132 
136  static void taskCompleteReportCallback(DtSimMessage * msg, void * usr);
137  virtual void processTaskComplete(DtSimMessage * msg);
138 
139 protected:
140 
143  virtual void moveToEgress();
144 
146  virtual void movingToEgress();
147 
149  virtual void disembark();
150 
152  virtual void sendTask(const DtSimTask& task, const DtString& toName);
153 
155  virtual void removeControlPoint();
156 
160  virtual void moveToIngress(const DtString& parentName);
161 
162  virtual void createControlPoint(const DtVector& location,
163  const DtString& parent);
164 
165  virtual void createRoute(const std::vector<DtVector>&,
166  const DtString& parent);
167 
170  virtual void moveToEmbarkationPoint();
171 
176  virtual void atEmbarkationPoint();
177 
179  virtual void waitingToStop();
180 
184  virtual void movingToIngress();
185 
187  virtual void embarkObject(bool overridePosition,
188  const DtVector& loadPosition,
189  const DtString& parentName, int appearance = 0xFFFFFFFF,
190  const DtTaitBryan& orientation = DtTaitBryan(),
191  const DtVector& acceleration = DtVector(),
192  const DtVector& velocty = DtVector());
193 
195  virtual void unloadObject(const DtVector& unloadPoint);
196 
198  virtual void embark(const DtVector& loadPosition, const DtString& parentName,
199  int appearance = 0xFFFFFFFF, const DtTaitBryan& orientation = DtTaitBryan(),
200  const DtVector& acceleration = DtVector(),
201  const DtVector& velocty = DtVector());
202 
205  virtual void movingToEmbarkationPoint();
206 
208  virtual void stoppedAtEmbarkedPoint();
209 
213 
219  virtual bool createPSR();
220 
223  virtual void setupExistingConditions();
224 
227  virtual void completeEmbarkationInformationRequest(
229 
232  virtual void embarkationRefused(const DtIfEmbarkationInformation*);
233 
236  virtual void completeDisembarkationInformationRequest(
238 
241  virtual void disembarkationRefused(const DtIfEmbarkationInformation*);
242 
245  virtual DtTaitBryan embarkedOrientation(const DtTaitBryan&,
246  const DtString& parent) const;
247 
250  virtual void moveToIngressPoint(const DtIfEmbarkationInformation* info);
251 
253  virtual void moveAlongToIngressPoint(const DtIfEmbarkationInformation* info);
254 
257  virtual void moveToEgressPoint(const DtIfEmbarkationInformation* info);
258 
261  virtual void moveAlongToEgressPoint(const DtIfEmbarkationInformation* info);
262 
265  virtual void issueMoveToEgressTask();
266  virtual void issueMoveToIngressTask();
267 
270  virtual void issueMoveAlongToEgressTask();
271  virtual void issueMoveAlongToIngressTask();
272 
275  virtual void issueMoveToEmbarkationPointTask();
276 
278  virtual DtVector currentBodyPosition(const DtString& parent) const;
279  virtual DtTaitBryan currentBodyOrientation(const DtString& parent) const;
280  virtual DtVector currentBodyVelocity(const DtString& parent) const;
281  virtual DtVector currentBodyAcceleration(const DtString& parent) const;
282 
283 protected:
293  virtual bool requestEmbarkationInformationFrom(const DtString& parent,
294  bool start = false);
295  virtual bool requestDisembarkationInformationFrom(const DtString& parent,
296  bool start = false);
297 
299  virtual void requestGiveUpSlot(const DtString& parent);
300 
301  virtual void waitingForEmbarkationInformation();
302  virtual void waitingForDisembarkationInformation();
303 
305  virtual void placeObject();
306 
308  virtual void setLocation(const DtVector&);
309 
316  virtual void calculateAndSetHeading(const DtVector& start, const DtVector& end);
317 
319  virtual void sendSetRequest(DtSetDataRequest& request);
320 
321  virtual void processDisembarkationState(const DtVector& bodyExitPosition);
322  virtual void movingToFinalDestination();
323  virtual void moveToFinalDestination();
324 
327  virtual void preprocessEmbarkTask();
328  virtual void preprocessDisembarkTask();
329 
332  virtual bool checkEmbarkOk(const DtString& parent) const;
333 
336  virtual void updateDisembarkedAppearance();
337 
341  virtual void updateEmbarkedAppearance(int);
342  virtual void updateLifeformEmbarkedAppearance(int);
343 
346  virtual void attachToEmbarkedParent(const DtString& newParent);
347 
351  virtual DtVector fallbackOffloadPoint();
352 
354  virtual void enable();
355 
357  virtual void disable();
358 
359 private:
360 
363 
366  orig);
367 
369  const DtEmbarkationController & operator=(const
370  DtEmbarkationController & orig);
371 
372 protected:
373  std::list<DtString> myEmbarkedObjects;
374 
380 
384 
390  bool myWaiting;
391 
393 
397 };

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)