VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
surfaceEntityMoveAlongController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
15 
16 class DtString;
17 class DtSimManager;
18 class DtRouteState;
19 class DtSimMessage;
20 
21 
37 
40 {
41 
42 public:
43 
47  DtVrfObject* owner,
48  DtSimManager* simManager,
49  DtComponentDescriptor* desc = 0,
50  DtReaderWriterRegistry* parentRegistry = 0);
51 
57 
60  virtual const char* type() const;
61 
63  virtual bool init();
64 
65  virtual void clearTask();
66 
74  static void moveAlongCallback(DtSimMessage* msg, void* usr);
75 
88  virtual void processMoveAlongTask(DtSimMessage * msg);
89 
94  static void routeChangedCallback(DtVrfObject* obj, void* user);
95 
104  static DtReaderWriter* provideCurrentMinTurnRadius(void* controller);
105 
113  static DtReaderWriter* provideTurnRadiusForOrderedSpeed(void* controller);
114 
116  static DtReaderWriter* provideNextRoutePointIndex(void* controller);
118 
126  virtual void processRouteChanged(DtVrfObject* obj);
127 
136  virtual bool atGoal();
137 
146  virtual bool passedGoal();
147 
148 
150 
158  virtual bool targetNextVertex();
159 
160  static void objectAboutToBeRemovedCallback(DtVrfObject* obj, void* usr);
161 
165  static DtSimComponent * creator(const DtString& name,
166  DtVrfObject* owner,
167  DtSimManager* simManager,
168  DtComponentDescriptor* desc = 0,
169  DtReaderWriterRegistry* parentRegistry = 0);
170 
171 protected:
174 
178 
180  const DtSurfaceEntityMoveAlongController& operator=
182 
203  virtual bool getNextRoutePoint(int & index,
204  DtVector * & point);
205 
209  virtual DtVector previousRoutePoint();
210 
218  virtual void setStateForCurrentPoint();
219 
224  virtual bool setupControlPoint();
225 
234  virtual void controlMovement();
235 
239  virtual void moveToMiddleOrFinalPoint();
240 
253  virtual bool shouldMoveToRouteSegment(double& distanceToSegment);
254 
258  virtual void controlMovementToRouteSegment(double distanceToSegment);
259 
268  virtual DtReal computeStartTurnDistance2();
269 
272  virtual DtReal minTurnRadiusForSpeed(double speed) const;
273 
280 
284  virtual void registerTaskMsgCallbacks();
285 
288  virtual void emptyVertexList();
289 
291  virtual void processObjectAboutToBeRemoved(DtVrfObject* obj);
292 
293 protected:
298 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)