VR-Forces 4.2 Class Documentation
surfEntPltCtl.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 
16 #define REDUCED_ACCELERATION_FACTOR 0.5
17 
18 #define PROPORTIONAL_SPEED_CONTROL 1.0
19 
20 #define PROPORTIONAL_TURN_CONTROL 5.0
21 
22 
23 
24 
25 #define DIRECT_HEADING_CONTROL_ANGLE 0.5
26 
27 
28 
29 
30 
31 #define HEADING_GOAL_EPSILON 0.001
32 class DtString;
33 class DtSimManager;
34 class DtAnalogOutputPort;
40 class DtTaskMessage;
42 
77 
81 {
82 
83 public:
84 
91  DtVrfObject* owner,
92  DtSimManager* simManager,
93  DtComponentDescriptor* desc = 0,
94  DtReaderWriterRegistry* parentRegistry = 0);
95 
100 
103  virtual DtString type() const;
104 
107  virtual bool init();
108 
111  virtual void tick();
112 
115  virtual void clearTask();
117  virtual bool createSurfaceControlPortGroup();
118 
120  virtual DtVrfMovingObjectStateRepository* getSR() {return myEntityState;}
121 
127  static DtReaderWriter* provideOrderedSpeed(void* controller);
129 
130 protected:
135  virtual void moveToWithFinalSpeed(const DtVector& localDestination,
136  const double cruiseSpeed, const double finalSpeed);
139  virtual void moveToWithFinalSpeed(const double goalHeading,
140  const double cruiseSpeed, const double finalSpeed);
141 
146  virtual void turn(double desiredRate);
147 
153  virtual void turn(double desiredRate, double desiredHeading);
154 
157  virtual void immediateNormalStop();
158 
159 protected:
170  virtual double calculateControlForTurn(double yawAngle,
171  double desiredRate);
172 
192  virtual double calculateNormalAcceleration(double cruiseSpeed,
193  double distance, double turnAngle, double finalSpeed);
194 
199  virtual double calculateNormalAcceleration(double desiredSpeed);
200 
209  virtual double limitedAcceleration(double desiredAcceleration,
210  double desiredSpeed);
211 
219  virtual double followerAcceleration(double dT,
220  double distance, double maxDeceleration,
221  double followerSpeed, double leaderSpeed);
222 
223 public:
227  static DtSimComponent * creator(const DtString& name,
228  DtVrfObject* owner,
229  DtSimManager* simManager,
230  DtComponentDescriptor* desc = 0,
231  DtReaderWriterRegistry* parentRegistry = 0);
232 
233 protected:
234 
236  virtual bool createPortGroups();
237 
239  virtual bool createPorts();
240 
248  virtual void lookupAndCacheProcessSR();
249 
253  virtual bool postAddComponentsInit();
254 
258  virtual bool decideToGiveUpTask() const;
259 
260 protected:
261 
264 
267  const DtSurfaceEntityPilotController & orig);
268 
271  const DtSurfaceEntityPilotController & orig);
272 
273 
274 protected:
275 
278 
281 
288 
289 
301 
307 
311 
312 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)