VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
occupancyDirectorController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
16 
17 #include <list>
18 
21 class DtSimMessage;
24 
43 {
44 public:
45 
49  DtVrfObject* owner,
50  DtSimManager* simManager,
51  DtComponentDescriptor* desc = 0,
52  DtReaderWriterRegistry* parentRegistry = 0);
53 
56 
58  virtual bool init();
59 
62  virtual const char* type() const;
63 
67  static DtSimComponent * creator(const DtString& name,
68  DtVrfObject* owner,
69  DtSimManager* simManager,
70  DtComponentDescriptor* desc = 0,
71  DtReaderWriterRegistry* parentRegistry = 0);
72 
73 protected:
74  static void requestEmbarkationInformationCallback(DtSimMessage* msg, void* usr);
75  virtual void processRequestEmbarkationInformation(DtSimMessage* msg);
76 
77  static void requestEmbarkationSlotInformationCallback(DtSimMessage* msg, void* usr);
78  virtual void processRequestEmbarkationSlotInformation(DtSimMessage* msg);
79 
80 protected:
82  virtual void registerTaskMsgCallbacks();
83 
86  virtual void preFirstTickInit();
87 
89  virtual void tick();
90 
96  virtual bool createPSR();
97 
99  virtual void giveUpSlot(int iSlot, const DtUUID&);
100 
102  virtual DtEmbarkationSlotInformation embarkationSlotEntryFor(const DtUUID&) const;
103  virtual DtEmbarkationSlotInformation embarkationSlotEntryFor(int slot, const DtUUID&) const;
104 
107  virtual DtEmbarkationSlotInformation disembarkationInformationFor(const DtUUID&, int& iResult) const;
108 
110  virtual int disembarkationResult(const DtEmbarkationSlotInformation&) const;
111 
114  virtual bool reserveSlot(const DtEmbarkationSlotInformation& entry, const DtUUID&);
115 
118  virtual void sendSlotInformationTo(const DtUUID&,
119  const DtEmbarkationSlotInformation& entry, int, int reqId = 0xFFFFFFFF);
120 
122  static void deleteVrfObjectCallback(DtVrfObject * msg, void * usr);
123  virtual void processDeleteVrfObjectCallback(DtVrfObject* obj);
124 
129  virtual void processDisembarkAllTask(DtSimMessage* msg);
130  static void disembarkAllTaskCallback(DtSimMessage* msg, void* usr);
131 
133  virtual bool objectDisembarked(const DtUUID&);
137  virtual void disembarkNextObject();
138 
140  virtual void sendTask(const DtSimTask& task, const DtUUID&);
141 
143  static void disembarkObjectCallback(DtSimMessage* msg, void* usr);
146  virtual void processDisembarkObjectCallback(DtSimMessage* msg);
147 
159  virtual DtVector disembarkedPositionFor(const DtUUID&, const DtEmbarkationSlotInformation&) const;
160 
163  virtual bool nextEntityCanDisembark(const DtVrfObject* curEntity) const;
164 
166  virtual bool isValidForDisembarkLayout(const DtVrfObject*) const;
167 
169  virtual bool createCollisionDetector();
170 
172  virtual void setObstructionIDsInCollisionDetector();
173 
174 protected:
178  virtual void setupSlots();
179 
182  virtual void initializeSlotManager();
183 
186  virtual void calculateDisembarkPositions(const std::vector<DtSharedVrfObjectReference>&);
187 
190  virtual void generateListForDisembarkation(std::vector<DtSharedVrfObjectReference>& list);
191 
193  virtual void removeAllSubordinates(DtVrfObject* obj);
194 
195 private:
196 
199 
202  orig);
203 
207 
208 protected:
209 
213 
217 
220  std::set<DtString> myObjectsToDisembark;
221 };

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)