VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 const char* 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 
100  virtual void checkAndSetEgressPosture();
101 
107  virtual void processEmbarkTask(DtSimMessage* msg);
108  static void embarkTaskCallback(DtSimMessage* msg, void* usr);
109 
112  static void embarkObjectCallback(DtSimMessage* msg, void* usr);
113  virtual void processEmbarkObjectCallback(DtSimMessage* msg);
114 
115  static void disembarkObjectCallback(DtSimMessage* msg, void* usr);
116  virtual void processDisembarkObjectCallback(DtSimMessage* msg);
117 
121  static void embarkationInformationCallback(DtSimMessage* msg, void* usr);
122  virtual void processEmbarkationInformationCallback(DtSimMessage* msg);
123 
124 protected:
126  virtual void processLoadEntity(DtSimMessage * msg);
127  virtual void processUnloadEntity(DtSimMessage * msg);
128 
129  static void setLoadEntityCallback(DtSimMessage * msg, void * usrData);
130  static void setUnloadEntityCallback(DtSimMessage * msg, void * usrData);
131 
133  virtual void unload(const DtVector& point);
134 
137  static void deleteVrfObjectCallback(DtVrfObject * msg, void * usr);
138  virtual void processDeleteVrfObjectCallback(DtVrfObject* obj);
139 
143  static void taskCompleteReportCallback(DtSimMessage * msg, void * usr);
144  virtual void processTaskComplete(DtSimMessage * msg);
145 
146 protected:
147 
150  virtual void moveToEgress();
151 
153  virtual void movingToEgress();
154 
156  virtual void disembark();
157 
159  virtual void sendTask(const DtSimTask& task, const DtUUID& to);
160 
162  virtual void removeControlPoint();
163 
167  virtual void moveToIngress(const DtUUID& parent);
168 
169  virtual void createControlPoint(const DtVector& location,
170  const DtUUID& parent);
171 
172  virtual void createRoute(const std::vector<DtVector>&,
173  const DtUUID& parent);
174 
177  virtual void moveToEmbarkationPoint();
178 
183  virtual void atEmbarkationPoint();
184 
186  virtual void waitingToStop();
187 
191  virtual void movingToIngress();
192 
194  virtual void embarkObject(bool overridePosition,
195  const DtVector& loadPosition,
196  const DtUUID& parent, int appearance = 0xFFFFFFFF,
197  const DtTaitBryan& orientation = DtTaitBryan(),
198  const DtVector& acceleration = DtVector(),
199  const DtVector& velocty = DtVector(),
200  bool invisibleWhenEmbarked = false);
201 
203  virtual void unloadObject(const DtVector& unloadPoint);
204 
206  virtual void embark(const DtVector& loadPosition, const DtUUID& parent,
207  int appearance = 0xFFFFFFFF, const DtTaitBryan& orientation = DtTaitBryan(),
208  const DtVector& acceleration = DtVector(),
209  const DtVector& velocty = DtVector(),
210  bool invisibleWhenEmbarked = false);
211 
214  virtual void movingToEmbarkationPoint();
215 
217  virtual void stoppedAtEmbarkedPoint();
218 
222 
228  virtual bool createPSR();
229 
232  virtual void setupExistingConditions();
233 
236  virtual void completeEmbarkationInformationRequest(
238 
241  virtual void embarkationRefused(const DtIfEmbarkationInformation*);
242 
245  virtual void completeDisembarkationInformationRequest(
247 
250  virtual void disembarkationRefused(const DtIfEmbarkationInformation*);
251 
254  virtual DtTaitBryan embarkedOrientation(const DtTaitBryan&,
255  const DtUUID& parent) const;
256 
259  virtual void moveToIngressPoint(const DtIfEmbarkationInformation* info);
260 
262  virtual void moveAlongToIngressPoint(const DtIfEmbarkationInformation* info);
263 
266  virtual void moveToEgressPoint(const DtIfEmbarkationInformation* info);
267 
270  virtual void moveAlongToEgressPoint(const DtIfEmbarkationInformation* info);
271 
274  virtual void issueMoveToEgressTask();
275  virtual void issueMoveToIngressTask();
276 
279  virtual void issueMoveAlongToEgressTask();
280  virtual void issueMoveAlongToIngressTask();
281 
284  virtual void issueMoveToEmbarkationPointTask();
285 
287  virtual DtVector currentBodyPosition(const DtUUID& parent) const;
288  virtual DtTaitBryan currentBodyOrientation(const DtUUID& parent) const;
289  virtual DtVector currentBodyVelocity(const DtUUID& parent) const;
290  virtual DtVector currentBodyAcceleration(const DtUUID& parent) const;
291 
292 protected:
302  virtual bool requestEmbarkationInformationFrom(const DtUUID& parent,
303  bool start = false, int embarkInSlot = -1, bool anyIfTaken = true);
304  virtual bool requestDisembarkationInformationFrom(const DtUUID& parent,
305  bool start = false);
306 
308  virtual void requestGiveUpSlot(const DtUUID& parent);
309 
310  virtual void waitingForEmbarkationInformation();
311  virtual void waitingForDisembarkationInformation();
312 
314  virtual void placeObject(bool clamp = false);
315 
317  virtual void setLocation(const DtVector&);
318 
325  virtual void calculateAndSetHeading(const DtVector& start, const DtVector& end);
326 
328  virtual void sendSetRequest(DtSetDataRequest& request);
329 
330  virtual void processDisembarkationState(const DtVector& bodyExitPosition);
331  virtual void movingToFinalDestination();
332  virtual void moveToFinalDestination();
333 
336  virtual void preprocessEmbarkTask();
337  virtual void preprocessDisembarkTask();
338 
341  virtual bool checkEmbarkOk(const DtUUID& parent) const;
342 
345  virtual void updateDisembarkedAppearance();
346 
350  virtual void updateEmbarkedAppearance(int);
351  virtual void updateLifeformEmbarkedAppearance(int);
352 
355  virtual void attachToEmbarkedParent(const DtUUID& newParent);
356 
360  virtual DtVector fallbackOffloadPoint();
361 
363  virtual void enable();
364 
366  virtual void disable();
367 
370  virtual bool parentOnGround();
371 
374  static void setHeadingCallback(DtSimMessage*, void* usr);
375  virtual void processSetHeading();
376 
377 private:
378 
381 
384  orig);
385 
387  const DtEmbarkationController & operator=(const
388  DtEmbarkationController & orig);
389 
390 protected:
391  std::list<DtString> myEmbarkedObjects;
392 
398 
402 
408  bool myWaiting;
409 
411 
415 
420 
424 
426 };

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)