VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
spawnController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
13 
17 #include <vrfmsgs/rwSpawnData.h>
19 
20 class DtString;
21 class DtVrfObject;
22 class DtSimManager;
23 class DtVrfObjectMessage;
24 class DtRwObjectTypeInfo;
25 class DtSimMessage;
27 
31 
37 {
38 public:
39 
40 //****************************************************************************
42 //****************************************************************************
43  DtSpawnController(const DtString& name,
44  DtVrfObject* owner,
45  DtSimManager* simManager,
46  DtComponentDescriptor* desc = 0,
47  DtReaderWriterRegistry* parentRegistry = 0);
48 
50  virtual ~DtSpawnController();
51 
52  virtual const char* type() const;
53 
57  static DtSimComponent * creator(const DtString& name,
58  DtVrfObject* owner,
59  DtSimManager* simManager,
60  DtComponentDescriptor* desc = 0,
61  DtReaderWriterRegistry* parentRegistry = 0);
62 
64  const DtString& templateName() const;
65 
66 //****************************************************************************
68 //****************************************************************************
69  static void settingConsumerCallback(const DtSettingsObject* settingsObject,
70  void* usr);
71 
73 
75  virtual void registerTaskMsgCallbacks();
77 
79  virtual void unregisterTaskMsgCallbacks();
80 
81  virtual bool init();
82  virtual void refreshSpawnTemplateData();
83 
84 protected:
85  virtual void processSetting(const DtBoolSetting* setting);
86 
87  virtual DtSpawnControllerPSR* createPSR();
88 
90  virtual DtCollisionDetector* createCollisionDetector();
91 
92 //****************************************************************************
94 //****************************************************************************
95  static void requestSpawnPtDataCallback(const DtVrfObjectMessage * msg,
96  void* usr);
97  virtual void processRequestSpawnPtDataCallback(const DtVrfObjectMessage * msg);
98 
99  static void setTemplateUUIDCallback(const DtVrfObjectMessage * msg, void* usr);
100  virtual void processSetTemplateUUIDCallback(const DtVrfObjectMessage * msg);
101 
102  static void objectRemovedCallback(DtVrfObject* object, void* usr);
103  virtual void processObjectRemoved(DtVrfObject *object);
104 
108  virtual void embarkIfSpawnAttached(DtVrfObject*);
109 
110 //****************************************************************************
112 //****************************************************************************
113 public:
119  virtual void preFirstTickInit();
120 
122  virtual void tick();
123 
124 protected:
125 
126 //****************************************************************************
128 //****************************************************************************
131  virtual std::list<DtVrfObject*> testAndSinkTraffic();
134  virtual bool shouldSinkObject(DtVrfObject* trafficObject,
135  DtVrfObject* sinkPoint);
137  virtual void deleteObjects(const std::list<DtVrfObject*>& objectList);
138 
150  virtual bool canCreateNow(DtTime timeNow, DtRwSpawnData* spawnData) const;
151 
153  virtual DtUUID findSinkPoint();
154 
158  virtual DtTime nextCreationTime(DtTime timeNow, DtRwSpawnData* spawnData);
159 
161  virtual DtVrfObject* createObject(DtVrfObject* sinkPoint, DtRwSpawnData* spawnData,
162  DtVrfObject* objectToRecycle, bool& dataAvailable);
164  virtual DtVector creationLocationAndOrientation(double& heading,
165  DtVrfObject* sinkPoint, DtRwSpawnData* spawnData, bool& dataAvailable);
166 
169  virtual void createAndSendDefaultPlan(DtVrfObject* obj, const DtUUID& sinkPoint, DtRwSpawnData* spawnData);
170 
173  virtual double trafficSpeed(DtRwSpawnData* spawnData);
174 
176  virtual void sendEntityPlan(DtVrfObject *entity, const DtPlan& plan);
177 
181  virtual bool trafficObjectType(DtRwObjectTypeInfo& objType, DtRwSpawnData* spawnData);
182 
184  void findClosestRoadSpawnPoints();
185 
186  static void clearTemplatesCallback(void* user);
187  virtual void processClearTemplates();
188 
189  static void refreshSpawnTemplateDataCallback(void* user);
190  virtual void processRefreshSpawnTemplateData();
191 
194  virtual bool startLocationTaken(DtVrfObject*, const DtVector& geocentricLocation);
195  virtual bool startLocationTaken(const DtObjectType&, const DtVector& geocentricLocation);
196 
197 protected:
198 
199  virtual DtRwSpawnData* lookupSpawnTemplateData();
200 
201 private:
204 
207 
209  const DtSpawnController & operator=(const DtSpawnController & orig);
210 
211 
212 protected:
213 
218 
224 
227 
232  //DtRwSpawnData* mySpawnTemplateData;
233 
236 };

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)