ICAROUS
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Modules Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
larcfm::CDSSCyl Class Reference

#include <CDSSCyl.h>

Public Member Functions

 CDSSCyl (const double distance, const double height, const double cdfilter)
 
 CDSSCyl (const double distance, const std::string &ud, const double height, const std::string &uh, const double cdfilter)
 
 CDSSCyl (const CDSSCyl &cdss)
 
CDSSCyloperator= (const CDSSCyl &cdss)
 
double getDistance () const
 
double getDistance (const std::string &ud) const
 
double getHeight () const
 
double getHeight (const std::string &uh) const
 
double getTimeHorizon () const
 
double getTimeHorizon (const std::string &ut) const
 
double getFilterTime () const
 
void setDistance (const double distance)
 
void setDistance (const double distance, const std::string &ud)
 
void setHeight (const double height)
 
void setHeight (const double height, const std::string &uh)
 
void setTimeHorizon (const double time)
 
void setTimeHorizon (const double time, const std::string &ut)
 
void setFilterTime (const double cdfilter)
 
double getFilter () const
 
bool lossOfSeparation (const Vect3 &s) const
 
bool lossOfSeparation (const Vect3 &so, const Vect3 &si) const
 
bool conflictEver (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) const
 
bool conflictBetween (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double B, const double T) const
 
bool conflictBetween (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double B, const double T, const std::string &ut) const
 
bool conflict (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double T) const
 
bool conflict (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double T, const std::string &ut) const
 
bool detectionEver (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi)
 
bool detectionBetween (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double B, const double T)
 
bool detectionBetween (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double B, const double T, const std::string &ut)
 
bool detection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double T)
 
bool detection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, const double T, const std::string &ut)
 
double conflictDuration () const
 
double conflictDuration (const std::string &ut) const
 
bool conflict () const
 
double getTimeIn () const
 
double getTimeIn (const std::string &ut) const
 
double getTimeOut () const
 
double getTimeOut (const std::string &ut) const
 
double getCriticalTime () const
 
double getCriticalTime (const std::string &ut) const
 
double cylindricalDistanceAtCriticalTime () const
 
Vect3 relativePositionAtCriticalTime () const
 
double verticalDistanceAtCriticalTime () const
 
double verticalDistanceAtCriticalTime (const std::string &ud) const
 
double horizontalDistanceAtCriticalTime () const
 
double horizontalDistanceAtCriticalTime (const std::string &ud) const
 
std::string toString ()
 

Static Public Member Functions

static CDSSCyl make (double distance, const std::string &dStr, double height, const std::string &hStr)
 
static CDSSCyl mk (double distance, double height)
 
static bool lossOfSeparation (const Vect3 &so, const Vect3 &si, double d, double h)
 
static bool conflict (const Vect3 &s, const Velocity &vo, const Velocity &vi, double D, double H, double T)
 
static bool conflict (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double D, double H, double T)
 
static double timeIntoLoS (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, double D, double H)
 

Private Member Functions

void init (const double d, const double h, const double f)
 

Private Attributes

double D
 
double H
 
double TimeHorizon
 
double filter
 
double tca
 
double t_in
 
double t_out
 
Vect3 stca
 
CDCylinder cd
 

Detailed Description

The Class CDSS. This is a dedicated class that only uses the CD3D (CDCylinder) detection algorithm. The more general form is CDSSCore, which may utilize arbitrary Detection3D detection algorithms.

Usage: CDSS cdss = new CDSS(); cdss.setDistance(5,"NM") cdss.setHeight(950,"ft") boolean det = cdss.detection(so,vo,si,vi,T);

Constructor & Destructor Documentation

◆ CDSSCyl() [1/3]

larcfm::CDSSCyl::CDSSCyl ( const double  distance,
const double  height,
const double  cdfilter 
)

Create a new state-based conflict detection object using internal units.

Parameters
distancethe minimum horizontal separation distance [m]
heightthe minimum vertical separation height [m].
cdfilterthe cdfilter

◆ CDSSCyl() [2/3]

larcfm::CDSSCyl::CDSSCyl ( const double  distance,
const std::string &  ud,
const double  height,
const std::string &  uh,
const double  cdfilter 
)

Create a new state-based conflict detection object using specified units.

Parameters
distancethe minimum horizontal separation distance [ud]
udthe specified units of distance
heightthe minimum vertical separation height [uh]
uhthe specified units of height
cdfilterthe cdfilter

Create a new state-based conflict detection object using explicit units.

Parameters
distancethe minimum horizontal separation distance [ud]
udthe explicit units of distance
heightthe minimum vertical separation height [uh]
uhthe explicit units of height
cdfilterthe cdfilter

◆ CDSSCyl() [3/3]

larcfm::CDSSCyl::CDSSCyl ( const CDSSCyl cdss)

Copy constructor

Member Function Documentation

◆ conflict() [1/5]

bool larcfm::CDSSCyl::conflict ( ) const

Was there a detected conflict?

◆ conflict() [2/5]

bool larcfm::CDSSCyl::conflict ( const Vect3 s,
const Velocity vo,
const Velocity vi,
double  D,
double  H,
double  T 
)
static

Determines if two aircraft are in conflict in a given lookahead time interval (internal units). This function DOES NOT compute time interval of conflict. This function uses the CD3D definition of "conflict" – for a more general solution, use the one of the other conflict() or detection() methods.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
DThe horizontal size of the protection zone
HThe vertical size of the protection zone
Tupper bound of lookahead time interval in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [0,T].

◆ conflict() [3/5]

bool larcfm::CDSSCyl::conflict ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  T 
) const

Determines if two aircraft are in conflict within a given lookahed time (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Tlookahead time in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [0,T].

Determines if two aircraft are in conflict within a given lookahed time (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Tlookahead time in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [0,T].

◆ conflict() [4/5]

bool larcfm::CDSSCyl::conflict ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  T,
const std::string &  ut 
) const

Determines if two aircraft are in conflict within a given lookahead time (specified units). This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Tupper bound of lookahead time interval in specified units [ut] (T > 0)
utspecified units of time
Returns
true, if the aircraft are in conflict in the interval [0,T].

Determines if two aircraft are in conflict within a given lookahead time (explicit units). This function DOES NOT compute time interval of conflict.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Tupper bound of lookahead time interval in explicit units [ut] (T > 0)
utexplicit units of time
Returns
true, if the aircraft are in conflict in the interval [0,T].

◆ conflict() [5/5]

bool larcfm::CDSSCyl::conflict ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
double  D,
double  H,
double  T 
)
static

Determines if two aircraft are in conflict in a given lookahead time interval (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
DThe horizontal size of the protection zone
HThe vertical size of the protection zone
Tupper bound of lookahead time interval in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [0,T].

◆ conflictBetween() [1/2]

bool larcfm::CDSSCyl::conflictBetween ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  B,
const double  T 
) const

Determines if two aircraft are in conflict in a given lookahed time interval (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Blower bound of lookahead time interval in internal units [s] (B >= 0)
Tupper bound of lookahead time interval in internal units [s] (T > B)
Returns
true, if the aircraft are in conflict in the interval [B,T].

Determines if two aircraft are in conflict in a given lookahed time interval (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Blower bound of lookahead time interval in internal units [s] (B >= 0)
Tupper bound of lookahead time interval in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [B,T].

◆ conflictBetween() [2/2]

bool larcfm::CDSSCyl::conflictBetween ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  B,
const double  T,
const std::string &  ut 
) const

Determines if two aircraft are in conflict in a given lookahead time internal (specified units). This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Blower bound of lookahead time interval in specified units [ut] (B >= 0)
Tupper bound of lookahead time interval in specified units [ut] (T > 0)
utspecified units of time
Returns
true, if the aircraft are in conflict in the interval [B,T].

Determines if two aircraft are in conflict in a given lookahead time internal (explicit units). This function DOES NOT compute time interval of conflict.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Blower bound of lookahead time interval in explicit units [ut] (B >= 0)
Tupper bound of lookahead time interval in explicit units [ut] (T > 0)
utexplicit units of time
Returns
true, if the aircraft are in conflict in the interval [B,T].

◆ conflictDuration() [1/2]

double larcfm::CDSSCyl::conflictDuration ( ) const

Duration of conflict in internal units.

Returns
the duration of conflict. Zero means that there is not conflict.

Duration of conflict in internal units.

Returns
the duration of conflict. Zero means that there is not conflict. A negative number means that the conflict last for ever.

◆ conflictDuration() [2/2]

double larcfm::CDSSCyl::conflictDuration ( const std::string &  ut) const

Duration of conflict in specified units.

Parameters
utthe explicit units of time
Returns
the duration of conflict in explicit units [ut]. Zero means that there is not conflict.

Duration of conflict in explicit units.

Parameters
utthe explicit units of time
Returns
the duration of conflict in explicit units [ut]. Zero means that there is no conflict. A negative number means that the conflict last for ever.

◆ conflictEver()

bool larcfm::CDSSCyl::conflictEver ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi 
) const

Determines if two aircraft are in conflict ever within time horizon. This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Returns
true, if the aircraft are in conflict in the interval [0,time_horizon].

Determines if two aircraft are in conflict ever within time horizon. This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Returns
true, if the aircraft are in conflict in the interval [0,TimeHorizon].

◆ cylindricalDistanceAtCriticalTime()

double larcfm::CDSSCyl::cylindricalDistanceAtCriticalTime ( ) const

Cylindrical distance at time of closest approach.

Returns
the cylindrical distance at time of closest approach. This distance normalizes horizontal and vertical distances. Therefore, it is unitless. It has the property that the value is less than 1 if and only if the aircraft are in loss of separation. The value is 1 if the ownship is at the boundary of the intruder's protected zone.

◆ detection() [1/2]

bool larcfm::CDSSCyl::detection ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  T 
)

Detects a conflict that lasts more than filter time within a given lookahed time and computes the time interval of conflict (internal units).

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Tthe lookahead time in internal units [s] (T > 0)
Returns
true, if there is a conflict that last more than the filter time in the interval [0,T].

Detects a conflict that lasts more than filter time within a given lookahed time and computes the time interval of conflict (internal units).

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Tthe lookahed time in internal units [s] (T > 0)
Returns
true, if there is a conflict that last more than the filter time in the interval [0,T].

◆ detection() [2/2]

bool larcfm::CDSSCyl::detection ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  T,
const std::string &  ut 
)

Detects a conflict that lasts more than filter time within a given lookahead time and computes the time interval of conflict (specified units).

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Tthe lookahead time in specified units [ut] (T > 0)
utspecified units of time
Returns
true, if there is a conflict that last more than the filter time in the interval [0,T].

Detects a conflict that lasts more than filter time within a given lookahead time and computes the time interval of conflict (explicit units).

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Tthe lookahead time in explicit units [ut] (T > 0)
utexplicit units of time
Returns
true, if there is a conflict that last more than the filter time in the interval [0,T].

◆ detectionBetween() [1/2]

bool larcfm::CDSSCyl::detectionBetween ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  B,
const double  T 
)

Detects a conflict that lasts more than filter time in a given lookahead time interval and computes the time interval of conflict (internal units).

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Blower bound of lookahead time interval in internal units [s] (B >= 0)
Tupper bound of lookahead time interval in internal units [s] (T > 0)
Returns
true, if there is a conflict that last more than the filter time in the interval [B,T].

Detects a conflict that lasts more than filter time in a given lookahed time interval and computes the time interval of conflict (internal units).

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Blower bound of lookahead time interval in internal units [s] (B >= 0)
Tupper bound of lokkahed time interval in internal units [s] (T > 0)
Returns
true, if there is a conflict that last more than the filter time in the interval [B,T].

◆ detectionBetween() [2/2]

bool larcfm::CDSSCyl::detectionBetween ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
const double  B,
const double  T,
const std::string &  ut 
)

Detects a conflict that lasts more than filter time in a given lookahead time interval and computes the time interval of conflict (specified units).

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Blower bound of lookahead time interval in specified units [ut] (B >= 0)
Tupper bound of lookahead time interval in specified units [ut] (T > 0)
utspecified units of time
Returns
true, if there is a conflict that last more than the filter time in the interval [B,T].

Detects a conflict that lasts more than filter time in a given lookahead time interval and computes the time interval of conflict (explicit units).

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Blower bound of lookahead time interval in explicit units [ut] (B >= 0)
Tupper bound of lookahead time interval in explicit units [ut] (T > 0)
utexplicit units of time
Returns
true, if there is a conflict that last more than the filter time in the interval [B,T].

◆ detectionEver()

bool larcfm::CDSSCyl::detectionEver ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi 
)

Detects a conflict that lasts more than filter time within time horizon and computes the time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Returns
true, if there is a conflict that last more than the filter time in the interval [0,time_horizon].

Detects a conflict that lasts more than filter time within time horizon and computes the time interval of conflict.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Returns
true, if there is a conflict that last more than the filter time in the interval [0,TimeHorizon].

◆ getCriticalTime() [1/2]

double larcfm::CDSSCyl::getCriticalTime ( ) const

Time of closest approach in internal units.

Returns
the cylindrical time of closest approach [s].

◆ getCriticalTime() [2/2]

double larcfm::CDSSCyl::getCriticalTime ( const std::string &  ut) const

Time of cylindrical closest approach in explicit units.

Parameters
utthe explicit units of time
Returns
the time of (cylindrical) closest approach in explicit units [ut]

◆ getDistance() [1/2]

double larcfm::CDSSCyl::getDistance ( ) const

Returns the minimum horizontal separation distance in internal units [m].

Returns
the distance

◆ getDistance() [2/2]

double larcfm::CDSSCyl::getDistance ( const std::string &  ud) const

Returns the minimum horizontal separation distance in specified units.

Parameters
udthe specified units of distance
Returns
the distance in specified units [ud]

Returns the minimum horizontal separation distance in explicit units.

Parameters
udthe explicit units of distance
Returns
the distance in explicit units [ud]

◆ getFilterTime()

double larcfm::CDSSCyl::getFilterTime ( ) const

Returns the conflict detection filter time.

Returns
the conflict detection filter time seconds

◆ getHeight() [1/2]

double larcfm::CDSSCyl::getHeight ( ) const

Returns the minimum vertical separation distance in internal units.

Returns
the height in internal units [m]

◆ getHeight() [2/2]

double larcfm::CDSSCyl::getHeight ( const std::string &  uh) const

Returns the minimum vertical separation distance in specified units.

Parameters
uhthe specified units of height
Returns
the height in specified units [uh]

Returns the minimum vertical separation distance in explicit units.

Parameters
uhthe explicit units of height
Returns
the height in explicit units [uh]

◆ getTimeHorizon() [1/2]

double larcfm::CDSSCyl::getTimeHorizon ( ) const

Returns the time horizon in internal units.

Returns
the time horizon [s]

Returns the time horizon in internal units. time < 0 means infinite time horizon

Returns
the time horizon [s]

◆ getTimeHorizon() [2/2]

double larcfm::CDSSCyl::getTimeHorizon ( const std::string &  ut) const

Returns the time horizon in specified units.

Parameters
utthe specified units of time
Returns
the time horizon in specified units [ut]

Returns the time horizon in explicit units. time < 0 means infinite time horizon

Parameters
utthe explicit units of time
Returns
the time horizon in explicit units [ut]

◆ getTimeIn() [1/2]

double larcfm::CDSSCyl::getTimeIn ( ) const

Time to loss of separation in internal units.

Returns
the time to loss of separation. Note that this is a relative time.

Time to loss of separation in internal units.

Returns
the time to loss of separation. If time is negative then there is no conflict.

◆ getTimeIn() [2/2]

double larcfm::CDSSCyl::getTimeIn ( const std::string &  ut) const

Time to loss of separation in explicit units.

Parameters
utthe explicit units of time
Returns
the time to loss of separation in explicit units [ut]. If time is negative then there is no conflict.

◆ getTimeOut() [1/2]

double larcfm::CDSSCyl::getTimeOut ( ) const

Time to recovery of loss of separation in internal units.

Returns
the time to recovery of loss of separation. Note that this is a relative time.

Time to recovery of loss of separation in internal units.

Returns
the time to recovery of loss of separation. If timeOut is zero then there is no conflict. If timeOut is negative then, timeOut is infinite.

◆ getTimeOut() [2/2]

double larcfm::CDSSCyl::getTimeOut ( const std::string &  ut) const

Time to recovery of loss of separation in explicit units.

Parameters
utthe explicit units of time
Returns
the time to recovery of loss of separation in explicit units [ut].

Time to recovery of loss of separation in explicit units.

Parameters
utthe explicit units of time
Returns
the time to recovery of loss of separation in explicit units [ut]. If timeOut is zero then there is no conflict. If timeOut is negative then, timeOut is infinite.

◆ horizontalDistanceAtCriticalTime() [1/2]

double larcfm::CDSSCyl::horizontalDistanceAtCriticalTime ( ) const

Horizontal distance at time of closest approach (internal units).

Returns
the horizontal distance at time of closest approach.

◆ horizontalDistanceAtCriticalTime() [2/2]

double larcfm::CDSSCyl::horizontalDistanceAtCriticalTime ( const std::string &  ud) const

Horizontal distance at time of closest approach (explicit units).

Parameters
udthe explicit units of distance
Returns
the horizontal distance at time of closest approach.

◆ lossOfSeparation() [1/3]

bool larcfm::CDSSCyl::lossOfSeparation ( const Vect3 s) const

Determines if two aircraft are in loss of separation. This function DOES NOT compute time interval of conflict. This function uses the CD3D definition of loss of separation – for a more general solution, use lossOfSeparation(Vect3,Velocity,Velocity)

Parameters
sthe relative position of the aircraft
Returns
true, if the aircraft are in loss of separation.

Determines if two aircraft are in loss of separation. This function DOES NOT compute time interval of conflict.

Parameters
sthe relative position of the aircraft
Returns
true, if the aircraft are in loss of separation.

◆ lossOfSeparation() [2/3]

bool larcfm::CDSSCyl::lossOfSeparation ( const Vect3 so,
const Vect3 si 
) const

Determines if two aircraft are in loss of separation. This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
sithe position of the intruder
Returns
true, if the aircraft are in loss of separation.

◆ lossOfSeparation() [3/3]

bool larcfm::CDSSCyl::lossOfSeparation ( const Vect3 so,
const Vect3 si,
double  d,
double  h 
)
static

Determines if two aircraft are in loss of separation. This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
sithe position of the intruder
Returns
true, if the aircraft are in loss of separation.

◆ make()

CDSSCyl larcfm::CDSSCyl::make ( double  distance,
const std::string &  dStr,
double  height,
const std::string &  hStr 
)
static

Create a new state-based conflict detection object using specified units.

Parameters
distancethe minimum horizontal separation distance [dStr]
heightthe minimum vertical separation height [hStr].

Create a new state-based conflict detection object using specified units.

Parameters
distancethe minimum horizontal separation distance [hStr]
heightthe minimum vertical separation height [dStr].

◆ mk()

CDSSCyl larcfm::CDSSCyl::mk ( double  distance,
double  height 
)
static

Create a new state-based conflict detection object using internal units.

Parameters
distancethe minimum horizontal separation distance [m]
heightthe minimum vertical separation height [m].

◆ relativePositionAtCriticalTime()

Vect3 larcfm::CDSSCyl::relativePositionAtCriticalTime ( ) const

Relative position at time of closest approach (internal units).

Returns
the relative position of the ownship with respect to the intruder at time of closest approach.

◆ setDistance() [1/2]

void larcfm::CDSSCyl::setDistance ( const double  distance)

Sets the minimum horizontal separation distance in internal units.

Parameters
distancethe distance in internal units [m]

◆ setDistance() [2/2]

void larcfm::CDSSCyl::setDistance ( const double  distance,
const std::string &  ud 
)

Sets the minimum horizontal separation distance in specified units.

Parameters
distancethe distance in specified units [ud]
udthe specified units of distance

Sets the minimum horizontal separation distance in explicit units.

Parameters
distancethe distance in explicit units [ud]
udthe explicit units of distance

◆ setFilterTime()

void larcfm::CDSSCyl::setFilterTime ( const double  cdfilter)

Sets the conflict detection filter time.

Parameters
cdfilterthe conflict detection filter time in seconds.

◆ setHeight() [1/2]

void larcfm::CDSSCyl::setHeight ( const double  height)

Sets the minimum vertical separation distance in internal units.

Parameters
heightthe height in internal units [m]

◆ setHeight() [2/2]

void larcfm::CDSSCyl::setHeight ( const double  height,
const std::string &  uh 
)

Sets the minimum vertical separation distance in specified units.

Parameters
heightthe height in specified units [uh]
uhthe specified units of time of height

Sets the minimum vertical separation distance in explicit units.

Parameters
heightthe height in explicit units [uh]
uhthe explicit units of time of height

◆ setTimeHorizon() [1/2]

void larcfm::CDSSCyl::setTimeHorizon ( const double  time)

Sets the time horizon in internal units.

Parameters
timethe time horizon in internal units [s].

Sets the time horizon in internal units.

Parameters
timethe time horizon in internal units [s]. time < 0 means infinite time horizon

◆ setTimeHorizon() [2/2]

void larcfm::CDSSCyl::setTimeHorizon ( const double  time,
const std::string &  ut 
)

Sets the time horizon in specified units.

Parameters
timethe time horizon in specified units [ut].
utthe specified units of time

Sets the time horizon in explicit units.

Parameters
timethe time horizon in explicit units [ut]. time < 0 means infinite time horizon
utthe explicit units of time

◆ timeIntoLoS()

double larcfm::CDSSCyl::timeIntoLoS ( const Vect3 s,
const Vect3 vo,
const Vect3 vi,
double  D,
double  H 
)
static

EXPERIMENTAL STATIC TIME INTO LOS (assumes infinite lookahead time), undefined if not conflict

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
Dthe minimum horizontal distance
Hthe minimum vertical distance
Returns
time to enter loss of separation

EXPERIMENTAL STATIC TIME INTO LOS (assumes infinite lookahead time), undefined if not conflict

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
Dthe minimum horizontal distance
Hthe minimum vertical distance
Returns

◆ verticalDistanceAtCriticalTime() [1/2]

double larcfm::CDSSCyl::verticalDistanceAtCriticalTime ( ) const

Vertical distance at time of closest approach (internal units).

Returns
the vertical distance at time of closest approach.

◆ verticalDistanceAtCriticalTime() [2/2]

double larcfm::CDSSCyl::verticalDistanceAtCriticalTime ( const std::string &  ud) const

Vertical distance at time of closest approach (explicit units).

Parameters
udthe explicit units of distance
Returns
the vertical distance at time of closest approach.

Member Data Documentation

◆ cd

CDCylinder larcfm::CDSSCyl::cd
private

CD3D object

◆ D

double larcfm::CDSSCyl::D
private

The minimum horizontal distance

◆ filter

double larcfm::CDSSCyl::filter
private

The conflict filter time

◆ H

double larcfm::CDSSCyl::H
private

The minimum vertical distance

◆ stca

Vect3 larcfm::CDSSCyl::stca
private

Aircraft relative position at time of closest approach.

◆ tca

double larcfm::CDSSCyl::tca
private

Time of (cylindrical) closest approach *.

◆ TimeHorizon

double larcfm::CDSSCyl::TimeHorizon
private

Time horizon. TimeHorizon < 0 means an infinite time horizon


The documentation for this class was generated from the following files: