VR-Forces 4.8 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(const DtVrfObject* object, void* usr);
103  virtual void processObjectRemoved(const DtVrfObject *object);
104 
108  virtual void embarkIfSpawnAttached(const 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<const DtVrfObject*> testAndSinkTraffic();
134  virtual bool shouldSinkObject(const DtVrfObject* trafficObject,
135  const DtVrfObject* sinkPoint) const;
137  virtual void deleteObjects(const std::list<const 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(const DtVrfObject* sinkPoint, const DtRwSpawnData* spawnData,
162  DtVrfObject* objectToRecycle, bool& dataAvailable);
164  virtual DtVector creationLocationAndOrientation(double& heading,
165  const DtVrfObject* sinkPoint, const 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, const 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(const 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 
238 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtPoint myClosestRoadEdgeA
Definition: spawnController.h:222
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
bool myShowRoadDistanceWarning
Definition: spawnController.h:225
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
const DtControllerComponent & operator=(const DtControllerComponent &orig)
assignment operator
Definition: boolSetting.h:30
This controller is part of the traffic spawn system.
Definition: spawnController.h:36
DtPoint myClosestRoadEdgeB
Definition: spawnController.h:223
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
virtual const char * type() const =0
This returns a string from compTypes.h, and identifies the type of component.
bool myWarnedSinkOnce
Definition: spawnController.h:231
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
Descriptor for DtSpawnController.
Definition: spawnControllerDescriptor.h:21
Definition: readerWriterRegistry.h:39
virtual bool init()
Calls setRadio()
DtCollisionDetector * myCollisionDetector
Definition: spawnController.h:235
Definition: settingsObject.h:27
bool myWarnedOnce
Definition: spawnController.h:230
DtPoint myCachedLocation
Definition: spawnController.h:219
Definition: objectType.h:27
Process state repository used to store runtime state of the DtSpawnController.
Definition: spawnControllerPSR.h:23
bool myDrivingOnLeftEnabled
Definition: spawnController.h:216
int myAwaitingToBeCreated
Count of number of objects that are pending to be created due to data not being available.
Definition: spawnController.h:229
Base library for data that is used to control how spawn points generate entities. ...
Definition: rwSpawnData.h:37
File: simMsg.h.
Definition: simMessage.h:35
virtual void tick()
This gives the thread of control to the component.
DtRwObjectTypeInfo holds a display name and force number along with the type enumeration.
Definition: rwObjectTypeInfo.h:28
The DtCollisionDetector is a class used to detect collisions between a specified list of obstructions...
Definition: collisionDetector.h:55
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
DtVrfOverlayObjectStateRepository * myStateRepository
Definition: spawnController.h:234
DtReal mySinkPointRadiusSq
Definition: spawnController.h:217
End User Description: DtControllerComponent is the base class for all controllers components...
Definition: controllerComponent.h:29
class DtPlan:
Definition: plan.h:90
const DtSpawnControllerDescriptor * myTrafficSourceDescriptor
Definition: spawnController.h:215
float myScaleFactor
Definition: spawnController.h:237
DtPoint myClosestRoadPoint
Definition: spawnController.h:221
bool myFoundRoadPoints
Definition: spawnController.h:220
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
Definition: vrfOverlayObjectStateRepository.h:29
bool myDataReady
Definition: spawnController.h:226
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtSpawnControllerPSR * myProcessState
Definition: spawnController.h:214
Definition: point.h:34

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)