VR-Forces 4.7 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 
106  virtual DtEmbarkationSlotInformation embarkationSlotEntryFor(const DtString& slotName, const DtString& slotType, const DtUUID&) const;
107 
110  virtual DtEmbarkationSlotInformation disembarkationInformationFor(const DtUUID&, int& iResult) const;
111 
113  virtual int disembarkationResult(const DtEmbarkationSlotInformation&) const;
114 
117  virtual bool reserveSlot(const DtEmbarkationSlotInformation& entry, const DtUUID&);
118 
121  virtual void sendSlotInformationTo(const DtUUID&,
122  const DtEmbarkationSlotInformation& entry, int, bool forEmbarkation, int reqId = 0xFFFFFFFF);
123 
125  static void deleteVrfObjectCallback(DtVrfObject * msg, void * usr);
126  virtual void processDeleteVrfObjectCallback(DtVrfObject* obj);
127 
132  virtual void processDisembarkAllTask(DtSimMessage* msg);
133  static void disembarkAllTaskCallback(DtSimMessage* msg, void* usr);
134 
136  virtual bool objectDisembarked(const DtUUID&);
140  virtual void disembarkNextObject();
141 
143  virtual void sendTask(const DtSimTask& task, const DtUUID&);
144 
146  static void disembarkObjectCallback(DtSimMessage* msg, void* usr);
149  virtual void processDisembarkObjectCallback(DtSimMessage* msg);
150 
162  virtual DtVector disembarkedPositionFor(const DtUUID&, const DtEmbarkationSlotInformation&) const;
163 
166  virtual bool nextEntityCanDisembark(const DtVrfObject* curEntity) const;
167 
169  virtual bool isValidForDisembarkLayout(const DtVrfObject*) const;
170 
172  virtual bool createCollisionDetector();
173 
175  virtual void setObstructionIDsInCollisionDetector();
176 
177 protected:
181  virtual void setupSlots();
182 
185  virtual void initializeSlotManager();
186 
189  virtual void calculateDisembarkPositions(const std::vector<DtSharedVrfObjectReference>&);
190 
193  virtual void generateListForDisembarkation(std::vector<DtSharedVrfObjectReference>& list);
194 
196  virtual void removeAllSubordinates(DtVrfObject* obj);
197 
198 private:
199 
202 
205  orig);
206 
210 
211 protected:
212 
216 
220 
223  std::set<DtString> myObjectsToDisembark;
224 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)