VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
28 
34 {
35 public:
36 
37 //****************************************************************************
39 //****************************************************************************
40  DtSpawnController(const DtString& name,
41  DtVrfObject* owner,
42  DtSimManager* simManager,
43  DtComponentDescriptor* desc = 0,
44  DtReaderWriterRegistry* parentRegistry = 0);
45 
47  virtual ~DtSpawnController();
48 
49  virtual const char* type() const;
50 
54  static DtSimComponent * creator(const DtString& name,
55  DtVrfObject* owner,
56  DtSimManager* simManager,
57  DtComponentDescriptor* desc = 0,
58  DtReaderWriterRegistry* parentRegistry = 0);
59 
61  const DtString& templateName() const;
62 
63 //****************************************************************************
65 //****************************************************************************
66  static void settingConsumerCallback(const DtSettingsObject* settingsObject,
67  void* usr);
68 
70 
72  virtual void registerTaskMsgCallbacks();
74 
76  virtual void unregisterTaskMsgCallbacks();
77 
78  virtual bool init();
79  virtual void refreshSpawnTemplateData();
80 
81 protected:
82  virtual void processSetting(const DtBoolSetting* setting);
83 
84  virtual DtSpawnControllerPSR* createPSR();
85 
86 
87 //****************************************************************************
89 //****************************************************************************
90  static void requestSpawnPtDataCallback(const DtVrfObjectMessage * msg,
91  void* usr);
92  virtual void processRequestSpawnPtDataCallback(const DtVrfObjectMessage * msg);
93 
94  static void setTemplateUUIDCallback(const DtVrfObjectMessage * msg, void* usr);
95  virtual void processSetTemplateUUIDCallback(const DtVrfObjectMessage * msg);
96 
97  static void objectRemovedCallback(DtVrfObject* object, void* usr);
98  virtual void processObjectRemoved(DtVrfObject *object);
99 
103  virtual void embarkIfSpawnAttached(DtVrfObject*);
104 
105 //****************************************************************************
107 //****************************************************************************
108 public:
114  virtual void preFirstTickInit();
115 
117  virtual void tick();
118 
119 protected:
120 
121 //****************************************************************************
123 //****************************************************************************
126  virtual std::list<DtVrfObject*> testAndSinkTraffic();
129  virtual bool shouldSinkObject(DtVrfObject* trafficObject,
130  DtVrfObject* sinkPoint);
132  virtual void deleteObjects(const std::list<DtVrfObject*>& objectList);
133 
145  virtual bool canCreateNow(DtTime timeNow, DtRwSpawnData* spawnData) const;
146 
148  virtual DtUUID findSinkPoint();
149 
153  virtual DtTime nextCreationTime(DtTime timeNow, DtRwSpawnData* spawnData);
154 
156  virtual DtVrfObject* createObject(DtVrfObject* sinkPoint, DtRwSpawnData* spawnData,
157  DtVrfObject* objectToRecycle = 0);
159  virtual DtVector creationLocationAndOrientation(double& heading,
160  DtVrfObject* sinkPoint, DtRwSpawnData* spawnData);
161 
164  virtual void createAndSendDefaultPlan(DtVrfObject* obj, const DtUUID& sinkPoint, DtRwSpawnData* spawnData);
165 
168  virtual double trafficSpeed(DtRwSpawnData* spawnData);
169 
171  virtual void sendEntityPlan(DtVrfObject *entity, const DtPlan& plan);
172 
176  virtual bool trafficObjectType(DtRwObjectTypeInfo& objType, DtRwSpawnData* spawnData);
177 
179  void findClosestRoadSpawnPoints();
180 
181  static void clearTemplatesCallback(void* user);
182  virtual void processClearTemplates();
183 
184  static void refreshSpawnTemplateDataCallback(void* user);
185  virtual void processRefreshSpawnTemplateData();
186 
187 protected:
188 
189  virtual DtRwSpawnData* lookupSpawnTemplateData();
190 
191 private:
194 
197 
199  const DtSpawnController & operator=(const DtSpawnController & orig);
200 
201 
202 protected:
203 
208 
214 
217 
218  //DtRwSpawnData* mySpawnTemplateData;
219 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)