VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fixedWingFollowEntityController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2003 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
13 
15 
16 #include <vlutil/vlString.h>
17 #include <matrix/vlVector.h>
18 
19 class DtSimManager;
20 class DtSimMessage;
21 
22 
33 {
34 
35 public:
36 
40  DtVrfObject* owner,
41  DtSimManager* simManager,
42  DtComponentDescriptor* desc = 0,
43  DtReaderWriterRegistry* parentRegistry = 0);
46 
49  virtual const char* type() const;
50 
54  virtual void tick();
55 
57  virtual void doMoving();
58  virtual void doFlying();
59  virtual void doTaxiing();
60 
64  static void followEntityCallback(DtSimMessage * msg, void * usrData);
65  virtual void processFollowEntityTask(DtSimMessage * msg);
66 
67  virtual const DtUUID& entityToFollow() const;
68  virtual void setEntityToFollow(const DtUUID& entity);
69 
70  virtual const DtVector& offsetVector() const;
71  virtual void setOffsetVector(const DtVector& offsets);
72 
76  static DtSimComponent * creator(const DtString& name,
77  DtVrfObject* owner,
78  DtSimManager* simManager,
79  DtComponentDescriptor* desc = 0,
80  DtReaderWriterRegistry* parentRegistry = 0);
81 
82 protected:
86 
89  orig);
90 
94 
96  virtual void registerTaskMsgCallbacks();
97 
102  virtual bool setupControlPoint();
103 
117  virtual bool getCurrentLeaderState(DtVector& localPosition,
118  DtVector& localVelocity, DtTaitBryan& topoOrientation,
119  DtVector& topoRotationRate);
120 
122  virtual double findDesiredFlyingSpeed(
123  const double leaderSpeed,
124  const double forwardPositionError);
125 
131  virtual double flyingControlSpeed(double targetSpeed,
132  double targetDistance);
133 
149  virtual double calculateControlTurnRate(
150  double desiredHeading, double distanceFromLine, double dt);
151 
160  virtual double calculateControlClimbRate(double altitudeDiff,
161  DtVector& topoEntityCurrentVelocity,
162  DtVector& topoNextTickVelocity,
163  double dt);
164 
184  virtual double desiredHeading(double estimatedTurnRadius,
185  DtVector& topoEntityToGoal,
186  DtVector& topoGoalHorizDirection,
187  DtVector& topoEntityVelocity, DtVector& topoNextVelocity,
188  double dt);
189 
193  DtVector predictedMove(const DtVector& vInitial,
194  const DtVector& vFinal, double dt);
195 
197  virtual double findDesiredSpeed();
198 
199  virtual double lastHeadingError() const;
200  virtual void setLastHeadingError(const double error);
201 
204  virtual double integratedHorizontalError() const;
205  virtual void setIntegratedHorizontalError(const double error);
208  virtual void updateIntegratedHorizontalError(const double currentError,
209  const double dt, const double decayRate);
211 
213 
214 protected:
215 
218 
221 
226  double myStationSpeed;
230 
233 
237 
240 
244  std::vector<DtVector> myVisLine;
246  {
252  nearLineRegion
253  };
256 };
257 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)