VR-Forces 4.8 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  static void requestEmbarkationEgressPointsCallback(DtSimMessage* msg, void* usr);
81  virtual void processRequestEmbarkationEgressPoints(DtSimMessage* msg);
82 
83 protected:
85  virtual void registerTaskMsgCallbacks();
86 
89  virtual void preFirstTickInit();
90 
92  virtual void tick();
93 
99  virtual bool createPSR();
100 
102  virtual void giveUpSlot(int iSlot, const DtUUID&);
103 
105  virtual DtEmbarkationSlotInformation embarkationSlotEntryFor(const DtUUID&) const;
106  virtual DtEmbarkationSlotInformation embarkationSlotEntryFor(int slot, const DtUUID&) const;
107 
109  virtual DtEmbarkationSlotInformation embarkationSlotEntryFor(const DtString& slotName, const DtString& slotType, const DtUUID&) const;
110 
113  virtual DtEmbarkationSlotInformation disembarkationInformationFor(const DtUUID&, int& iResult) const;
114 
116  virtual int disembarkationResult(const DtEmbarkationSlotInformation&) const;
117 
120  virtual bool reserveSlot(const DtEmbarkationSlotInformation& entry, const DtUUID&);
121 
124  virtual void sendSlotInformationTo(const DtUUID&,
125  const DtEmbarkationSlotInformation& entry, int, bool forEmbarkation, int reqId = 0xFFFFFFFF);
126 
128  static void deleteVrfObjectCallback(const DtVrfObject* msg, void * usr);
129  virtual void processDeleteVrfObjectCallback(const DtVrfObject* obj);
130 
135  virtual void processDisembarkAllTask(DtSimMessage* msg);
136  static void disembarkAllTaskCallback(DtSimMessage* msg, void* usr);
137 
139  virtual bool objectDisembarked(const DtUUID&);
143  virtual void disembarkNextObject();
144 
146  virtual void sendTask(const DtSimTask& task, const DtUUID&);
147 
149  static void disembarkObjectCallback(DtSimMessage* msg, void* usr);
152  virtual void processDisembarkObjectCallback(DtSimMessage* msg);
153 
165  virtual DtVector disembarkedPositionFor(const DtUUID&, const DtEmbarkationSlotInformation&) const;
166 
169  virtual bool nextEntityCanDisembark(const DtVrfObject* curEntity) const;
170 
172  virtual bool isValidForDisembarkLayout(const DtVrfObject*) const;
173 
175  virtual bool createCollisionDetector();
176 
178  virtual void setObstructionIDsInCollisionDetector();
179 
180 protected:
184  virtual void setupSlots();
185 
188  virtual void initializeSlotManager();
189 
192  virtual void calculateDisembarkPositions(const std::vector<DtSharedVrfObjectReference>&);
193 
196  virtual void generateListForDisembarkation(std::vector<DtSharedVrfObjectReference>& list);
197 
199  virtual void removeAllSubordinates(const DtVrfObject* obj);
200 
201 private:
202 
205 
208  orig);
209 
213 
214 protected:
215 
219 
223 
226  std::set<DtString> myObjectsToDisembark;
227 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Class DtOccupancyDirectorDescriptor is a DtComponentDescriptor that has parameters that configure the...
Definition: occupancyDirectorDescriptor.h:33
virtual void registerTaskMsgCallbacks()
Definition: embarkationSlotManager.h:91
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
Definition: readerWriterRegistry.h:39
virtual const char * type() const =0
Returns a string identifies the class type of component.
DtCollisionDetector * myCollisionDetector
Definition: occupancyDirectorController.h:222
Definition: embarkationSlotManager.h:38
virtual bool init()
Calls setRadio()
DtEmbarkationSlotEntry.
Definition: embarkationSlotEntry.h:27
const DtOccupancyDirectorDescriptor * myOccupancyDirectorDescriptor
Definition: occupancyDirectorController.h:220
File: simMsg.h.
Definition: simMessage.h:35
class DtVrfOccupancyDirectorPSR:
Definition: vrfOccupancyDirectorPSR.h:27
virtual void tick()
This gives the thread of control to the component.
DtEmbarkationSlotManager * mySlotManager
Definition: occupancyDirectorController.h:221
The DtCollisionDetector is a class used to detect collisions between a specified list of obstructions...
Definition: collisionDetector.h:55
DtOccupancyDirectorController allocates reserved embarkation slots and determines which (if any) obje...
Definition: occupancyDirectorController.h:42
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtVrfOccupancyDirectorPSR * myProcessState
Container for state data associated with this component.
Definition: occupancyDirectorController.h:218
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:33
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
std::set< DtString > myObjectsToDisembark
Variable to control which units were disembarked by a superior to avoid multi messages.
Definition: occupancyDirectorController.h:226

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)