VR-Forces 4.5 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 
68  virtual void preFirstTickInit();
69 
70  virtual void clearTask();
71 
79  static void moveAlongCallback(DtSimMessage* msg, void* usr);
80 
93  virtual void processMoveAlongTask(DtSimMessage * msg);
94 
99  static void routeChangedCallback(DtVrfObject* obj, void* user);
100 
109  static DtReaderWriter* provideCurrentMinTurnRadius(void* controller);
110 
118  static DtReaderWriter* provideTurnRadiusForOrderedSpeed(void* controller);
119 
121  static DtReaderWriter* provideNextRoutePointIndex(void* controller);
123 
131  virtual void processRouteChanged(DtVrfObject* obj);
132 
141  virtual bool atGoal();
142 
151  virtual bool passedGoal();
152 
153 
155 
163  virtual bool targetNextVertex();
164 
165  static void objectAboutToBeRemovedCallback(DtVrfObject* obj, void* usr);
166 
170  static DtSimComponent * creator(const DtString& name,
171  DtVrfObject* owner,
172  DtSimManager* simManager,
173  DtComponentDescriptor* desc = 0,
174  DtReaderWriterRegistry* parentRegistry = 0);
175 
176 protected:
179 
183 
185  const DtSurfaceEntityMoveAlongController& operator=
187 
208  virtual bool getNextRoutePoint(int & index,
209  DtVector * & point);
210 
214  virtual DtVector previousRoutePoint();
215 
223  virtual void setStateForCurrentPoint();
224 
229  virtual bool setupControlPoint();
230 
239  virtual void controlMovement();
240 
244  virtual void moveToMiddleOrFinalPoint();
245 
258  virtual bool shouldMoveToRouteSegment(double& distanceToSegment);
259 
263  virtual void controlMovementToRouteSegment(double distanceToSegment);
264 
273  virtual DtReal computeStartTurnDistance2();
274 
277  virtual DtReal minTurnRadiusForSpeed(double speed) const;
278 
285 
289  virtual void registerTaskMsgCallbacks();
290 
293  virtual void emptyVertexList();
294 
296  virtual void processObjectAboutToBeRemoved(DtVrfObject* obj);
297 
311  virtual double integralControl() const;
314  virtual double integratedErrorDecayRate() const { return 0.9; }
315 
319  virtual double integralControlGain() const { return 0.002; }
321 
322 protected:
327 
333 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)