WSF
WsfTerrainProfiler Class Reference

#include <WsfTerrainProfiler.hpp>

Classes

struct  Post

Public Types

using LatLonPair = std::pair<double, double>
using InputRoute = std::vector<LatLonPair>
using OutputRoute = std::list<Post>

Public Member Functions

 WsfTerrainProfiler (const wsf::Terrain &aTerrain)
 WsfTerrainProfiler (const WsfTerrainProfiler &aSrc)
WsfTerrainProfileroperator= (const WsfTerrainProfiler &)=delete
 ~WsfTerrainProfiler ()
bool ProcessInput (UtInput &aInput)
bool CreateProfile (double aTerrainClearance, double aMaxGradient, double aMinGradient, double aMaxPostSpacing, const InputRoute &aInputRoute, OutputRoute &aOutputRoute, bool aPrintErrors=false)
bool CreateProfile (const InputRoute &aInputRoute, OutputRoute &aOutputRoute, bool aPrintErrors=false)
double NominalTerrainClearance () const
double MinimumGradient () const
double MaximumGradient () const
double MaximumPostSpacing () const
void SetNominalTerrainClearance (double aNomTerrainClear)
void SetMinimumGradient (double aMinGradient)
void SetMaximumGradient (double aMaxGradient)
void SetMaximumPostSpacing (double aMaxPostSpacing)

Protected Member Functions

void InsertPostsBetween (OutputRoute &aRoute, OutputRoute::iterator aStartIter, OutputRoute::iterator aStopIter)
void InsertOnePostBetween (OutputRoute &aRoute, OutputRoute::iterator aStartIter, OutputRoute::iterator aStopIter)
void ReNumber (OutputRoute &aRoute)
bool DoubleCheck (OutputRoute &aRoute, bool aPrintErrors=false)

Detailed Description

Terrain Profiling Utility. This class is a utility to translate a collection of (latitude, longitude) pairs into a collection of (latitude, longitude, altitude) Posts suspended above the local terrain, with imposed maximum and minimum gradient limits between each (flight path angle constraints). The Posts may then be used as a terrain avoidance flight profile. Does not laterally displace the path, nor does the class concern itself with either lateral or vertical flight dynamics (beyond gradient), and so does not guarantee that the profile is flyable by the aircraft. NOTE: Due to expensive terrain Line-Of-Sight checks, this utility is not recommended for virtual run-time use. Recommended usage would be after the WsfTerrainPathFinder has found a relatively low-altitude path from A to B, and then this class post-processes the returned path to produce the recommended flown path.

Member Typedef Documentation

◆ InputRoute

◆ LatLonPair

using WsfTerrainProfiler::LatLonPair = std::pair<double, double>

◆ OutputRoute

Constructor & Destructor Documentation

◆ WsfTerrainProfiler() [1/2]

WsfTerrainProfiler::WsfTerrainProfiler ( const wsf::Terrain & aTerrain)

Referenced by operator=(), and WsfTerrainProfiler().

◆ WsfTerrainProfiler() [2/2]

WsfTerrainProfiler::WsfTerrainProfiler ( const WsfTerrainProfiler & aSrc)

References WsfTerrainProfiler().

◆ ~WsfTerrainProfiler()

WsfTerrainProfiler::~WsfTerrainProfiler ( )

Member Function Documentation

◆ CreateProfile() [1/2]

bool WsfTerrainProfiler::CreateProfile ( const InputRoute & aInputRoute,
OutputRoute & aOutputRoute,
bool aPrintErrors = false )

◆ CreateProfile() [2/2]

bool WsfTerrainProfiler::CreateProfile ( double aTerrainClearance,
double aMaxGradient,
double aMinGradient,
double aMaxPostSpacing,
const InputRoute & aInputRoute,
OutputRoute & aOutputRoute,
bool aPrintErrors = false )

◆ DoubleCheck()

bool WsfTerrainProfiler::DoubleCheck ( OutputRoute & aRoute,
bool aPrintErrors = false )
protected

References success.

Referenced by CreateProfile().

◆ InsertOnePostBetween()

void WsfTerrainProfiler::InsertOnePostBetween ( OutputRoute & aRoute,
OutputRoute::iterator aStartIter,
OutputRoute::iterator aStopIter )
protected

Referenced by CreateProfile().

◆ InsertPostsBetween()

void WsfTerrainProfiler::InsertPostsBetween ( OutputRoute & aRoute,
OutputRoute::iterator aStartIter,
OutputRoute::iterator aStopIter )
protected

Referenced by CreateProfile().

◆ MaximumGradient()

double WsfTerrainProfiler::MaximumGradient ( ) const
inline

◆ MaximumPostSpacing()

double WsfTerrainProfiler::MaximumPostSpacing ( ) const
inline

◆ MinimumGradient()

double WsfTerrainProfiler::MinimumGradient ( ) const
inline

◆ NominalTerrainClearance()

double WsfTerrainProfiler::NominalTerrainClearance ( ) const
inline

◆ operator=()

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

◆ ProcessInput()

bool WsfTerrainProfiler::ProcessInput ( UtInput & aInput)

Used to set parameters (if desired) via stream input. Values may be set directly via accessors, instead.

Referenced by operator=().

◆ ReNumber()

void WsfTerrainProfiler::ReNumber ( OutputRoute & aRoute)
protected

Referenced by CreateProfile().

◆ SetMaximumGradient()

void WsfTerrainProfiler::SetMaximumGradient ( double aMaxGradient)
inline

◆ SetMaximumPostSpacing()

void WsfTerrainProfiler::SetMaximumPostSpacing ( double aMaxPostSpacing)
inline

◆ SetMinimumGradient()

void WsfTerrainProfiler::SetMinimumGradient ( double aMinGradient)
inline

◆ SetNominalTerrainClearance()

void WsfTerrainProfiler::SetNominalTerrainClearance ( double aNomTerrainClear)
inline

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