ICAROUS
|
#include <TurnGeneration.h>
Static Public Member Functions | |
static Tuple5< NavPoint, NavPoint, NavPoint, int, Position > | turnGenerator (const NavPoint &np1, const NavPoint &np2, const NavPoint &np3, double radius) |
static Tuple6< Position, Position, Position, int, double, Position > | turnGenerator (const Position &np1, const Position &np2, const Position &np3, double radius) |
static Tuple6< Vect2, Vect2, Vect2, int, double, Vect2 > | turnGeneratorEucl (const Vect2 &pt1, const Vect2 &pt2, const Vect2 &pt3, double radius) |
static Tuple6< Vect3, Vect3, Vect3, int, double, Vect3 > | turnGeneratorEucl (const Vect3 &p1, const Vect3 &p2, const Vect3 &p3, double radius) |
static Quad< NavPoint, NavPoint, NavPoint, int > | turnGeneratorProjected (const NavPoint &np1, const NavPoint &np2, const NavPoint &np3, double R) |
static Tuple6< LatLonAlt, LatLonAlt, LatLonAlt, int, double, LatLonAlt > | turnGeneratorLLA_orig (const LatLonAlt &p1, const LatLonAlt &p2, const LatLonAlt &p3, double radius) |
static Tuple5< LatLonAlt, LatLonAlt, LatLonAlt, int, LatLonAlt > | turnGeneratorLLA_Alt2 (const LatLonAlt &p1, const LatLonAlt &p2, const LatLonAlt &p3, double radius) |
static Tuple6< LatLonAlt, LatLonAlt, LatLonAlt, int, double, LatLonAlt > | turnGeneratorLLA_Alt3 (const LatLonAlt &p1, const LatLonAlt &p2, const LatLonAlt &p3, double radius) |
Static Private Member Functions | |
static double | arcLengthLLA (const LatLonAlt &bot, const LatLonAlt &intercept, double radius) |
static double | Rprime (double TurnRad) |
static Vect3 | normalvect (const Vect3 &p, const Vect3 &q, const Vect3 &r) |
static Vect3 | point_on_line (double TurnRad, const Vect3 &p, const Vect3 &q, const Vect3 &r) |
static Vect3 | turnCenterxyz (double TurnRad, const Vect3 &p, const Vect3 &q, const Vect3 &r) |
static Vect3 | BOT (double TurnRad, const Vect3 &p, const Vect3 &q, const Vect3 &r) |
static Vect3 | EOT (double TurnRad, const Vect3 &p, const Vect3 &q, const Vect3 &r) |
static int | turnDirection (const Vect3 &p, const Vect3 &q, const Vect3 &r) |
TurnGeneration provides methods to generate the beginning, middle, and end of turn (BOTs, MOTs, and EOTs). This class finds solutions that are based on spherical trigonometry without having to use projections (the original versions of these methods in TrajGen used Euclidean projections).
|
staticprivate |
Plane1 is set of all points Rprime(TurnRad) distance from the plane containing p,q,0, in the direction of r Plane2 is set of all points Rprime(TurnRad) distance from the plane containing q,r,0, in the direction of p This function computes one point that is on the line of intersection between these two planes.
TurnRad | |
p | |
q | |
r |
|
staticprivate |
Rprime takes the turnRadius (great circle distance) and returns another distance. Given a point c on the sphere (center of turn, for instance), and given another point p on the sphere that has radius TurnRad (great circle radius), this functions returns the distance (closest) between c and the line through the origin and p.
TurnRad |
|
staticprivate |
p,q,r are assumed to be on the surface of a sphere. This gives 1 for a right turn and -1 for a left turn.
p | point |
q | point |
r | point |
|
static |
Return the BOT and EOT trajectory change points for a turn (Horizontal Components Only)
np1 | Start point of the leg before the turn |
np2 | Vertex of the turn |
np3 | End point of the leg after the turn |
radius | Radius of the turn |
|
static |
Return the BOT and EOT trajectory change points for a turn (Horizontal Components Only)
np1 | Start point of the leg before the turn |
np2 | Vertex of the turn |
np3 | End point of the leg after the turn |
radius | Radius of the turn |
|
static |
Altitudes are not set.
p1 | |
p2 | |
p3 | |
radius | as a distance, not an angle |
|
static |
Altitudes are not set.
p1 | |
p2 | |
p3 | |
radius |
|
static |
Return the BOT, MOT, and EOT TCPs for a turn.
np1 | Start point of the leg before the turn |
np2 | Vertex of the turn |
np3 | End point of the leg after the turn |
R | Radius of the turn |