ICAROUS
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Modules Pages
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
larcfm::CDCylinder Class Reference
Inheritance diagram for larcfm::CDCylinder:
larcfm::Detection3D larcfm::ParameterAcceptor larcfm::ParameterProvider

Public Member Functions

 CDCylinder (const std::string &s="")
 
 CDCylinder (const CDCylinder &cdc)
 
 CDCylinder (double d, double h)
 
 CDCylinder (double d, const std::string &dunit, double h, const std::string &hunit)
 
std::string getUnits (const std::string &key) const
 
double getHorizontalSeparation () const
 
void setHorizontalSeparation (double d)
 
double getVerticalSeparation () const
 
void setVerticalSeparation (double h)
 
double getHorizontalSeparation (const std::string &u) const
 
void setHorizontalSeparation (double d, const std::string &u)
 
double getVerticalSeparation (const std::string &u) const
 
void setVerticalSeparation (double h, const std::string &u)
 
LossData detection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const double D, const double H, const double B, const double T) const
 
LossData detection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const double D, const double H, const double T) const
 
LossData detection (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, const double D, const double H) const
 
virtual ConflictData conflictDetection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const
 
double timeOfClosestApproach (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const
 
virtual CDCylindercopy () const
 
virtual CDCylindermake () const
 
virtual ParameterData getParameters () const
 
virtual void updateParameterData (ParameterData &p) const
 
virtual void setParameters (const ParameterData &p)
 
virtual std::string getSimpleClassName () const
 
virtual std::string toString () const
 
virtual std::string toPVS () const
 
virtual std::string getIdentifier () const
 
virtual void setIdentifier (const std::string &s)
 
virtual bool equals (Detection3D *d) const
 
virtual bool contains (const Detection3D *cd) const
 
virtual void horizontalHazardZone (std::vector< Position > &haz, const TrafficState &ownship, const TrafficState &intruder, double T) const
 
- Public Member Functions inherited from larcfm::Detection3D
bool violation (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) const
 
bool conflict (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double B, double T) const
 
bool violationAtWithTrafficState (const TrafficState &ownship, const TrafficState &intruder, double t) const
 
bool conflictWithTrafficState (const TrafficState &ownship, const TrafficState &intruder, double B, double T) const
 
virtual ConflictData conflictDetectionWithTrafficState (const TrafficState &ownship, const TrafficState &intruder, double B, double T) const
 
std::string getCanonicalClassName () const
 
std::string getCanonicalSuperClassName () const
 
virtual std::string getSimpleSuperClassName () const
 
bool instanceOf (const std::string &classname) const
 
void horizontalContours (std::vector< std::vector< Position > > &blobs, const TrafficState &ownship, const TrafficState &intruder, double thr, double T) const
 

Static Public Member Functions

static CDCylinder make (double distance, const std::string &dUnits, double height, const std::string &hUnits)
 
static CDCylinder mk (double distance, double height)
 
static const CDCylinderA_CDCylinder ()
 
static const CDCylinderCD3DCylinder ()
 
static ConflictData conflict_detection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double D, double H, double B, double T)
 
static double time_of_closest_approach (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi, double D, double H, double B, double T)
 
static void circular_arc (std::vector< Position > &arc, const Position &pc, const Velocity &v, double alpha, bool include_last)
 

Private Attributes

std::string id
 
std::map< std::string, std::string > units_
 
double D_
 
double H_
 

Constructor & Destructor Documentation

◆ CDCylinder() [1/2]

larcfm::CDCylinder::CDCylinder ( const std::string &  s = "")

Instantiates a new CD3D object.

◆ CDCylinder() [2/2]

larcfm::CDCylinder::CDCylinder ( const CDCylinder cdc)

This specifies the internal table is a copy of the provided table

Parameters
tab

Member Function Documentation

◆ A_CDCylinder()

const CDCylinder & larcfm::CDCylinder::A_CDCylinder ( )
static
Returns
one static CDCylinder

◆ CD3DCylinder()

const CDCylinder & larcfm::CDCylinder::CD3DCylinder ( )
static
Returns
CDCylinder thresholds, i.e., D=5nmi, H=1000ft.

◆ conflictDetection()

ConflictData larcfm::CDCylinder::conflictDetection ( const Vect3 so,
const Velocity vo,
const Vect3 si,
const Velocity vi,
double  B,
double  T 
) const
virtual

This functional call returns a ConflictData object detailing the conflict between times B and T from now (relative), if any.

Parameters
soownship position
voownship velocity
siintruder position
viintruder velocity
Dhorizontal separation
Hvertical separation
Bbeginning of detection time (>=0)
Tend of detection time (if T < 0 then use an "infinite" lookahead time)
Returns
a ConflictData object detailing the conflict

Implements larcfm::Detection3D.

◆ contains()

bool larcfm::CDCylinder::contains ( const Detection3D cd) const
virtual

Implements larcfm::Detection3D.

◆ copy()

CDCylinder * larcfm::CDCylinder::copy ( ) const
virtual

This returns a pointer to a new instance of this type of Detector3D. You are responsible for destroying this instance when it is no longer needed.

Implements larcfm::Detection3D.

◆ detection() [1/3]

LossData larcfm::CDCylinder::detection ( const Vect3 s,
const Vect3 vo,
const Vect3 vi,
const double  D,
const double  H 
) const

Computes the conflict time interval in [0,...).

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
Dthe minimum horizontal distance
Hthe minimum vertical distance
Returns
true, if the conflict time interval (t_in,t_out) is in [0,...)

◆ detection() [2/3]

LossData larcfm::CDCylinder::detection ( const Vect3 s,
const Vect3 vo,
const Vect3 vi,
const double  D,
const double  H,
const double  B,
const double  T 
) const

Computes the conflict time interval in [B,T].

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
Dthe minimum horizontal distance
Hthe minimum vertical distance
Bthe the lower bound of the lookahead time (B >= 0)
Tthe upper bound of the lookahead time (B < T)
Returns
true, if the conflict time interval (t_in,t_out) is in [B,T].

◆ detection() [3/3]

LossData larcfm::CDCylinder::detection ( const Vect3 s,
const Vect3 vo,
const Vect3 vi,
const double  D,
const double  H,
const double  T 
) const

Computes the conflict time interval in [0,T].

Parameters
sthe relative position of the aircraft
vothe ownship's velocity
vithe intruder's velocity
Dthe minimum horizontal distance
Hthe minimum vertical distance
Tthe the lookahead time (T > 0)
Returns
true, if the conflict time interval (t_in,t_out) is in [0,T].

◆ equals()

bool larcfm::CDCylinder::equals ( Detection3D o) const
virtual

Return true if two instances have identical parameters (including identifiers). Use address equality (&x == &y) to distinguish instances. A generic implementation, assuming the identifier is included in the ParameterData object, would be virtual bool equals(Detection3D* o) const { if (!larcfmequals(getClassName(), o->getClassName())) return false; if (!getParameterData().equals(o->getParameterData())) return false; return true; }

Implements larcfm::Detection3D.

◆ getIdentifier()

std::string larcfm::CDCylinder::getIdentifier ( ) const
virtual

Implements larcfm::Detection3D.

◆ getParameters()

ParameterData larcfm::CDCylinder::getParameters ( ) const
virtual

◆ getSimpleClassName()

std::string larcfm::CDCylinder::getSimpleClassName ( ) const
virtual

Implements larcfm::Detection3D.

◆ horizontalHazardZone()

void larcfm::CDCylinder::horizontalHazardZone ( std::vector< Position > &  haz,
const TrafficState ownship,
const TrafficState intruder,
double  T 
) const
virtual

Return a list of points (polygon) that approximates the horizontal hazard zone around the ownship, with respect to a traffic aircraft. A polygon is a list of points in counter-clockwise direction, where the last point is connected to the first one.

Parameters
TThis time represents a time horizon in seconds. When T is 0, the polygon represents the hazard zone. Otherwise, the are represents the hazard zone with time horizon T.

NOTE 1: This polygon should only be used for display purposes since it's merely an approximation of the actual hazard zone defined by the violation and detection methods.

NOTE 2: This method has to be redefined as appropriate for every specific hazard zone.

Reimplemented from larcfm::Detection3D.

◆ make() [1/2]

CDCylinder * larcfm::CDCylinder::make ( ) const
virtual

Implements larcfm::Detection3D.

◆ make() [2/2]

CDCylinder larcfm::CDCylinder::make ( double  distance,
const std::string &  dUnits,
double  height,
const std::string &  hUnits 
)
static

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

Parameters
distancethe minimum horizontal separation distance in specified units
heightthe minimum vertical separation height in specified units.

◆ mk()

CDCylinder larcfm::CDCylinder::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].

◆ setIdentifier()

void larcfm::CDCylinder::setIdentifier ( const std::string &  s)
virtual

Implements larcfm::Detection3D.

◆ setParameters()

void larcfm::CDCylinder::setParameters ( const ParameterData p)
virtual

◆ toPVS()

std::string larcfm::CDCylinder::toPVS ( ) const
virtual

Implements larcfm::Detection3D.

◆ toString()

std::string larcfm::CDCylinder::toString ( ) const
virtual

Implements larcfm::Detection3D.

◆ updateParameterData()

void larcfm::CDCylinder::updateParameterData ( ParameterData p) const
virtual

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