WSF
WsfWaypointPathGuidance.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFWAYPOINTPATHGUIDANCE_HPP
16#define WSFWAYPOINTPATHGUIDANCE_HPP
17
18#include "wsf_export.h"
19
20#include "WsfPathGuidance.hpp"
21class WsfWaypoint;
22
25{
26public:
28 // virtual ~WsfWaypointPathGuidance();
29 WsfPathGuidance* Clone() const override;
30 // virtual bool Initialize(double aSimTime, WsfMover* aMoverPtr);
31 bool ProcessInput(UtInput& aInput) override;
32
33 double GetAltitude() const override;
34 double GetSpeed() const override;
35
36 double CalcLateralAccelLimit(double aCurrentSpeed);
37
38 double TurnRateLimit() const { return mTurnRateLimit; }
39 double MaxLinearAccel() const { return mMaxLinearAccel; }
40 double MaxRadialAccel() const { return mMaxRadialAccel; }
41
42 void SetRollRateLimit(double aRollRateLimit) { mRollRateLimit = aRollRateLimit; }
43 double RollRateLimit() const { return mRollRateLimit; }
44
45 void SetHeadingPursuitGain(double aHeadingPursuitGain) { mHeadingPursuitGain = aHeadingPursuitGain; }
46 double HeadingPursuitGain() const { return mHeadingPursuitGain; }
47
48 double MaxClimbRate() const { return mMaxClimbRate; }
49 double MaxFlightPathAngle() const { return mMaxFlightPathAngle; }
50 double DefaultRadialAccel() const { return MaxRadialAccel(); } // Provided for backward compatibility.
51
52 void GetWPTargetInfo(double aVelNED[3],
53 double& aPlatformHeading,
54 double& aPlatformPitch,
55 double& aPlatformRoll,
56 double& aHeadingChangeMag,
57 double& aHdgChgDirection,
58 double& aGroundSpeed,
59 double& aTotalSpeed,
60 double& aGroundDistToTgt,
61 double& aTotalDistToTgt);
62
63 double GetRadialAccelAtPoint(const WsfWaypoint& aPoint) const override;
64
65private:
66 // Straight line or vertical Attributes:
67 double mMaxSpeed; // m/s
68 double mMinSpeed; // m/s
69 double mMaxLinearAccel; // m/s^2
70 double mMaxClimbRate; // m/s
71 double mMaxFlightPathAngle; // radians
72 double mMaxAltitude; // meters
73 double mMinAltitude; // meters
74
75 // Turn Attributes:
76 double mTurnRateLimit; // radians/s
77 double mRollAngleLimit; // radians
78 double mBodyVertLimit; // m/s^2
79 double mMaxRadialAccel; // m/s^2
80 double mRollRateLimit; // radians/s
81 double mHeadingPursuitGain; // non-dim
82};
83
84#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfPathGuidance()
Construct a path guidance object.
Definition WsfPathGuidance.cpp:29
virtual double GetAltitude() const
Definition WsfPathGuidance.cpp:76
virtual bool ProcessInput(UtInput &aInput)
Definition WsfPathGuidance.cpp:118
void GetWPTargetInfo(double aVelNED[3], double &aPlatformHeading, double &aPlatformPitch, double &aPlatformRoll, double &aHeadingChangeMag, double &aHdgChgDirection, double &aGroundSpeed, double &aTotalSpeed, double &aGroundDistTo)
virtual double GetSpeed() const
Definition WsfPathGuidance.cpp:83
virtual double GetRadialAccelAtPoint(const WsfWaypoint &aPoint) const
Definition WsfPathGuidance.cpp:94
virtual WsfPathGuidance * Clone() const
Clone a path guidance object.
Definition WsfPathGuidance.cpp:69
WsfWaypointPathGuidance()
Definition WsfWaypointPathGuidance.cpp:34
double CalcLateralAccelLimit(double aCurrentSpeed)
Definition WsfWaypointPathGuidance.cpp:174
double MaxRadialAccel() const
Definition WsfWaypointPathGuidance.hpp:40
double TurnRateLimit() const
Definition WsfWaypointPathGuidance.hpp:38
double HeadingPursuitGain() const
Definition WsfWaypointPathGuidance.hpp:46
void SetRollRateLimit(double aRollRateLimit)
Definition WsfWaypointPathGuidance.hpp:42
double MaxFlightPathAngle() const
Definition WsfWaypointPathGuidance.hpp:49
double DefaultRadialAccel() const
Definition WsfWaypointPathGuidance.hpp:50
double MaxLinearAccel() const
Definition WsfWaypointPathGuidance.hpp:39
void SetHeadingPursuitGain(double aHeadingPursuitGain)
Definition WsfWaypointPathGuidance.hpp:45
double RollRateLimit() const
Definition WsfWaypointPathGuidance.hpp:43
double MaxClimbRate() const
Definition WsfWaypointPathGuidance.hpp:48
Definition WsfWaypoint.hpp:57
Copyrights Multiple, All Rights Reserved