WSF
WsfBrawlerMover Class Reference

#include <WsfBrawlerMover.hpp>

Inheritance diagram for WsfBrawlerMover:
Collaboration diagram for WsfBrawlerMover:

Public Member Functions

 WsfBrawlerMover (WsfScenario &aScenario)
WsfBrawlerMoveroperator= (const WsfBrawlerMover &)=delete
 ~WsfBrawlerMover () override
WsfMoverClone () const override
void SwapMoverInitiated (double aSimTime, WsfMover *aOldMoverPtr) override
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
WsfSpatialDomain GetSpatialDomain () const override
void TurnOn (double aSimTime) override
void DeleteMover () override
void UpdateFuel (double aTimeStep, double aInitialFlow, double aThrottle, double &aFuelQuantity, double &aVehicleMass) override
const char * GetScriptClassName () const override
Public Member Functions inherited from WsfMover
 WsfMover ()=delete
 WsfMover (const WsfScenario &aScenario)
 WsfMover (const WsfMover &aSrc)
WsfMoveroperator= (const WsfMover &)=delete
 ~WsfMover () override
virtual double TurnRadius (double atSpeed)
WsfModeListGetModeList () const
virtual void TriggerExtrapolation ()
virtual KinematicModelCreateKinematicModel (double aSimTime, WsfStringId aPlatformTypeId, const double aLocationWCS[3], const double aVelocityWCS[3], WsfMover *aMoverPtr, WsfDraw *aDrawPtr) const
WsfComponentCloneComponent () const override
int GetComponentInitializationOrder () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
const char * GetScriptClassName () const override
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
bool Initialize2 (double aSimTime) override
void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override
void SetNonOperational (double aSimTime) override
void SetOperational (double aSimTime) override
void PartBroken (double aSimTime) override
void Restore (double aSimTime) override
virtual bool IsStopped () const
 Return whether the mover (and its attached platform) is stopped.
virtual bool IsPaused () const
virtual bool IsExtrapolating () const
virtual void SetHeading (double aHeading)
virtual void SetPitch (double aPitch)
virtual void SetRoll (double aRoll)
virtual void SetOrientationNED (double aHeading, double aPitch, double aRoll)
virtual void ResetPosition (double aSimTime)
 Informs the mover to use the current platform state.
double GetLastUpdateTime () const
double GetUpdateInterval () const override
double GetUpdateTimeTolerance () const
void SetUpdateInterval (double aUpdateInterval) override
void SetLastUpdateTime (double aLastUpdateTime)
virtual bool UpdateAllowed () const
bool UpdateWhenBroken () const
void SetUpdateWhenBroken ()
void SetNoUpdateWhenBroken ()
virtual const WsfRouteGetDefaultRoute () const
virtual bool SetRoute (double aSimTime, const WsfRoute &aRoute)
virtual bool UpdateDefaultRoute ()
virtual bool FindAndSetPath (double aSimTime, WsfGeoPoint *aStartPtr, WsfGeoPoint *aEndPtr)
virtual bool ExecuteTriggers (double aSimTime, unsigned int aPointIndex)
virtual bool GetFutureLocationWCS (double aSimTime, double aLocationWCS[3])
WsfStringId GetModeId () const
virtual void SetMode (WsfStringId aModeName)
bool ThreadSafe () const
 Returns true if the mover update is thread safe.
void SetThreadSafe ()
void SetNotThreadSafe ()
virtual void InitializeProperties ()
 Add any input properties and its default value common properties list.
virtual bool PropertyExists (const std::string &aPropertyName)
 Return true if the given property exists in the set of properties.
virtual void RegisterProperty (const std::string &aPropertyName, const int &aProperty)
 Add an integer property to the common set of properties.
virtual void RegisterProperty (const std::string &aPropertyName, const double &aProperty)
 Add an floating point property to the common set of properties.
virtual void RegisterProperty (const std::string &aPropertyName, const std::string &aProperty)
 Add an string property to the set of common properties.
virtual bool GetPropertyInt (const std::string &aPropertyName, int &aProperty)
virtual bool GetPropertyDouble (const std::string &aPropertyName, double &aProperty)
virtual bool GetPropertyString (const std::string &aPropertyName, std::string &aProperty)
Public Member Functions inherited from WsfPlatformPart
 WsfPlatformPart (const WsfScenario &aScenario, int aPartType)
WsfPlatformPartoperator= (const WsfPlatformPart &aRhs)=delete
 ~WsfPlatformPart () override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
bool DebugEnabled () const
 Returns 'true' if debugging is enabled for this instance.
void SetDebugEnabled (bool aDebugEnabled)
unsigned int GetDebugMask ()
bool IsExternallyControlled () const
virtual void SetExternallyControlled (double aSimTime, bool aIsExternallyControlled)
int GetPartType () const
const char * GetScriptClassName () const override
WsfSimulationGetSimulation () const
const WsfScenarioGetScenario () const
WsfStringId GetComponentName () const override
void ComponentParentChanged (WsfPlatform *aPlatformPtr) override
bool Initialize (double aSimTime) override
bool Initialize2 (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
WsfPlatformGetPlatform () const
virtual void SetPlatform (WsfPlatform *aPlatformPtr)
virtual void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr)
virtual void PlatformDeleted (WsfPlatform *aPlatformPtr)
double GetLastStatusChangeTime () const
void SetLastStatusChangeTime (double aSimTime)
 Allows a system to set the time at which the device was initialized.
bool CanBeMadeOperational () const
 Returns an indication that this system can be made operational.
bool CanBeMadeNonOperational () const
 Returns an indication that this system can be made non-operational.
bool CanBeTurnedOn () const
 Returns an indication that this system can be turned on.
bool CanBeTurnedOff () const
 Returns an indication that this system can be turned off.
bool IsTurnedOn () const
bool InitiallyTurnedOn () const
 Is the system to be turned 'on' when added to the simulation?
void SetInitiallyTurnedOn (bool aInitiallyTurnedOn)
 Sets if the system is turned on when added to the simulation.
bool IsOperational () const
bool SetOperational (double aSimTime, bool aMakeOperational)
double GetDamageFactor () const
bool SetDamageFactor (double aSimTime, double aDamageFactor)
bool IsCritical () const
void SetCritical (bool aValue)
virtual void OnPlatformBrokenEvent (double aSimTime)
 Owning platform has issued a broken event.
bool IsBroken () const
WsfInternalLinksGetInternalLinks ()
 Return the internal links for this part.
virtual bool HasInternalLinks () const
 Does this platform part have a communication link to other platform parts?
virtual bool ProcessMessage (double aSimTime, const WsfMessage &aMessage)
virtual bool ReceiveMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessageTo (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
void SendMessageToProcessor (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
virtual void SendQueuedMessages (double aSimTime)
const WsfCategoryListGetCategories () const
 Get the categories to which this part belongs.
void AddCategory (WsfStringId aCategoryId)
 Adds the provided category to the platform part's category list.
bool IsCategoryMember (WsfStringId aCategoryId) const
const WsfGroupListGetGroups () const
 Get the groups to which this platform part belongs.
void JoinGroup (WsfGroup *aGroupPtr)
 Join the given group.
void LeaveGroup (WsfGroup *aGroupPtr)
 Leave the given group.
bool IsGroupMember (WsfStringId aGroupId)
unsigned int GetUpdateEventEpoch () const
void IncrementUpdateEventEpoch ()
bool UpdateEventActive () const
 Is an 'Update' event active?
void SetUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)
Public Member Functions inherited from WsfComponentT< WsfPlatform >
 WsfComponentT ()
 WsfComponentT (const WsfComponentT &) noexcept
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
virtual bool PreInitialize (double aSimTime)
virtual void PreInput ()
Public Member Functions inherited from WsfUniqueId
 WsfUniqueId ()
 Construtor initializes the unique identifier to 0.
 WsfUniqueId (const WsfUniqueId &)
 Copy constructor initializes the unique identifier to 0.
WsfUniqueIdoperator= (const WsfUniqueId &)
unsigned int GetUniqueId () const
 Get the unique identifier assigned to this object.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
Public Member Functions inherited from WsfAuxDataEnabled
 WsfAuxDataEnabled ()=default
 WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default
WsfAuxDataEnabledoperator= (const WsfAuxDataEnabled &aRhs)
 WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default
WsfAuxDataEnabledoperator= (WsfAuxDataEnabled &&)=default
virtual ~WsfAuxDataEnabled () noexcept
void SetAuxData (const WsfAttributeContainer &aAuxData)
void DeleteAuxData ()
 Delete the aux data container from the object.
void MergeAuxData (const WsfAuxDataEnabled &aSrc)
 Merge the object's aux data with aux data from an existing object.
void UpdateAuxData (const WsfAuxDataEnabled &aSrc)
 Update the object's aux data with aux data from an existing object.
bool HasAuxData () const
 Returns true if this object has aux data.
bool ProcessInput (UtInput &aInput)
template<typename T>
void Serialize (T &aBuff)
 (De)serialization for XIO
WsfAttributeContainerGetAuxData ()
const WsfAttributeContainerGetAuxData () const noexcept
const WsfAttributeContainerGetAuxDataConst () const noexcept
Public Member Functions inherited from BrawlerMover
 BrawlerMover ()
BrawlerMoveroperator= (const BrawlerMover &)=delete
virtual ~BrawlerMover ()
virtual bool LoadAeroConfig (const std::string &absolutePathFile)
virtual bool Initialize (double aCreationTime, UtEntity &aStartingState, BrawlerPlatform *aPlatformPtr)
virtual bool UpdateState (double toSimTime)
virtual UtEntity State (double aSimTime)
virtual double PlatformTime ()
virtual UtVec3d & Position ()
virtual double Altitude ()
virtual UtVec3d & Velocity ()
virtual UtVec3d & Acceleration ()
virtual UtFortMat3d & EarthToBodyRotationMatrix ()
virtual UtFortMat3d & EarthToWindRotationMatrix ()
virtual UtVec3d & AngularRates ()
virtual double Alpha ()
virtual double AlphaCL0 ()
virtual double AngleOfAttackRate ()
virtual double AircraftMass ()
virtual double EmptyMass ()
virtual double Speed ()
virtual double TurnRadius ()
virtual double Mach ()
virtual double DynamicPressure ()
virtual double LagFilterFreqPitchRate ()
virtual double LagFilterFreqRollRate ()
virtual double RollRateMax ()
virtual double PitchRatePositiveMax ()
virtual double RollMax ()
virtual double ReferenceArea ()
virtual double Gas ()
virtual double MaxAllowedThrottle ()
virtual double CoefficientOfLift (double mach, double alpha)
virtual double CoefficientOfDrag (double mach, double alpha)
virtual double Drag2 ()
virtual double Drag (double alpha, double speed, double altitude)
virtual double Lift ()
virtual double Lift (double alpha, double speed, double altitude)
virtual double LiftFromAlpha (double alpha)
virtual double AngleOfAttackFromDrag (double drag)
virtual double AngleOfAttackFromLift (double lift)
virtual double CalibratedAirSpeed ()
virtual double SpecificEnergyRate ()
 Returns specific energy rate calculated in aproj3.
virtual double Thrust (double throttle)
virtual double Thrust (double throttle, double speed, double altitude)
virtual double Throttle ()
virtual double AxialForceX ()
virtual double InletDrag (double throttle)
virtual UtVec3d VelocityWindAxes (void)
virtual UtVec3d GravityWindAxes (void)
virtual UtVec3d AccelerationWindAxes (void)
void CommandRates (UtVec3d &aAngularRates, UtVec3d &aLongitudinalAccel)
void CommandHeadingSpeedAltitude (double aHeading, double aSpeed, double aAltitude, double aMaxGees, double aMaxClimb)
void CommandPlaneManeuver (const UtVec3d &aPlane, double aGees, double aSpeed, bool aThrottleFlag=false)
void CommandVector (UtVec3d &aVelocityVector, double aMaxGees, double aSpeed, bool aThrottleFlag=false)
void CommandLevelTurn (double aHeading, double aMach, double aGees)
void CommandSlice (double aHeading, double aAltitude, double aRunMach)
void prlevl (double aGees, double aTurn, double aRoc, double aHeading, double aMach)
void forcev (double spd, std::string spdmod, double headng, double rclimb)
void dirct (double spddes, std::string spdmd, double rolds, std::string rolmd, double geedes)
void SetMaxThrottle (double aThrottle)
void aproj3 (double timeDelta, UtEntity &proj)
void allim (double aldes, double alpha, double cosalf, double gx, double acm, double &along, double &thrust)
void grthr (double aldes, double drag, double cosaoa, double gx, double &grosst, double &epd)
void laccel (double &along, double almin_use, UtVec3d &atrans, const UtVec3d &v, double spd, const UtFortMat3d &rbe, double acm, double amax, double &atload, double &erate)
void prjacc (const UtVec3d &xin, const UtVec3d &vin, const UtVec3d &a, double dt, UtVec3d &xout, UtVec3d &vout)
void spdtoa (double spd0x, double spdtmp, double dspeed, const UtVec3d &vdes, double dt, double gmax, const UtVec3d &vtemp, double &aldes, UtVec3d &atrans)
void thstoa (double gx, double frclon, const UtVec3d &dir0, const UtVec3d &vtemp, double spdtmp, double dt, double gmax, double &aldes, UtVec3d &atrans)
void manwnd (const UtVec3d &v, const UtVec3d &a, UtFortMat3d &rw, double &al, double &at)
void perfrm ()
double corner (double alt, double vs, double wate)
void flyac (double toTime)
void rates (double &xl, double thrst, double &dt, double tend, UtVec3d &wact, double &spddes, UtVec3d &vw, UtVec3d &gw, UtVec3d &aw, const int arotyp, double &aoaact, double &aldact)
void gwreq (double &dt, double thrst, double tend, UtVec3d &aw, UtVec3d &wnext, double &spddes, double &aoades, bool &gavdfl)
void flact1 (UtVec3d &wnext, double &d, double delt, double &flow, double spddes, double &faxial, double &wate, double &xl, double &efpd)
void seteng (double delt, double drg, double spddes, double tsmn)
void desaxf (double drg, double spddes, double tsmn, double &axfreq, double &accx)
void flacti (double &faxial, double &xl, double &flow, double &efpd)
void flyac_short (double dt)
void flact0 (UtVec3d &vw, UtVec3d &gw, UtVec3d &aw)
void acarea ()
void getdt (UtVec3d &aw, UtVec3d &wnow, double ftim, double &dt)
void ratmx1 (double xl, double acmass, UtVec3d &avw, UtVec3d &agw, double aoaold, double thrst, double &maxp, double &qmxpos, double &qmxneg, double &aoamx)
double pmax (double wate, double glift)
double gliftm (double mach, double dypr, double wate)
double fliftm (double mach, double dypr, double wate)
double qmax (double u, double wate, double awz, const int idir)
void aoamx1 (double acmass, double &aoamx)
double actxdt (double xdota0, double xdotr, double omeg, double dt)
double gldmx (double wate, const int idir)
double dsxdot (double xdes, double x, double xdot, double xdotmx, double tau)
double stept (double ades, double w, double angmax, double &wdes, double tau)
void qroots (double a, double b, double c, double &x1, double &x2, bool &solutn)
bool toltst (double xf, double x0, double tol)
void adjal (double &aly, double &alz, double &al, double greqm, UtVec3d &toup, bool &gavdfl)
void altlim (UtVec3d &vwr)
void vmake2 (double a, UtVec3d &vin, UtVec3d &vout)
void chkrng (double x, double xmin, double xmax, std::string text)
void ckrngi (const int k, const int kmin, const int kmax, const std::string &text)
void desang (UtVec3d &vw, UtVec3d &wnow, double &cphi, double &sphi, double &psidot, double &psi)
void orient (UtFortMat3d &dircos, double &yaw, double &pitch, double &roll)
void rollim (UtVec3d &gw, double &roldes, double &aly, double &alz, double psi)
void limchk (double value, double limit, double maxovr, double minund, double timnow, double &toact, double &timovr, double &timund, bool &ld2, bool &over, bool limon)
void udrbe (UtFortMat3d &rbe, UtVec3d &w, double wsq, double wmag, double chi)
void udxv (UtVec3d &accbar, UtVec3d &pos, UtVec3d &vel, double delt, UtFortMat3d &rwea)
double fflo (double thrtlx)
void getqm (double speed, double &dyp, double &fmach)
void deseng (double freq, double &fggdes, double &fabdes, double &ddpdes, double &trpdes)
double throt (double thrst)
void stenst (double fggdes, double fabdes, double ddpdes, double trpdes, double delt)
void effth2 (double thrtlx, double &efgrth, double &efpd)
void effthr (double fggc, double fabc, double trpdc, double ddpdc, double &efgrth, double &efpd)
void thrst2 (double fgg, double fab, double &tgg, double &tab, double &id)
void max_asubt (double &g_trans_max, bool &low_spd)
double drag (double tlift)
double drag2 (double xaoa)
double fdrag2 (double xaoa, const int num_acd_m, double *acd_mach, double *acd)
double fdrag_inner (double aoa, const int num_acd_m, double *acd_mach, double *acd)
void gcdadd (const int num_mach, double *machs, double *cds, double &cdadd)
double drgad ()
double xlift (double alfa)
double fxlift (double alfa)
double get_aoa (double drag)
void srch2 (double *x, const int nx, double xint, int &ilow, double &p)
double cas (double speed)
void atmos (double alt, double &t, double &pres, double &dens, double &vs, double &pr, double &dr)
void thrust (double thrtlx, double &tgg, double &tab, double &id)
void thrdec (double thrtlx, double &fgg, double &fab, double &trpd)
void thrst3 (double fgg, double fab, double &tgg, double &tab, double &id, double trpd, bool destrv)
void fthrst (double fgg, double fab, double &tgg, double &tab, double &id)
void fntthr (double fgg, double fab, double &tgg, double &tab)
double susgmx (double wate, double thrtlx)
double aoamcl (double wate)
double aoa (double xl, bool postall)
double faoa (double xl, bool postall)

Navigation methods.

These methods provide the interface for external control of the mover.

These are the WsfBrawlerMover implementations of the base class methods.

bool mDrawProjection
 Flag indicating if visual aid of projection should be drawn.
WsfDrawmDrawPtr
 Pointer to a wsfDraw object to allow drawing of projection.
UtEntity mDebugEntityProjection
 A UtEntity for storing projection state.
WsfFuelmFuelPtr
 Pointer to a fuel object on the platform.
WsfRoute mRoute
 The route the mover will follow.
bool mFlyingRoute
 Flag indicating the mover is following its defined route.
int mCurrentRouteIndex
 Index of the current spot in the route.
const WsfRouteGetRoute () const override
int RoutePointIndex () const override
bool GoToLocation (double aSimTime, double aLatitude, double aLongitude, double aAltitude) override
bool TurnToHeading (double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection) override
bool GoToSpeed (double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute) override
bool GoToAltitude (double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute) override
bool TurnToRelativeHeading (double aSimTime, double aHeadingChange, double aRadialAccel, WsfPath::TurnDirection aTurnDirection) override
bool ReturnToRoute (double aSimTime) override
bool UpdateRoute (double aSimTime, const WsfRoute &aRoute) override
bool GoToClosestPoint (double aSimTime) override
bool GoToLabel (double aSimTime, WsfStringId aLabelId) override
bool GoToWaypoint (double aSimTime, unsigned int aDestination) override
double GetThrottlePosition () override
bool Slice (double aDesiredHeading, double aDesiredAltitude, double aDesiredMach)
bool Prlvl (double aDesiredHeading, double aDesiredMach)
bool Prlvlg (double aDesiredHeading, double aDesiredMach, double aDesiredgees)
void SetMaxThrottle (double aThrottle)
double ReasonableClimbRate (double desiredSpeed)
 WsfBrawlerMover (const WsfBrawlerMover &aSrc)
 Copy constructor used by Clone().

BRAWLER Flight methods.

These methods provide the interface for external control of the mover. These are the WsfBrawlerMover implementations of the base class methods that provide the interface to fly BRAWLER maneuver alternatives.

bool FlyRates (const UtVec3d &aAngularRates, const UtVec3d &aLongitudinalAccel) override
bool FlyHeadingSpeedAltitude (double aHeading, double aSpeed, double aAltitude, double aMaxGees, double aMaxClimb) override
bool TurnInPlaneWithSpeed (const UtVec3d &aPlane, double aGees, double aSpeed) override
bool TurnInPlaneWithThrottle (const UtVec3d &aPlane, double aGees, double aThrottle) override
bool FlyVectorWithSpeed (const UtVec3d &aVelocityVector, double aMaxGees, double aSpeed) override
bool FlyVectorWithThrottle (const UtVec3d &aVelocityVector, double aMaxGees, double aThrottle) override
bool ProjectForward (double delta, UtEntity &projected)

Additional Inherited Members

Public Types inherited from WsfPlatformPart
enum  { cLEVEL_ONE_DEBUG = 0x00000001 , cLEVEL_TWO_DEBUG = 0x00000002 }
using InternalMessageQueue = std::queue<WsfMessage*>
using RecipientMessageQueue = std::queue<std::pair<WsfPlatformPart*, WsfMessage*>>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Public Types inherited from WsfComponentT< WsfPlatform >
typedef WsfPlatform ParentType
 This is needed to support the WsfComponentList template.
Public Types inherited from BrawlerMover
enum  CommandType {
  RATES = 1 , HEADING_SPEED_ALTITUDE = 2 , PLANE_GEES_SPEED = 3 , VECTOR_GEES = 4 ,
  ALSO_COMMAND_ALPHA = 9
}
Public Attributes inherited from BrawlerMover
UtVec3d mAngularRates
UtVec3d mAxialAccel
UtVec3d mPlane
UtVec3d mVelocityVector
double mHeading
double mAltitude
double mSpeed
double mThrottle
double mMaxGees
double mMaxClimb
CommandType mCommandType
bool mThrottleFlag
UtVec3d gravec
double tsv
UtVec3d pos
UtVec3d vel
UtVec3d acc
UtFortMat3d rbea
UtFortMat3d rwea
UtVec3d wnow
double alfa
double alfdot
double amass
double spd
double turn
double wsqr
double rate
double fm
double bvrmch
double dyp
double omegp
double omegq
double pmx
double qmxpos
double rlthrs
double rolmx
double rarea
double gas
double tset
double ttset
double fggsv
double fabsv
double trpdsv
double ddpdsv
double mxexrl
double mnonrl
double tmexrl
double tmonrl
double tmacex
bool ld2
bool over
double svtime
double barems
double crnrv
double fmmax
double casmax
double trefgg
double trmla
double abdt
double dtggup
double dtggdn
bool tdlim
bool tmlim
bool tablim
double trmm
double trtd
double alpha0
int aoa_tab_type
int nfm1
int nfm2
int nfm3
double fmvec1 [mfm]
double fmvec2 [mfm]
double fmvec3 [mfm]
double clmax [mfm]
int nalph1
int nalph2
double alfv1 [malpha]
double alfv2 [malpha]
double clift [mfm *malpha]
double cdrag [mfm *malpha]
int nmach1
int nhts
double mchval [mmach1]
double htvec [mhts]
double tidle [mmach1 *mhts]
double tmil [mmach1 *mhts]
double thrmx [mmach1 *mhts]
double abcorl
double gcap [2][mmach1]
double gcap2 [2][mmach1]
double rfarea [msweep]
double floidl [mmach1 *mhts]
double flomil [mmach1 *mhts]
double flomax [mmach1 *mhts]
double ff_adj
double dragvl [ndatbl]
double aoavl [ndatbl]
double drgaoa [ndtbl2]
UtVec3d aw
UtVec3d gwind
double almax
double almin
double gmxin
double thrmin
double thrnow
double thrmax
double drgnow
double gmxsu
double almaxg
double alming
double amxin
double drgsu
double wmax
double wate
double gmnin
double gmxsut
double psubs
double cornrv
double tempme
double presme
double densme
double vsme
double prme
double drme
double radmnp
double aoamx
double aoamn
double epdmin
double epdnow
double epdmax
double thrstl [5]
double throtm
double altmin
double altmax
double casmin
double miss_mass
double parea [3]
double deswt
double ac_fuel_cap
int arotyp
double thrst_adj
int num_ac_acd_m
double ac_acd_mach [2 *max_acd_mach]
double ac_acd [2 *max_acd_mach]
double throtl
bool aeroLoaded
BrawlerPlatformmBrawlerPlatformPtr
Static Public Attributes inherited from WsfMover
static const char * cTYPE_KIND = "mover"
Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed
void SetModeList (WsfModeList *aModeListPtr)
void SetUpdateTimeTolerance (double aDt)
 Revise the internal time tolerance allowed for Update() sequencing logic.
 WsfPlatformPart (const WsfPlatformPart &aSrc)
 Copy constructor (for Clone()).
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Member Functions inherited from WsfUniqueId
void AssignUniqueId (WsfSimulation *aSimulationPtr)
Protected Member Functions inherited from BrawlerMover
 BrawlerMover (const BrawlerMover &aSrc)
double mLastUpdateTime
 The simulation time when Update was last called.
WsfVariable< double > mUpdateTimeTolerance
bool mThreadSafe
std::vector< WsfMoverMode * > mMoverModeList
 The generic list of modes (not valid until Initialize is called).
WsfStringId mModeId

Detailed Description

This class defines a new type of mover that replicates the BRAWLER AROTYP1 mover model. The inheritance from the base WsfMover provides the interface for platforms to use the replicated BRAWLER mover inherited from BrawlerMover.

Constructor & Destructor Documentation

◆ WsfBrawlerMover() [1/2]

◆ ~WsfBrawlerMover()

WsfBrawlerMover::~WsfBrawlerMover ( )
override

References mDrawPtr.

◆ WsfBrawlerMover() [2/2]

WsfBrawlerMover::WsfBrawlerMover ( const WsfBrawlerMover & aSrc)
protected

Member Function Documentation

◆ Clone()

WsfMover * WsfBrawlerMover::Clone ( ) const
overridevirtual

Clone this object.

Returns
a pointer to the new object.

Implements WsfMover.

References WsfBrawlerMover(), and WsfMover::WsfMover().

◆ DeleteMover()

◆ FlyHeadingSpeedAltitude()

bool WsfBrawlerMover::FlyHeadingSpeedAltitude ( double aHeading,
double aSpeed,
double aAltitude,
double aMaxGees,
double aMaxClimb )
overridevirtual

◆ FlyRates()

bool WsfBrawlerMover::FlyRates ( const UtVec3d & aAngularRates,
const UtVec3d & aLongitudinalAccel )
overridevirtual

Reimplemented from WsfMover.

References BrawlerMover::CommandRates(), and mFlyingRoute.

Referenced by WsfBrawlerProcessor::EvaluateRates().

◆ FlyVectorWithSpeed()

bool WsfBrawlerMover::FlyVectorWithSpeed ( const UtVec3d & aVelocityVector,
double aMaxGees,
double aSpeed )
overridevirtual

◆ FlyVectorWithThrottle()

bool WsfBrawlerMover::FlyVectorWithThrottle ( const UtVec3d & aVelocityVector,
double aMaxGees,
double aThrottle )
overridevirtual

◆ GetRoute()

const WsfRoute * WsfBrawlerMover::GetRoute ( ) const
inlineoverridevirtual

Return the pointer to the current route.

Returns
A pointer to the current route or zero if a current route is not defined.

Reimplemented from WsfMover.

References mRoute.

◆ GetScriptClassName()

const char * WsfBrawlerMover::GetScriptClassName ( ) const
inlineoverride

◆ GetSpatialDomain()

WsfSpatialDomain WsfBrawlerMover::GetSpatialDomain ( ) const
overridevirtual

Return the spatial domain in which the mover is operating.

The spatial domain is the domain in which the mover is operating (land, sea, space, etc.).

Returns
The spatial domain in which the platform is operating. WSF_SPATIAL_DOMAIN_LAND is returned if this method is not overridden by a derived class.

Reimplemented from WsfMover.

References WSF_SPATIAL_DOMAIN_AIR.

◆ GetThrottlePosition()

double WsfBrawlerMover::GetThrottlePosition ( )
overridevirtual

Get the throttle position that the mover is commanding A throttle position x such that 1.0 <= x < 2.0 indicates military power A throttle position x such that x == 2.0 indicates max power A throttle position x such that 2.0 < x <= 3.0 indicates afterburner

Reimplemented from WsfMover.

References BrawlerMover::Throttle().

◆ GoToAltitude()

bool WsfBrawlerMover::GoToAltitude ( double aSimTime,
double aAltitude,
double aClimbDiveRate,
bool aKeepRoute )
overridevirtual

Command the mover change its altitude.

Parameters
aSimTimeThe current simulated time (seconds).
aAltitudeThe desired altitude to attempt to achieve (in meters).
aClimbDiveRateThe desired climb/dive rate (meters/second). If zero then use the mover default.
aKeepRoute'true' if the mover should maintain current route. 'false' to extrapolate.
Returns
true if successful.

Reimplemented from WsfMover.

References BrawlerMover::CommandHeadingSpeedAltitude(), BrawlerMover::HEADING_SPEED_ALTITUDE, BrawlerMover::mAltitude, BrawlerMover::mCommandType, mFlyingRoute, BrawlerMover::mMaxClimb, BrawlerMover::mSpeed, ReasonableClimbRate(), BrawlerMover::Speed(), and BrawlerMover::State().

◆ GoToClosestPoint()

bool WsfBrawlerMover::GoToClosestPoint ( double aSimTime)
overridevirtual

Go to the closest point in the current route.

Parameters
aSimTimeThe current simulated clock time (seconds).
Returns
true if successful.

Reimplemented from WsfMover.

References WsfWaypoint::cLATITUDE_AND_LONGITUDE, WsfWaypoint::GetAlt(), WsfWaypoint::GetLat(), WsfWaypoint::GetLon(), WsfPlatformPart::GetPlatform(), WsfWaypoint::GetPointType(), GoToWaypoint(), mRoute, and Update().

◆ GoToLabel()

bool WsfBrawlerMover::GoToLabel ( double aSimTime,
WsfStringId aLabelId )
overridevirtual

Go to the point with the specified label in the current route.

Parameters
aSimTimeThe current simulated clock time (seconds).
aLabelIdThe name (string id) of the point.
Returns
true if successful.

Reimplemented from WsfMover.

References GoToWaypoint(), and mRoute.

◆ GoToLocation()

bool WsfBrawlerMover::GoToLocation ( double aSimTime,
double aLatitude,
double aLongitude,
double aAltitude )
overridevirtual

Command the mover to move towards a specified location.

Parameters
aSimTimeThe current simulated clock time (seconds).
aLatitudeThe desired latitude.
aLongitudeThe desired longitude.
aAltitudeThe desired altitude. If -1 is used for aAltitude the current altitude is used.
Returns
true if successful.

Reimplemented from WsfMover.

References BrawlerMover::CommandHeadingSpeedAltitude(), BrawlerMover::HEADING_SPEED_ALTITUDE, BrawlerMover::mAltitude, BrawlerMover::mCommandType, mFlyingRoute, BrawlerMover::mHeading, ReasonableClimbRate(), and BrawlerMover::State().

◆ GoToSpeed()

bool WsfBrawlerMover::GoToSpeed ( double aSimTime,
double aSpeed,
double aLinearAccel,
bool aKeepRoute )
overridevirtual

Command the mover to change its speed.

Parameters
aSimTimeThe current simulated clock time (seconds).
aSpeedThe desired speed (in meters/second).
aLinearAccelThe desired acceleration (meters/second^2). If zero then use the mover default.
aKeepRoute'true' if the mover should maintain current route. 'false' to extrapolate.
Returns
true if successful.

Reimplemented from WsfMover.

References BrawlerMover::CommandHeadingSpeedAltitude(), BrawlerMover::HEADING_SPEED_ALTITUDE, BrawlerMover::mCommandType, mFlyingRoute, BrawlerMover::mMaxGees, BrawlerMover::mSpeed, ReasonableClimbRate(), and BrawlerMover::State().

◆ GoToWaypoint()

bool WsfBrawlerMover::GoToWaypoint ( double aSimTime,
unsigned int aDestination )
overridevirtual

Attempt to find a WsfWaypoint index, and go there.

Parameters
aSimTimeThe current simulated clock time (seconds).
aDestinationWaypoint index to find.
Returns
true if successful.

Reimplemented from WsfMover.

References mCurrentRouteIndex, mFlyingRoute, mRoute, and Update().

Referenced by GoToClosestPoint(), and GoToLabel().

◆ Initialize()

bool WsfBrawlerMover::Initialize ( double aSimTime)
overridevirtual

Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).

The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)
Note
This method should NOT add any other components to the platform. This MUST be done in PreInitialize().

Reimplemented from WsfComponent.

References WsfComponentList::RoleIterator< T >::AtEnd(), BrawlerMover::barems, WsfWaypoint::cLATITUDE_AND_LONGITUDE, WsfPath::cUSE_PREVIOUS, WsfBrawlerProcessor::Find(), BrawlerMover::gas, WsfWaypoint::GetAlt(), WsfWaypoint::GetLat(), WsfWaypoint::GetLon(), WsfPlatformPart::GetPlatform(), WsfWaypoint::GetPointType(), WsfPlatformPart::GetSimulation(), WsfWaypoint::GetSpeed(), BRAWLER::grav, BrawlerMover::Initialize(), WsfMover::Initialize(), BrawlerMover::mBrawlerPlatformPtr, mCurrentRouteIndex, mDrawProjection, mDrawPtr, mFlyingRoute, mFuelPtr, mRoute, ok, WsfPlatform::SetEmptyMass(), WsfPlatform::SetFuelMass(), and WsfBrawlerProcessor::SetLocationLLA().

◆ operator=()

WsfBrawlerMover & WsfBrawlerMover::operator= ( const WsfBrawlerMover & )
delete

◆ Prlvl()

bool WsfBrawlerMover::Prlvl ( double aDesiredHeading,
double aDesiredMach )

◆ Prlvlg()

bool WsfBrawlerMover::Prlvlg ( double aDesiredHeading,
double aDesiredMach,
double aDesiredgees )

◆ ProcessInput()

bool WsfBrawlerMover::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

References WsfScenario::FromInput(), WsfRouteTypes::Get(), BrawlerMover::LoadAeroConfig(), mDrawProjection, mRoute, and WsfMover::ProcessInput().

◆ ProjectForward()

bool WsfBrawlerMover::ProjectForward ( double delta,
UtEntity & projected )

Projects the current state of the mover forward the specified time. This does not change the internal state of mover

Parameters
deltaThe time in seconds to project the mover forward.
projectedA UtEntity that is updated and returned with the forward projected state.

References BrawlerMover::aproj3().

Referenced by WsfBrawlerProcessor::EvaluateHeadingSpeedAltitude(), WsfBrawlerProcessor::EvaluateRates(), WsfBrawlerProcessor::EvaluateTurnInPlaneWithSpeed(), WsfBrawlerProcessor::EvaluateTurnInPlaneWithThrottle(), WsfBrawlerProcessor::EvaluateVectorWithSpeed(), WsfBrawlerProcessor::EvaluateVectorWithThrottle(), and Update().

◆ ReasonableClimbRate()

◆ ReturnToRoute()

bool WsfBrawlerMover::ReturnToRoute ( double aSimTime)
overridevirtual

After going elsewhere, rejoin the route, reverting to the previous waypoint.

Parameters
aSimTimeThe current simulated time (seconds).
Returns
true if successful.

Reimplemented from WsfMover.

References mFlyingRoute.

◆ RoutePointIndex()

int WsfBrawlerMover::RoutePointIndex ( ) const
inlineoverridevirtual

Reimplemented from WsfMover.

References mCurrentRouteIndex.

◆ SetMaxThrottle()

void WsfBrawlerMover::SetMaxThrottle ( double aThrottle)

◆ Slice()

bool WsfBrawlerMover::Slice ( double aDesiredHeading,
double aDesiredAltitude,
double aDesiredMach )

◆ SwapMoverInitiated()

void WsfBrawlerMover::SwapMoverInitiated ( double aSimTime,
WsfMover * aOldMoverPtr )
overridevirtual

A mover swap has been initiated (i.e.: a call to WsfPlatform::SwapMover). This is called during the execution of WsfPlatform::SwapMover while the old mover is still the active mover. After this is called the new mover is initialized (Initialize and Initialize2 are called) and then made the active mover. The new mover typically uses this call to establish an environment to be used during subsequent Update calls to blend the old state data with the new state data for some small period of time.

Parameters
aSimTimeThe current simulation time.
aOldMoverPtrPointer to the old mover.
Note
This method is not called if there is no old mover. virtual

Reimplemented from WsfMover.

References BrawlerMover::tsv, and WsfMover::WsfMover().

◆ TurnInPlaneWithSpeed()

bool WsfBrawlerMover::TurnInPlaneWithSpeed ( const UtVec3d & aPlane,
double aGees,
double aSpeed )
overridevirtual

◆ TurnInPlaneWithThrottle()

bool WsfBrawlerMover::TurnInPlaneWithThrottle ( const UtVec3d & aPlane,
double aGees,
double aThrottle )
overridevirtual

◆ TurnOn()

void WsfBrawlerMover::TurnOn ( double aSimTime)
overridevirtual

Turn on the platform part (system).

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References BrawlerMover::tsv, and WsfMover::TurnOn().

◆ TurnToHeading()

bool WsfBrawlerMover::TurnToHeading ( double aSimTime,
double aHeading,
double aRadialAccel,
WsfPath::TurnDirection aTurnDirection )
overridevirtual

Command the mover to change its heading.

Parameters
aSimTimeThe current simulated clock time (seconds).
aHeadingThe desired heading (in radians).
aRadialAccelThe desired radial acceleration (meters/second^2). If zero then use the mover default.
aTurnDirectionThe direction in which to turn.
Returns
true if successful.

Reimplemented from WsfMover.

References BrawlerMover::CommandHeadingSpeedAltitude(), BrawlerMover::HEADING_SPEED_ALTITUDE, BrawlerMover::mCommandType, mFlyingRoute, BrawlerMover::mHeading, BrawlerMover::mMaxGees, ReasonableClimbRate(), and BrawlerMover::State().

Referenced by TurnToRelativeHeading().

◆ TurnToRelativeHeading()

bool WsfBrawlerMover::TurnToRelativeHeading ( double aSimTime,
double aHeadingChange,
double aRadialAccel,
WsfPath::TurnDirection aTurnDirection )
overridevirtual

Command the mover to change its relative heading.

Parameters
aSimTimeThe current simulated clock time (seconds).
aHeadingChangeThe desired heading change with positive clockwise, negative counter-clockwise. (in radians).
aRadialAccelThe desired radial acceleration (meters/second^2). If zero then use the mover default.
aTurnDirectionThe direction in which to turn.
Returns
true if successful.

Reimplemented from WsfMover.

References BrawlerMover::State(), and TurnToHeading().

◆ Update()

◆ UpdateFuel()

void WsfBrawlerMover::UpdateFuel ( double aTimeStep,
double aInitialFlow,
double aThrottle,
double & aFuelQuantity,
double & aVehicleMass )
overridevirtual

Reimplemented from BrawlerMover.

References mFuelPtr, and BrawlerMover::UpdateFuel().

◆ UpdateRoute()

bool WsfBrawlerMover::UpdateRoute ( double aSimTime,
const WsfRoute & aRoute )
overridevirtual

Update the route.

Parameters
aSimTimeThe current simulated clock time (seconds).
aRouteThe new route.
Returns
true if successful.

Reimplemented from WsfMover.

References BrawlerMover::Altitude(), WsfPath::cUSE_PREVIOUS, mCurrentRouteIndex, mFlyingRoute, mRoute, BrawlerMover::Speed(), and Update().

Member Data Documentation

◆ mCurrentRouteIndex

int WsfBrawlerMover::mCurrentRouteIndex
protected

Index of the current spot in the route.

Referenced by GoToWaypoint(), Initialize(), RoutePointIndex(), Update(), UpdateRoute(), WsfBrawlerMover(), and WsfBrawlerMover().

◆ mDebugEntityProjection

UtEntity WsfBrawlerMover::mDebugEntityProjection
protected

A UtEntity for storing projection state.

Referenced by Update(), WsfBrawlerMover(), and WsfBrawlerMover().

◆ mDrawProjection

bool WsfBrawlerMover::mDrawProjection
protected

Flag indicating if visual aid of projection should be drawn.

Referenced by Initialize(), ProcessInput(), Update(), WsfBrawlerMover(), and WsfBrawlerMover().

◆ mDrawPtr

WsfDraw* WsfBrawlerMover::mDrawPtr
protected

Pointer to a wsfDraw object to allow drawing of projection.

Referenced by Initialize(), Update(), WsfBrawlerMover(), WsfBrawlerMover(), and ~WsfBrawlerMover().

◆ mFlyingRoute

◆ mFuelPtr

WsfFuel* WsfBrawlerMover::mFuelPtr
protected

Pointer to a fuel object on the platform.

Referenced by Initialize(), UpdateFuel(), WsfBrawlerMover(), and WsfBrawlerMover().

◆ mRoute

WsfRoute WsfBrawlerMover::mRoute
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved