WSF
Fires::FiresPath Class Reference

#include <FiresPath.hpp>

Inheritance diagram for Fires::FiresPath:
Collaboration diagram for Fires::FiresPath:

Public Types

enum  PropagationType {
  cUNDEFINED = 0 , cMAX_ORD_TOF = 1 , cELEVATION_TOF = 2 , cSIMPLE = 3 ,
  cNUM_TYPES = 4
}

Public Member Functions

 FiresPath (WsfSimulation &aSimulation, UtStringId aType, WsfGeoPoint &aInitialLocation, double &aTargetRange, double &aTargetBearing, double aAzimuthError=0.0, double aElevationError=0.0)
 Constructor to be used independently of the FiresMover.
 FiresPath (WsfScenario &aScenario)
 Constructor used by the FiresMover.
 FiresPath (const FiresPath &aSrc)
virtual ~FiresPath ()=default
FiresPathoperator= (const FiresPath &aSrc)=delete
void SetImpactRange (double aRange)
 Set the ground impact range at which the munition will impact.
void SetInitialBearing (double aBearing)
 Set the initial bearing along which the trajectory will move.
void SetAzimuthError (double aAzimuthError)
void SetElevationError (double aElevationError)
virtual bool Initialize (double aSimTime)
double GetImpactTime () const
void GetState (double aSimTime, double aLocWCS[3], double aVelWCS[3])

Protected Member Functions

void UpdateState (double aSimTime)
bool PerformTrajectoryLookup ()
void ComputeTargetRangeBearingDeltaAlt ()
bool ComputeTrajectoryParameters ()
void ComputeTimeConstantFromMaxOrd (double aDeltaAlt)
void ComputeTimeConstantFromElevationAngle (double aDeltaAlt)
void ComputeInitialVelocity (double aDeltaAlt)

Protected Attributes

PropagationType mPropagationType
PropagationType mSimplePropagationLookupType
WsfStringId mFiresType
FiresTablesmFiresTablesPtr
WsfSimulationmSimulationPtr
bool mRemoveOnImpact
double mImpactRange
double mMaxHeight
 This is the independent variable (input) in the table lookup.
double mElevationAngle
 Dependent variable of table lookup for max. ord lookups.
double mImpactTime
 Dependent variable of table lookup for elevation lookups.
WsfGeoPoint mInitialLocation
 Dependent variable of table lookup.
WsfGeoPoint mImpactLocation
bool mHasImpactLocation
bool mConstrainPropagation
double mInitialBearing
double mBearingError
double mElevationError
 Azimuth error for simulating dispersion of fires.
double mDeltaAlt
 Elevation error for simulating dispersion of fires.
double mSinB
 Difference between initial altitude and target alt.
double mCosB
 Sine of initial bearing.
UtEntity mGeom
 Cosine of initial bearing.
double mLocWCS [3]
double mVelWCS [3]
double mVelNED [3]
double mAccNED [3]
double mRoll
double mPitch
double mHeading
double mSimpleG
double v0x
 The reduced value of the gravitational constant, used with simple propagation.
double v0z
 The initial velocity parallel to the ground (vector connecting the initial and impact location).
double mTimeConstant
 The initial velocity perpendicular to the ground (vector connecting the initial and impact location).
double mInitialTime
 The approximation of the ballistic coefficient (the higher the time constant, the less drag).
bool mDebug
 The sim time the round is fired.

Detailed Description

FiresPath implements the ballistic path used by WsfFiresMover. See AFSIM technical documentation for details.

Member Enumeration Documentation

◆ PropagationType

Enumerator
cUNDEFINED 
cMAX_ORD_TOF 
cELEVATION_TOF 

Lookup Max ord and tof based on impact range.

cSIMPLE 

Lookup Elevation and tof based on impact range.

cNUM_TYPES 

whether to use a very simple parabolic trajectory, computed by using a reduced value of the gravitational constant to approximate drag

Constructor & Destructor Documentation

◆ FiresPath() [1/3]

Fires::FiresPath::FiresPath ( WsfSimulation & aSimulation,
UtStringId aType,
WsfGeoPoint & aInitialLocation,
double & aTargetRange,
double & aTargetBearing,
double aAzimuthError = 0.0,
double aElevationError = 0.0 )

◆ FiresPath() [2/3]

◆ FiresPath() [3/3]

◆ ~FiresPath()

virtual Fires::FiresPath::~FiresPath ( )
virtualdefault

Member Function Documentation

◆ ComputeInitialVelocity()

void Fires::FiresPath::ComputeInitialVelocity ( double aDeltaAlt)
protected

◆ ComputeTargetRangeBearingDeltaAlt()

void Fires::FiresPath::ComputeTargetRangeBearingDeltaAlt ( )
protected

◆ ComputeTimeConstantFromElevationAngle()

void Fires::FiresPath::ComputeTimeConstantFromElevationAngle ( double aDeltaAlt)
protected

◆ ComputeTimeConstantFromMaxOrd()

void Fires::FiresPath::ComputeTimeConstantFromMaxOrd ( double aDeltaAlt)
protected

◆ ComputeTrajectoryParameters()

bool Fires::FiresPath::ComputeTrajectoryParameters ( )
protected

◆ GetImpactTime()

double Fires::FiresPath::GetImpactTime ( ) const
inline

References mImpactTime.

◆ GetState()

void Fires::FiresPath::GetState ( double aSimTime,
double aLocWCS[3],
double aVelWCS[3] )

Retrieve the state (position and velocity) at the given time.

Parameters
aSimTimeThe time at which the state is desired.
aLocWCSThe location at the given time.
aVelWCSThe velocity at the given time.

References mLocWCS, mVelWCS, and UpdateState().

◆ Initialize()

◆ operator=()

FiresPath & Fires::FiresPath::operator= ( const FiresPath & aSrc)
delete

References FiresPath().

◆ PerformTrajectoryLookup()

◆ SetAzimuthError()

void Fires::FiresPath::SetAzimuthError ( double aAzimuthError)
inline

Set the initial error in elevation angle (used for dispersion of fires)

Note
This is not the expected value of the error but the actual error.

References mBearingError.

Referenced by Fires::FiresMover::Initialize2().

◆ SetElevationError()

void Fires::FiresPath::SetElevationError ( double aElevationError)
inline

Set the initial error in elevation angle (used for dispersion of fires)

Note
This is not the expected value of the error but the actual error.

References mElevationError.

Referenced by Fires::FiresMover::Initialize2().

◆ SetImpactRange()

void Fires::FiresPath::SetImpactRange ( double aRange)
inline

Set the ground impact range at which the munition will impact.

References mImpactRange.

◆ SetInitialBearing()

void Fires::FiresPath::SetInitialBearing ( double aBearing)
inline

Set the initial bearing along which the trajectory will move.

References mInitialBearing.

◆ UpdateState()

void Fires::FiresPath::UpdateState ( double aSimTime)
protected

Update the position and velocity of the munition to the given time.

Parameters
aSimTimeThe time to which the state is to be updated.

References cSIMPLE, mAccNED, mCosB, mGeom, mHeading, mInitialTime, mLocWCS, mPitch, mPropagationType, mRoll, mSimpleG, mSinB, mTimeConstant, mVelNED, mVelWCS, v0x, and v0z.

Referenced by GetState(), and Fires::FiresMover::Update().

Member Data Documentation

◆ mAccNED

double Fires::FiresPath::mAccNED[3]
protected

◆ mBearingError

double Fires::FiresPath::mBearingError
protected

◆ mConstrainPropagation

bool Fires::FiresPath::mConstrainPropagation
protected

If the impact location is specified, range will be computed based on the initial location and impact location

Referenced by ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and Fires::FiresMover::ProcessInput().

◆ mCosB

double Fires::FiresPath::mCosB
protected

Sine of initial bearing.

Referenced by ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and UpdateState().

◆ mDebug

◆ mDeltaAlt

double Fires::FiresPath::mDeltaAlt
protected

Elevation error for simulating dispersion of fires.

Referenced by ComputeTrajectoryParameters(), FiresPath(), FiresPath(), and FiresPath().

◆ mElevationAngle

double Fires::FiresPath::mElevationAngle
protected

◆ mElevationError

double Fires::FiresPath::mElevationError
protected

Azimuth error for simulating dispersion of fires.

Referenced by ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and SetElevationError().

◆ mFiresTablesPtr

FiresTables* Fires::FiresPath::mFiresTablesPtr
protected

◆ mFiresType

◆ mGeom

UtEntity Fires::FiresPath::mGeom
protected

Cosine of initial bearing.

Referenced by ComputeTrajectoryParameters(), FiresPath(), and UpdateState().

◆ mHasImpactLocation

bool Fires::FiresPath::mHasImpactLocation
protected

◆ mHeading

double Fires::FiresPath::mHeading
protected

◆ mImpactLocation

WsfGeoPoint Fires::FiresPath::mImpactLocation
protected

◆ mImpactRange

◆ mImpactTime

◆ mInitialBearing

double Fires::FiresPath::mInitialBearing
protected

◆ mInitialLocation

WsfGeoPoint Fires::FiresPath::mInitialLocation
protected

Dependent variable of table lookup.

Referenced by ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and Fires::FiresMover::Update().

◆ mInitialTime

double Fires::FiresPath::mInitialTime
protected

The approximation of the ballistic coefficient (the higher the time constant, the less drag).

Referenced by FiresPath(), FiresPath(), FiresPath(), Initialize(), Fires::FiresMover::Update(), and UpdateState().

◆ mLocWCS

double Fires::FiresPath::mLocWCS[3]
protected

◆ mMaxHeight

double Fires::FiresPath::mMaxHeight
protected

◆ mPitch

double Fires::FiresPath::mPitch
protected

◆ mPropagationType

◆ mRemoveOnImpact

bool Fires::FiresPath::mRemoveOnImpact
protected

◆ mRoll

double Fires::FiresPath::mRoll
protected

◆ mSimpleG

◆ mSimplePropagationLookupType

PropagationType Fires::FiresPath::mSimplePropagationLookupType
protected

◆ mSimulationPtr

WsfSimulation* Fires::FiresPath::mSimulationPtr
protected

◆ mSinB

double Fires::FiresPath::mSinB
protected

Difference between initial altitude and target alt.

Referenced by ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and UpdateState().

◆ mTimeConstant

double Fires::FiresPath::mTimeConstant
protected

The initial velocity perpendicular to the ground (vector connecting the initial and impact location).

Referenced by ComputeInitialVelocity(), ComputeTimeConstantFromElevationAngle(), ComputeTimeConstantFromMaxOrd(), ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), Fires::FiresMover::ProcessInput(), and UpdateState().

◆ mVelNED

double Fires::FiresPath::mVelNED[3]
protected

◆ mVelWCS

double Fires::FiresPath::mVelWCS[3]
protected

◆ v0x

double Fires::FiresPath::v0x
protected

The reduced value of the gravitational constant, used with simple propagation.

Referenced by ComputeInitialVelocity(), ComputeTimeConstantFromElevationAngle(), ComputeTimeConstantFromMaxOrd(), ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and UpdateState().

◆ v0z

double Fires::FiresPath::v0z
protected

The initial velocity parallel to the ground (vector connecting the initial and impact location).

Referenced by ComputeInitialVelocity(), ComputeTimeConstantFromElevationAngle(), ComputeTimeConstantFromMaxOrd(), ComputeTrajectoryParameters(), FiresPath(), FiresPath(), FiresPath(), and UpdateState().


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