15#ifndef WSFROTORCRAFTMOVER_HPP
16#define WSFROTORCRAFTMOVER_HPP
18#include "UtControl.hpp"
22#include "wsf_export.h"
24#include "UtPID_Controller.hpp"
25#include "UtVec3dX.hpp"
81 bool GoToLocation(
double aSimTime,
double aLatitude,
double aLongitude,
double aAltitude)
override;
83 bool GoToAltitude(
double aSimTime,
double aAltitude,
double aClimbDiveRate,
bool aKeepRoute)
override;
85 bool GoToSpeed(
double aSimTime,
double aSpeed,
double aLinearAccel,
bool aKeepRoute)
override;
87 bool Unpause(
double aSimTime,
bool aInterrupt)
override;
104 void Deselect(
double aSimTime)
override;
105 void Select(
double aSimTime)
override;
147 void LocalUpdate(
double aSimTime,
bool& aMoved,
bool& aAdvanceToNextWaypoint)
override;
149 bool ComputeAccel(
double aCurrentRate,
double aCurrentValue,
double aTargetValue,
double aCriticalAccel,
double& aCriticalTime);
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
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
bool ProcessInput(UtInput &aInput) override
Definition WsfIterativeRouteMover.cpp:97
virtual void LocalUpdate(double aSimTime, bool &aMoved, bool &aAdvanceToNextWaypoint)=0
bool GoToAltitude(double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute) override
Definition WsfIterativeRouteMover.cpp:675
bool GoToLocation(double aSimTime, double aLatitude, double aLongitude, double aAltitude) override
Definition WsfIterativeRouteMover.cpp:697
bool TurnToHeading(double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection) override
Definition WsfIterativeRouteMover.cpp:737
WsfIterativeRouteMover()=delete
bool Initialize(double aSimTime) override
Definition WsfIterativeRouteMover.cpp:82
bool GoToSpeed(double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute) override
Definition WsfIterativeRouteMover.cpp:718
WsfMode()
Definition WsfMode.cpp:15
WsfMoverMode()
Definition WsfMoverMode.cpp:30
WsfMover * Clone() const override=0
virtual void SetOrientationNED(double aHeading, double aPitch, double aRoll)
Definition WsfMover.cpp:240
virtual void SetMode(WsfStringId aModeName)
Definition WsfMover.cpp:543
virtual void SetHeading(double aHeading)
Definition WsfMover.cpp:207
A 'mode' of the Rotorcraft Mover.
Definition WsfRotorcraftMover.hpp:92
void Deselect(double aSimTime) override
Definition WsfRotorcraftMover.cpp:1142
double mMinimumUpwardAccel
Definition WsfRotorcraftMover.hpp:109
double mMaximumRateOfDescent
Definition WsfRotorcraftMover.hpp:113
double mWeathercockSpeed
Definition WsfRotorcraftMover.hpp:107
WsfMode * Clone() const override
Create an exact duplicate of this mode.
Definition WsfRotorcraftMover.cpp:1080
double mBodyRatesGain
Definition WsfRotorcraftMover.hpp:110
double mMaximumTotalAccel
Definition WsfRotorcraftMover.hpp:114
double mMaximumGroundSpeed
Definition WsfRotorcraftMover.hpp:111
bool ProcessInput(UtInput &aInput) override
Definition WsfRotorcraftMover.cpp:1087
static const double cNOT_SET
Definition WsfRotorcraftMover.hpp:94
double mMaximumRateOfClimb
Definition WsfRotorcraftMover.hpp:112
double mMaximumAttitudeRate
Definition WsfRotorcraftMover.hpp:108
~RotorcraftMode() override=default
RotorcraftMode()
Definition WsfRotorcraftMover.cpp:1051
RotorcraftMode & operator=(const RotorcraftMode &)=delete
void Select(double aSimTime) override
Definition WsfRotorcraftMover.cpp:1149
double BodyRatesGain() const
Definition WsfRotorcraftMover.cpp:267
void SetAltitudeHold(double aSimTime, bool aValue)
Definition WsfRotorcraftMover.cpp:360
UtVec3dX mPrevLocWCS
Definition WsfRotorcraftMover.hpp:200
double mAltitude
Definition WsfRotorcraftMover.hpp:228
UtVec3dX mAccelNED
Definition WsfRotorcraftMover.hpp:190
void SetModeId_P(WsfStringId aModeId)
Definition WsfRotorcraftMover.cpp:437
double mAltitudeError
Definition WsfRotorcraftMover.hpp:231
WsfWaypointPathGuidance * mWPP_GuidancePtr
Definition WsfRotorcraftMover.hpp:222
UtDCM mDcmNEDtoECS
Definition WsfRotorcraftMover.hpp:213
void SetPositionHold(double aSimTime, bool aValue)
Definition WsfRotorcraftMover.cpp:345
WsfStringId mStartModeId
Definition WsfRotorcraftMover.hpp:164
UtVec3dX mVelNED_Error
Definition WsfRotorcraftMover.hpp:203
UtPID_Controller mEastAccelRatePID
Definition WsfRotorcraftMover.hpp:219
UtPID_Controller mEastAccelValuePID
Definition WsfRotorcraftMover.hpp:216
double mGroundSpeed
Definition WsfRotorcraftMover.hpp:230
UtPID_Controller mVerticalAccelRatePID
Definition WsfRotorcraftMover.hpp:220
UtVec3dX mNED_Error
Definition WsfRotorcraftMover.hpp:202
UtVec3dX mLocWCS
Definition WsfRotorcraftMover.hpp:199
bool mIsWeatherCocking
Definition WsfRotorcraftMover.hpp:166
double mReductionRatio
Definition WsfRotorcraftMover.hpp:234
bool mIsAltitudeHold
Definition WsfRotorcraftMover.hpp:168
unsigned int mFlightIndex
Definition WsfRotorcraftMover.hpp:162
double mHeadingRad
Definition WsfRotorcraftMover.hpp:180
double WeathercockSpeed() const
Definition WsfRotorcraftMover.cpp:280
WsfRotorcraftMover & operator=(const WsfRotorcraftMover &)=delete
double mCourseRad
Definition WsfRotorcraftMover.hpp:177
UtVec3dX mDesiredVelNED
Definition WsfRotorcraftMover.hpp:187
double mAltErrToROC_Gain
Definition WsfRotorcraftMover.hpp:178
UtPID_Controller mVerticalAccelValuePID
Definition WsfRotorcraftMover.hpp:217
double mPosHoldCaptureRadius
Definition WsfRotorcraftMover.hpp:183
UtControl::TF_1V mEastTipFilter
Definition WsfRotorcraftMover.hpp:208
bool mNeedToClimb
Definition WsfRotorcraftMover.hpp:167
double mAltitudeRate
Definition WsfRotorcraftMover.hpp:229
WsfRotorcraftMover()=delete
WsfSpatialDomain GetSpatialDomain() const override
Definition WsfRotorcraftMover.hpp:71
UtVec3dX mVelWCS
Definition WsfRotorcraftMover.hpp:197
double mLocalUpdateTime
Definition WsfRotorcraftMover.hpp:176
bool ComputeAccel(double aCurrentRate, double aCurrentValue, double aTargetValue, double aCriticalAccel, double &aCriticalTime)
Definition WsfRotorcraftMover.cpp:634
double mDesiredROC
Definition WsfRotorcraftMover.hpp:233
UtPID_Controller mNorthAccelValuePID
Definition WsfRotorcraftMover.hpp:215
double mSouthAndEastTipTimeConstant
Definition WsfRotorcraftMover.hpp:182
void ExportMotionState()
Definition WsfRotorcraftMover.cpp:960
double MaximumBodyRate() const
Definition WsfRotorcraftMover.cpp:293
double mHeadingErrorRad
Definition WsfRotorcraftMover.hpp:181
UtVec3dX mPrevNetAccelWCS
Definition WsfRotorcraftMover.hpp:195
double MaximumClimbRate() const
Definition WsfRotorcraftMover.cpp:228
UtDCM mDcmDiskToECS
Definition WsfRotorcraftMover.hpp:212
double mTimeToTargetAlt
Definition WsfRotorcraftMover.hpp:232
double mDistToTgtLL
Definition WsfRotorcraftMover.hpp:235
double MaximumDescentRate() const
Definition WsfRotorcraftMover.cpp:241
UtVec3dX mVelNED
Definition WsfRotorcraftMover.hpp:189
void SetSwitches(double aSimTime)
Definition WsfRotorcraftMover.cpp:916
double mLatitudeDeg
Definition WsfRotorcraftMover.hpp:226
double mFabsROC_Limit
Definition WsfRotorcraftMover.hpp:179
RotorcraftMode * mModePtr
Definition WsfRotorcraftMover.hpp:224
LocalGuidance mLocalGuidance
Definition WsfRotorcraftMover.hpp:174
UtDCM mDcmNEDtoDisk
Definition WsfRotorcraftMover.hpp:211
double MaximumAcceleration() const
Definition WsfRotorcraftMover.cpp:215
std::vector< RotorcraftMode * > mRotorcraftModeList
The mover-specific list of modes (not valid until Initialize is called).
Definition WsfRotorcraftMover.hpp:172
UtPID_Controller mNorthAccelRatePID
Definition WsfRotorcraftMover.hpp:218
bool SetLocalGuidance(double aSimTime)
Definition WsfRotorcraftMover.cpp:536
bool mIsPositionHold
Definition WsfRotorcraftMover.hpp:169
UtVec3dX mPrevVelWCS
Definition WsfRotorcraftMover.hpp:198
UtVec3dX mNetAccelNED
Definition WsfRotorcraftMover.hpp:192
double MinimumUpwardAccel() const
Definition WsfRotorcraftMover.cpp:254
double mLongitudeDeg
Definition WsfRotorcraftMover.hpp:227
UtControl::TF_1V mSouthTipFilter
Definition WsfRotorcraftMover.hpp:207
double mTimeToTgtLL
Definition WsfRotorcraftMover.hpp:236
UtVec3dX mNetAccelWCS
Definition WsfRotorcraftMover.hpp:194
UtVec3dX mDesiredAccelNED
Definition WsfRotorcraftMover.hpp:186
double mDesiredAccelUp
Definition WsfRotorcraftMover.hpp:184
double MaximumGroundSpeed() const
Definition WsfRotorcraftMover.cpp:202
UtDCM mDcmWCStoNED
Definition WsfRotorcraftMover.hpp:210
virtual bool Unpause(double aSimTime, bool aInterrupt)
Definition WsfRouteMover.cpp:1451
bool Initialize2(double aSimTime) override
Definition WsfRouteMover.cpp:227
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
A derived guidance class used by WsfMovers that follow WsfWaypoints.
Definition WsfWaypointPathGuidance.hpp:25
TurnDirection
Turn direction for TurnToHeading and TurnToRelativeHeading.
Definition WsfPath.hpp:88
Definition WsfRotorcraftMover.hpp:121
double mTargetLatitude
Definition WsfRotorcraftMover.hpp:127
bool mLatLonIsValid
Definition WsfRotorcraftMover.hpp:133
double mTargetAltitude
Definition WsfRotorcraftMover.hpp:130
double mTargetCourseRad
Definition WsfRotorcraftMover.hpp:125
bool mCmdSpeedIsZero
Definition WsfRotorcraftMover.hpp:134
double mTargetGroundSpeed
Definition WsfRotorcraftMover.hpp:124
double mTargetLongitude
Definition WsfRotorcraftMover.hpp:128
LocalGuidance()
Definition WsfRotorcraftMover.cpp:1034
double mTargetHeadingRad
Definition WsfRotorcraftMover.hpp:131