VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
surfaceEntityFollowEntityController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2007 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
14 #include "vrfutil/scriptGeometry.h"
15 
16 class DtSimManager;
17 class DtSimMessage;
18 class DtString;
19 class DtSimManager;
20 class DtAnalogOutputPort;
26 class DtTaskMessage;
28 
30 typedef enum
31 {
43 
47 {
48 
49 public:
50 
54  DtVrfObject* owner,
55  DtSimManager* simManager,
56  DtComponentDescriptor* desc = 0,
57  DtReaderWriterRegistry* parentRegistry = 0);
58 
63 
66  virtual const char* type() const;
67 
70  virtual bool init();
71 
80  static void followEntityCallback(DtSimMessage* msg, void* usrData);
81 
88  virtual void processFollowEntityTask(DtSimMessage* msg);
89 
93  virtual void registerTaskMsgCallbacks();
94 
95  virtual void tick();
96 
99  virtual void clearTask();
101  virtual bool createSurfaceControlPortGroup();
102 
103 protected:
110  virtual bool setupControlPoint();
111 
135  virtual void controlMovement();
136 
142  virtual void moveTowardProjectedStationPosition(double distanceToStation,
144  double approachDistance);
145 
153  virtual void moveBackToApproachPoint(bool onLeftSide, double approachDistance,
155  double turnRadius);
156 
163  virtual void turnToProjectedStationLine(
164  bool isOnLeft, double radius, double distanceToSegment);
165 
170  virtual void accelToCatchUp(double stationSpeed, double entitySpeed,
171  double distanceBehindStation);
172 
183  virtual void accelToDropBack(double stationSpeed,
184  double entitySpeed, double distanceAheadOfStation,
185  double distanceFromLine);
186 
192  virtual void turnAtSpeed(double desiredHeading,
193  double desiredSpeed);
194 
201  virtual bool willOverrunPoint(double distanceAhead, double distanceFromLine,
202  double entitySpeed, double turnRadius, double pointSpeed, double maxWaitTime);
203 
207  virtual double calculateAcceleration(double desiredSpeed);
208 
212  virtual double limitAcceleration(double desiredAcceleration,
213  double desiredSpeed);
214 
216  virtual bool createPortGroups();
217 
219  virtual bool createPorts();
220 
228  virtual void lookupAndCacheProcessSR();
229 
233  virtual bool postAddComponentsInit();
234 
238  virtual bool decideToGiveUpTask() const;
239 
240 public:
244  static DtSimComponent* creator(const DtString& name,
245  DtVrfObject* owner,
246  DtSimManager* simManager,
247  DtComponentDescriptor* desc = 0,
248  DtReaderWriterRegistry* parentRegistry = 0);
249 
250 protected:
253 
257 
261 
262 protected:
265 
268 
275 
276 
288 
294 
295 
301 
304 //? DtVector2D myNEVelocity;
305 
311 
317 
324 
327 };

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)