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

#include <CDPolyIter.h>

Inheritance diagram for larcfm::CDPolyIter:
larcfm::DetectionPolygon larcfm::ParameterAcceptor larcfm::ParameterProvider

Public Member Functions

double getTimeStep () const
 
void setTimeStep (double val)
 
bool getContainment () const
 
void setContainment (bool flag)
 
std::pair< double, double > polygon_alt_inside_time (double B, double T, double vspeed, double minalt, double maxalt, double sz, double vz)
 
bool contains (Poly3D &p3d, const Vect3 &s)
 
ParameterData getParameters () const
 
void updateParameterData (ParameterData &p) const
 
void setParameters (const ParameterData &p)
 
bool polyIter_detection (double B, double T, const MovingPolygon3D &mp3D, const Vect3 &s, const Velocity &v)
 
bool violation (const Vect3 &so, const Velocity &vo, const Poly3D &si) const
 
bool conflict (const Vect3 &so, const Velocity &vo, const MovingPolygon3D &si, double B, double T) const
 
bool conflictDetection (const Vect3 &so, const Velocity &vo, const MovingPolygon3D &si, double B, double T)
 
std::vector< double > getTimesIn () const
 
std::vector< double > getTimesOut () const
 
double getTimeIn (int i) const
 
double getTimeOut (int i) const
 
double getTimeIn () const
 
double getTimeOut () const
 
std::vector< double > getCriticalTimesOfConflict () const
 
std::vector< double > getDistancesAtCriticalTimes () const
 
DetectionPolygonmake () const
 
DetectionPolygoncopy () const
 
std::string toString () const
 
std::string getClassName () const
 
std::string getIdentifier () const
 
void setIdentifier (const std::string &s)
 
bool equals (DetectionPolygon *d) const
 
std::string strVelocities (const std::vector< Vect2 > &polyvel) const
 
- Public Member Functions inherited from larcfm::DetectionPolygon
bool instanceof (const std::string &classname) const
 

Static Public Member Functions

static const std::pair< double, double > & noDetection ()
 
static std::vector< Vect2polygon_2D_at (const MovingPolygon2D &mp, double tr)
 
static bool within_polygon_altitude (double minalt, double maxalt, double sz)
 

Static Private Member Functions

static bool no_detection (const std::pair< double, double > &det)
 

Private Attributes

std::vector< double > timesin
 
std::vector< double > timesout
 
std::vector< double > timestca
 
std::vector< double > diststca
 
std::string id
 
double timeStep
 
bool containment
 

Detailed Description

Polygon detection. Based on UNVERIFIED PVS code.

Member Function Documentation

◆ conflict()

bool larcfm::CDPolyIter::conflict ( const Vect3 so,
const Velocity vo,
const MovingPolygon3D si,
double  B,
double  T 
) const
virtual

◆ conflictDetection()

bool larcfm::CDPolyIter::conflictDetection ( const Vect3 so,
const Velocity vo,
const MovingPolygon3D si,
double  B,
double  T 
)
virtual

◆ copy()

DetectionPolygon * larcfm::CDPolyIter::copy ( ) const
virtual

◆ equals()

bool larcfm::CDPolyIter::equals ( DetectionPolygon o) const
virtual

Return true if two instances have identical parameters (including identifiers). Use address equality (&x == &y) to distinguish instances.

Implements larcfm::DetectionPolygon.

◆ getClassName()

std::string larcfm::CDPolyIter::getClassName ( ) const
virtual

◆ getCriticalTimesOfConflict()

std::vector< double > larcfm::CDPolyIter::getCriticalTimesOfConflict ( ) const
virtual

◆ getDistancesAtCriticalTimes()

std::vector< double > larcfm::CDPolyIter::getDistancesAtCriticalTimes ( ) const
virtual

◆ getIdentifier()

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

◆ getParameters()

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

◆ getTimeOut() [1/2]

double larcfm::CDPolyIter::getTimeOut ( ) const

Time to exit from loss of separation in internal units.

Returns
the time to exit out loss of separation. If timeOut is zero then there is no conflict. If timeOut is negative then, timeOut is infinite. Note that this is a relative time.

◆ getTimeOut() [2/2]

double larcfm::CDPolyIter::getTimeOut ( int  i) const

Time to exit from loss of separation in internal units.

Returns
the time to exit out loss of separation. If timeOut is zero then there is no conflict. If timeOut is negative then, timeOut is infinite. Note that this is a relative time.

◆ getTimesIn()

std::vector< double > larcfm::CDPolyIter::getTimesIn ( ) const
virtual

◆ getTimesOut()

std::vector< double > larcfm::CDPolyIter::getTimesOut ( ) const
virtual

◆ make()

DetectionPolygon * larcfm::CDPolyIter::make ( ) const
virtual

◆ setIdentifier()

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

◆ setParameters()

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

◆ toString()

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

◆ updateParameterData()

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

◆ violation()

bool larcfm::CDPolyIter::violation ( const Vect3 so,
const Velocity vo,
const Poly3D si 
) const
virtual

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