ICAROUS
|
Static Public Member Functions | |
static bool | LoS (const Vect3 &so, const Vect3 &si, double D, double H) |
static bool | rightOfLine (const Vect2 &so, const Vect2 &vo, const Vect2 &si) |
static int | rightOfLinePoints (const Vect2 &a, const Vect2 &b, const Vect2 &p) |
static bool | collinear (const Vect3 &p0, const Vect3 &p1, const Vect3 &p2) |
static bool | collinear (const Vect2 &p0, const Vect2 &p1, const Vect2 &p2) |
static Vect2 | midPoint (const Vect2 &p0, const Vect2 &p1) |
static Vect3 | midPoint (const Vect3 &p0, const Vect3 &p1) |
static Vect3 | interpolate (const Vect3 &v1, const Vect3 &v2, double f) |
static Velocity | interpolateVelocity (const Velocity &v1, const Velocity &v2, double f) |
static double | angle_between (const Vect2 &v1, const Vect2 &v2) |
static double | angle_between (const Vect2 &v1, const Vect2 &v2, const Vect2 &v3) |
static bool | divergentHorizGt (const Vect2 &s, const Vect2 &vo, const Vect2 &vi, double minRelSpeed) |
static bool | divergentHorizGt (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, double minRelSpeed) |
static bool | divergent (const Vect2 &so, const Vect2 &vo, const Vect2 &si, const Vect2 &vi) |
static bool | divergent (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) |
static double | rateOfClosureHorizontal (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) |
static double | rateOfClosureVertical (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) |
static double | tau (const Vect3 &s, const Vect3 &vo, const Vect3 &vi) |
static double | distAtTau (const Vect3 &s, const Vect3 &vo, const Vect3 &vi, bool futureOnly) |
static std::pair< Vect3, double > | intersection (const Vect3 &so3, const Velocity &vo3, const Vect3 &si3, const Velocity &vi3) |
static std::pair< Vect2, double > | intersection2D (const Vect2 &so, const Vect2 &vo, const Vect2 &si, const Vect2 &vi) |
static double | distanceH (const Vect3 &soA, const Vect3 &soB) |
static std::pair< Vect3, double > | intersectionAvgZ (const Vect3 &so1, const Vect3 &so2, double dto, const Vect3 &si1, const Vect3 &si2) |
static std::pair< Vect2, double > | intersection2D (const Vect2 &so1, const Vect2 &so2, double dto, const Vect2 &si1, const Vect2 &si2) |
static std::pair< Vect2, double > | intersectSegments (const Vect2 &so, const Vect2 &so2, const Vect2 &si, const Vect2 &si2) |
static Vect3 | closestPoint3 (const Vect3 &a, const Vect3 &b, const Vect3 &so) |
static Vect3 | closestPoint (const Vect3 &a, const Vect3 &b, const Vect3 &so) |
static Vect2 | closestPoint (const Vect2 &a, const Vect2 &b, const Vect2 &so) |
static Vect3 | closestPointOnSegment (const Vect3 &a, const Vect3 &b, const Vect3 &so) |
static Vect2 | closestPointOnSegment (const Vect2 &a, const Vect2 &b, const Vect2 &so) |
static Vect3 | closestPointOnSegment3 (const Vect3 &a, const Vect3 &b, const Vect3 &so) |
static std::pair< Vect3, double > | closestPointOnSegment3_extended (const Vect3 &a, const Vect3 &b, const Vect3 &so) |
static double | distanceToSegment (const Vect2 &a, const Vect2 &b, const Vect2 &so) |
static double | timeOfIntersection (const Vect3 &so3, const Velocity &vo3, const Vect3 &si3, const Velocity &vi3) |
static bool | behind (const Vect2 &x, const Vect2 &so, const Vect2 &vo) |
static int | passingDirection (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) |
static int | dirForBehind (const Vect2 &so, const Vect2 &vo, const Vect2 &si, const Vect2 &vi) |
static int | dirForBehind (const Vect3 &so, const Velocity &vo, const Vect3 &si, const Velocity &vi) |
static Vect3 | parse (const std::string &s) |
Returns true if x is "behind" so , that is, x is within the region behind the perpendicular line to vo through so.
x | a position |
so | aircraft position |
vo | aircraft velocity |
Returns true if x is "behind" so , that is, x is within the region behind the perpendicular line to vo through so.
Return the closest (horizontal) point along line a-b to point so EXPERIMENTAL
a | a point to define a line |
b | another point to define a line |
so | a point |
Return the closest point on the line a-b to point so as a 3D norm EXPERIMENTAL
a | a point to define a line |
b | another point to define a line |
so | a point |
Calculate the horizontal distance between two points.
soA | point A |
soB | point B |
|
static |
distance at time of closest approach
s | relative position of aircraft |
vo | velocity of ownship |
vi | velocity of traffic |
futureOnly | if true then in divergent cases use distance now |
|
static |
Return if two aircraft in the given state are divergent in the horizontal plane
|
static |
Return if two aircraft in the given state are divergent in a 3D sense
so | ownship position |
vo | ownship velocity |
si | intruder position |
vi | intruder velocity |
|
static |
determines if divergent and relative speed is greater than a specified minimum relative speed
s | relative position of ownship with respect to traffic |
vo | initial velocity of ownship |
vi | initial velocity of traffic |
minRelSpeed | the desired minimum relative speed |
|
static |
Computes 2D intersection point of two lines, but also finds z component (projected by time from line 1)
s0 | starting point of line 1 |
v0 | direction vector for line 1 |
s1 | starting point of line 2 |
v1 | direction vector of line 2 |
|
static |
Computes 2D intersection point of two lines, but also finds z component as average of the closest end point of each line) This z-component is constrained to be within the z components of the defining points.
so1 | starting point of line o |
so2 | ending point of line o |
si1 | starting point of line i |
vi2 | ending point of line i |
Returns true if aircraft are in loss of separation at time 0.
so | the relative position of the ownship aircraft |
si | the relative position of the traffic aircraft |
D | the minimum horizontal distance |
H | the minimum vertical distance |
|
static |
Returns values indicating whether the ownship state will pass in front of or behind the intruder (from a horizontal perspective)
so | ownship position |
vo | ownship velocity |
si | intruder position |
vi | intruder velocity |
|
static |
Return the horizontal rate of closure of two aircraft in the given state
so | position of first aircraft |
vo | velocity of first aircraft |
si | position of second aircraft |
vi | velocity of second aircraft |
|
static |
Return the vertical rate of closure of two aircraft in the given state
so | position of first aircraft |
vo | velocity of first aircraft |
si | position of second aircraft |
vi | velocity of second aircraft |
Returns true if si is on the right side of the line (so,vo)
so | ownship position |
vo | ownship velocity |
si | traffic aircraft position |
|
static |
Return if point p is to the right or left of the line from A to B
a | point A |
b | point B |
p | point P |
time of closest approach, if parallel return Double.MAX_VALUE
s | relative position of aircraft |
vo | velocity of ownship |
vi | velocity of traffic |
|
static |
Computes 2D intersection point of two infinite lines
so3 | starting point of line 1 |
vo3 | direction vector for line 1 |
si3 | starting point of line 2 |
vi3 | direction vector of line 2 |
Computes 2D intersection point of two lines, but also finds z component (projected by time from line 1)
s0 | starting point of line 1 |
v0 | direction vector for line 1 |
s1 | starting point of line 2 |
v1 | direction vector of line 2 |