VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
surfaceEntityPilotController.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 
21 
22 
23 #define DIRECT_HEADING_CONTROL_ANGLE 0.5
24 
25 
26 
27 
28 
29 #define HEADING_GOAL_EPSILON 0.001
30 class DtString;
31 class DtSimManager;
32 class DtAnalogOutputPort;
38 class DtTaskMessage;
40 
75 
79 {
80 
81 public:
82 
89  DtVrfObject* owner,
90  DtSimManager* simManager,
91  DtComponentDescriptor* desc = 0,
92  DtReaderWriterRegistry* parentRegistry = 0);
93 
98 
101  virtual const char* type() const;
102 
105  virtual bool init();
106 
109  virtual void tick();
110 
113  virtual void clearTask();
115  virtual bool createSurfaceControlPortGroup();
116 
118  virtual DtVrfMovingObjectStateRepository* getSR() {return myEntityState;}
119 
125  static DtReaderWriter* provideOrderedSpeed(void* controller);
127 
128 protected:
133  virtual void moveToWithFinalSpeed(const DtVector& localDestination,
134  const double cruiseSpeed, const double finalSpeed);
137  virtual void moveToWithFinalSpeed(const double goalHeading,
138  const double cruiseSpeed, const double finalSpeed);
139 
144  virtual void turn(double desiredRate);
145 
151  virtual void turn(double desiredRate, double desiredHeading);
152 
155  virtual void immediateNormalStop();
156 
157 protected:
168  virtual double calculateControlForTurn(double yawAngle,
169  double desiredRate);
170 
190  virtual double calculateNormalAcceleration(double cruiseSpeed,
191  double distance, double turnAngle, double finalSpeed);
192 
197  virtual double calculateNormalAcceleration(double desiredSpeed);
198 
207  virtual double limitedAcceleration(double desiredAcceleration,
208  double desiredSpeed);
209 
217  virtual double followerAcceleration(double dT,
218  double distance, double maxDeceleration,
219  double followerSpeed, double leaderSpeed);
220 
221 public:
225  static DtSimComponent * creator(const DtString& name,
226  DtVrfObject* owner,
227  DtSimManager* simManager,
228  DtComponentDescriptor* desc = 0,
229  DtReaderWriterRegistry* parentRegistry = 0);
230 
231 protected:
232 
234  virtual bool createPortGroups();
235 
237  virtual bool createPorts();
238 
246  virtual void lookupAndCacheProcessSR();
247 
251  virtual bool postAddComponentsInit();
252 
256  virtual bool decideToGiveUpTask() const;
257 
258 protected:
259 
262 
265  const DtSurfaceEntityPilotController & orig);
266 
269  const DtSurfaceEntityPilotController & orig);
270 
271 
272 protected:
273 
276 
279 
286 
287 
299 
305 
309 
310 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)