VR-Forces 4.1 Class Documentation
railPathController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include <matrix/vlVector.h>
16 #include "vrftasks/setDataReq.h"
17 #include "vrfutil/railSegment.h"
18 
19 class DtRailPathTask;
22 class DtAsyncJobToken;
23 
55 {
56 private:
63 
64 public:
65 
68  DtRailPathController(const DtString& name,
69  DtVrfObject* owner,
70  DtSimManager* simManager,
71  DtComponentDescriptor* desc = NULL,
72  DtReaderWriterRegistry* parentRegistry = NULL);
73 
74  virtual ~DtRailPathController();
75 
77  virtual bool init();
78 
84  virtual bool createPSR();
85 
86  virtual void preFirstTickInit();
87 
88  virtual bool beginProcessingTask(const DtTaskMessage& msg, DtSimTaskStatePtr taskState);
89 
92  virtual DtString type() const;
93 
95  virtual void registerTaskMsgCallbacks();
96 
97  static void taskCompleteReportCallback(DtSimMessage* msg, void* usr);
98 
99  virtual void processTaskCompleteReport(DtSimMessage* msg);
100 
101  static void destinationChangedCallback(DtVrfObject* obj, void* usrData);
102 
107  virtual void processDestinationChanged(DtVrfObject* obj);
108 
111 
112  static void objectAboutToBeRemovedCallback(DtVrfObject* obj, void* usr);
113  virtual void processObjectAboutToBeRemoved(DtVrfObject* obj);
115 
119 
120  static void setLocationCompleteCallback(DtVrfObject*, void* usr);
121  virtual void processSetLocationComplete();
123 
125  virtual void tick();
126 
127 protected:
128  virtual void clearCurrentPath();
129  virtual bool setupPathFromRailList(DtRailSegmentList*, bool testRange = true);
130  virtual bool setupPathFromRoute(DtVrfObject* route, bool startClosestPoint, DtIteratorDirection traversalDirection);
131 
133  virtual bool isEntityCloseEnoughToRoad(
134  DtRailSegment* railSegment, double distance, double& actualDistSq) const;
135 
136  double maxSearchRadius(const DtVector& start, const DtVector& end);
137 
141  virtual void registerDestinationChangedCallback();
142 
145  virtual void unregisterDestinationChangedCallback();
146 
150  virtual DtVrfObject* publishDebugPath(DtRailSegmentList*);
151 
154  virtual void removeDebugPath();
155 
157  virtual bool setupPathToDestination(const DtVector& start, const DtVector& end);
158 
162  virtual void clearTask();
163 
164 public:
165 
169  static DtSimComponent * creator(const DtString& name,
170  DtVrfObject* owner,
171  DtSimManager* simManager,
172  DtComponentDescriptor* desc = 0,
173  DtReaderWriterRegistry* parentRegistry = 0);
174 
175 protected:
178 
182 
185 };
186 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)