15#ifndef WSFFOLLOWER_HPP
16#define WSFFOLLOWER_HPP
18#include "wsf_export.h"
47 void Update(
double aSimTime)
override;
57 void SetLocationLLA(
double aLatitude,
double aLongitude,
double aAltitude);
58 void SetSpeed(
double aSpeed) { mInitSpeed = aSpeed; }
59 void SetHeading(
double aHeading)
override { mInitHeading = aHeading; }
71 void FollowThis(
double aTimeStamp,
double aLocationWCS[3],
double aVelocityWCS[3]);
75 void AdvanceTime(
double aSimTime);
78 void UpdateFollowPosAndVel(
double aSimTime);
81 void ImposeTurnLimits(
double aHeadingChangeMag,
82 double aHeadingChangeDir,
83 double aHorizGroundSpeed,
89 inline double MinimumPositiveValue(
double aValue1,
double aValue2,
double aValue3,
double aValue4)
const;
97 bool mHasBeenInitialized;
100 double mInitLatitudeDeg;
101 double mInitLongitudeDeg;
102 double mInitAltitude;
110 double mTargetTimeStamp;
111 double mTargetLocWCS[3];
112 double mTargetVelWCS[3];
115 double mLastTargetTimeStamp;
116 double mLastTargetLocWCS[3];
119 double mTargetExtrapTimeStamp;
120 double mTargetExtrapLocWCS[3];
121 double mTargetExtrapUnitLOSNED[3];
122 double mTargetExtrapAlt;
124 double mTargetForward;
125 double mTargetFwdRate;
129 double mMaxAxialAccel;
130 double mMaxClimbRate;
135 double mMaxRadialAccel;
137 double mMaxBankAngle;
138 double mMaxVertBodyAccel;
141 double mVelPursuitGain;
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
@ WSF_SPATIAL_DOMAIN_AIR
Cars, trucks, buildings, etc.
Definition WsfTypes.hpp:35
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfFollower.hpp:36
void OutputVec3d(std::string &aLabel, double aVec[])
~WsfFollower() override=default
bool IsInitialized() const
Definition WsfFollower.hpp:52
void DontFollowThis()
Definition WsfFollower.hpp:72
WsfFollower & operator=(const WsfFollower &)=delete
void SetHeading(double aHeading) override
Definition WsfFollower.hpp:59
WsfSpatialDomain GetSpatialDomain() const override
Definition WsfFollower.hpp:50
void FollowThis(double aTimeStamp, double aLocationWCS[3], double aVelocityWCS[3])
Definition WsfFollower.cpp:301
void OutputDiagnostic(double aSimTime, WsfPlatform *aPlatformPtr)
Used to output data when debugging.
void SetSpeed(double aSpeed)
Definition WsfFollower.hpp:58
bool GetTargetIsValid()
Returns true if the target information is valid.
Definition WsfFollower.hpp:63
bool ProcessInput(UtInput &aInput) override
Definition WsfMover.cpp:138
bool Initialize(double aSimTime) override
Definition WsfMover.cpp:108
WsfMover * Clone() const override=0
void Update(double aSimTime) override
Definition WsfMover.cpp:310
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111