VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 suspendTask();
88 
90  virtual void clearTask();
91 
93 protected:
95  virtual void processDisembarkTask(DtSimMessage* msg);
96  static void disembarkTaskCallback(DtSimMessage* msg, void* usr);
97 
103  virtual void processEmbarkTask(DtSimMessage* msg);
104  static void embarkTaskCallback(DtSimMessage* msg, void* usr);
105 
108  static void embarkObjectCallback(DtSimMessage* msg, void* usr);
109  virtual void processEmbarkObjectCallback(DtSimMessage* msg);
110 
111  static void disembarkObjectCallback(DtSimMessage* msg, void* usr);
112  virtual void processDisembarkObjectCallback(DtSimMessage* msg);
113 
117  static void embarkationInformationCallback(DtSimMessage* msg, void* usr);
118  virtual void processEmbarkationInformationCallback(DtSimMessage* msg);
119 
120 protected:
122  virtual void processLoadEntity(DtSimMessage * msg);
123  virtual void processUnloadEntity(DtSimMessage * msg);
124 
125  static void setLoadEntityCallback(DtSimMessage * msg, void * usrData);
126  static void setUnloadEntityCallback(DtSimMessage * msg, void * usrData);
127 
129  virtual void unload(const DtVector& point);
130 
133  static void deleteVrfObjectCallback(DtVrfObject * msg, void * usr);
134  virtual void processDeleteVrfObjectCallback(DtVrfObject* obj);
135 
139  static void taskCompleteReportCallback(DtSimMessage * msg, void * usr);
140  virtual void processTaskComplete(DtSimMessage * msg);
141 
142 protected:
143 
146  virtual void moveToEgress();
147 
149  virtual void movingToEgress();
150 
152  virtual void disembark();
153 
155  virtual void sendTask(const DtSimTask& task, const DtString& toName);
156 
158  virtual void removeControlPoint();
159 
163  virtual void moveToIngress(const DtString& parentName);
164 
165  virtual void createControlPoint(const DtVector& location,
166  const DtString& parent);
167 
168  virtual void createRoute(const std::vector<DtVector>&,
169  const DtString& parent);
170 
173  virtual void moveToEmbarkationPoint();
174 
179  virtual void atEmbarkationPoint();
180 
182  virtual void waitingToStop();
183 
187  virtual void movingToIngress();
188 
190  virtual void embarkObject(bool overridePosition,
191  const DtVector& loadPosition,
192  const DtString& parentName, int appearance = 0xFFFFFFFF,
193  const DtTaitBryan& orientation = DtTaitBryan(),
194  const DtVector& acceleration = DtVector(),
195  const DtVector& velocty = DtVector());
196 
198  virtual void unloadObject(const DtVector& unloadPoint);
199 
201  virtual void embark(const DtVector& loadPosition, const DtString& parentName,
202  int appearance = 0xFFFFFFFF, const DtTaitBryan& orientation = DtTaitBryan(),
203  const DtVector& acceleration = DtVector(),
204  const DtVector& velocty = DtVector());
205 
208  virtual void movingToEmbarkationPoint();
209 
211  virtual void stoppedAtEmbarkedPoint();
212 
216 
222  virtual bool createPSR();
223 
226  virtual void setupExistingConditions();
227 
230  virtual void completeEmbarkationInformationRequest(
232 
235  virtual void embarkationRefused(const DtIfEmbarkationInformation*);
236 
239  virtual void completeDisembarkationInformationRequest(
241 
244  virtual void disembarkationRefused(const DtIfEmbarkationInformation*);
245 
248  virtual DtTaitBryan embarkedOrientation(const DtTaitBryan&,
249  const DtString& parent) const;
250 
253  virtual void moveToIngressPoint(const DtIfEmbarkationInformation* info);
254 
256  virtual void moveAlongToIngressPoint(const DtIfEmbarkationInformation* info);
257 
260  virtual void moveToEgressPoint(const DtIfEmbarkationInformation* info);
261 
264  virtual void moveAlongToEgressPoint(const DtIfEmbarkationInformation* info);
265 
268  virtual void issueMoveToEgressTask();
269  virtual void issueMoveToIngressTask();
270 
273  virtual void issueMoveAlongToEgressTask();
274  virtual void issueMoveAlongToIngressTask();
275 
278  virtual void issueMoveToEmbarkationPointTask();
279 
281  virtual DtVector currentBodyPosition(const DtString& parent) const;
282  virtual DtTaitBryan currentBodyOrientation(const DtString& parent) const;
283  virtual DtVector currentBodyVelocity(const DtString& parent) const;
284  virtual DtVector currentBodyAcceleration(const DtString& parent) const;
285 
286 protected:
296  virtual bool requestEmbarkationInformationFrom(const DtString& parent,
297  bool start = false);
298  virtual bool requestDisembarkationInformationFrom(const DtString& parent,
299  bool start = false);
300 
302  virtual void requestGiveUpSlot(const DtString& parent);
303 
304  virtual void waitingForEmbarkationInformation();
305  virtual void waitingForDisembarkationInformation();
306 
308  virtual void placeObject();
309 
311  virtual void setLocation(const DtVector&);
312 
319  virtual void calculateAndSetHeading(const DtVector& start, const DtVector& end);
320 
322  virtual void sendSetRequest(DtSetDataRequest& request);
323 
324  virtual void processDisembarkationState(const DtVector& bodyExitPosition);
325  virtual void movingToFinalDestination();
326  virtual void moveToFinalDestination();
327 
330  virtual void preprocessEmbarkTask();
331  virtual void preprocessDisembarkTask();
332 
335  virtual bool checkEmbarkOk(const DtString& parent) const;
336 
339  virtual void updateDisembarkedAppearance();
340 
344  virtual void updateEmbarkedAppearance(int);
345  virtual void updateLifeformEmbarkedAppearance(int);
346 
349  virtual void attachToEmbarkedParent(const DtString& newParent);
350 
354  virtual DtVector fallbackOffloadPoint();
355 
357  virtual void enable();
358 
360  virtual void disable();
361 
362 private:
363 
366 
369  orig);
370 
372  const DtEmbarkationController & operator=(const
373  DtEmbarkationController & orig);
374 
375 protected:
376  std::list<DtString> myEmbarkedObjects;
377 
383 
387 
393  bool myWaiting;
394 
396 
400 };

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)