ICAROUS
|
#include <NavPoint.h>
Public Member Functions | |
NavPoint () | |
NavPoint (const Position &p, double t) | |
NavPoint (const Position &p, double t, const std::string &label) | |
bool | isInvalid () const |
bool | almostEquals (const NavPoint &v) const |
bool | almostEqualsPosition (const NavPoint &v, double epsilon_horiz, double epsilon_vert) const |
bool | almostEqualsPosition (const NavPoint &v) const |
bool | operator== (const NavPoint &v) const |
bool | equals (const NavPoint &v) const |
bool | operator!= (const NavPoint &v) const |
Vect2 | vect2 () const |
Vect3 | vect3 () const |
const LatLonAlt & | lla () const |
const Position & | position () const |
double | x () const |
double | y () const |
double | z () const |
double | lat () const |
double | lon () const |
double | alt () const |
double | latitude () const |
double | longitude () const |
double | altitude () const |
double | xCoordinate () const |
double | yCoordinate () const |
double | zCoordinate () const |
double | time () const |
const std::string & | name () const |
bool | isNameSet () const |
bool | isLatLon () const |
const NavPoint | mkLat (const double lat) const |
const NavPoint | mkX (const double x) const |
const NavPoint | mkLon (const double lon) const |
const NavPoint | mkY (const double y) const |
const NavPoint | mkAlt (const double alt) const |
const NavPoint | mkZ (const double z) const |
const NavPoint | makeTime (const double time) const |
const NavPoint | makeName (const std::string &label) const |
const NavPoint | appendName (const std::string &label) const |
const NavPoint | appendNameNoDuplication (const std::string &label) const |
const NavPoint | makeAdded () const |
const NavPoint | makeMovedFrom (const NavPoint &o) const |
const NavPoint | makePosition (const Position &p) const |
Velocity | initialVelocity (const NavPoint &s) const |
double | verticalSpeed (const NavPoint &s) const |
const NavPoint | linear (const Velocity &v, const double time) const |
const NavPoint | linearEst (const Velocity &vo, double tm) const |
const NavPoint | interpolate (const NavPoint &np, const double time) const |
double | distanceH (const NavPoint &np2) const |
double | distanceV (const NavPoint &np2) const |
std::string | toStringShort () const |
std::string | toStringShort (int precision) const |
std::string | toString () const |
std::string | toString (int precision) const |
std::vector< std::string > | toStringList (int precision, bool tcp) const |
Static Public Member Functions | |
static NavPoint | makeLatLonAlt (double lat, double lon, double alt, double t) |
static NavPoint | mkLatLonAlt (double lat, double lon, double alt, double t) |
static NavPoint | makeXYZ (double x, double y, double z, double t) |
static const NavPoint & | ZERO_LL () |
static const NavPoint & | ZERO_XYZ () |
static const NavPoint & | INVALID () |
static Velocity | initialVelocity (const NavPoint &s1, const NavPoint &s2) |
static Velocity | finalVelocity (const NavPoint &s1, const NavPoint &s2) |
static Velocity | averageVelocity (const NavPoint &s1, const NavPoint &s2) |
Private Member Functions | |
const NavPoint | copy (const Position &p) const |
Private Attributes | |
Position | p |
double | t |
std::string | name_s |
An immutable class representing a position at a time. In addition a name (or label) can be attached to one of these NavPoints.
larcfm::NavPoint::NavPoint | ( | ) |
Construct a zero NavPoint
larcfm::NavPoint::NavPoint | ( | const Position & | p, |
double | t | ||
) |
larcfm::NavPoint::NavPoint | ( | const Position & | p, |
double | t, | ||
const std::string & | label | ||
) |
bool larcfm::NavPoint::almostEquals | ( | const NavPoint & | v | ) | const |
bool larcfm::NavPoint::almostEqualsPosition | ( | const NavPoint & | v | ) | const |
bool larcfm::NavPoint::almostEqualsPosition | ( | const NavPoint & | v, |
double | epsilon_horiz, | ||
double | epsilon_vert | ||
) | const |
double larcfm::NavPoint::alt | ( | ) | const |
Return the altitude
double larcfm::NavPoint::altitude | ( | ) | const |
Return the altitude in [ft]
double larcfm::NavPoint::distanceH | ( | const NavPoint & | np2 | ) | const |
Horizontal distance between this point and the other given point
np2 | another point |
double larcfm::NavPoint::distanceV | ( | const NavPoint & | np2 | ) | const |
bool larcfm::NavPoint::equals | ( | const NavPoint & | v | ) | const |
Equality
Calculate and return the initial velocity between the current point and the given point This function is commutative: direction between points is always determined by the time ordering of the two points.
s | the given NavPoint |
return a new NavPoint between this NavPoint and np that corresponds to time by interpolation This function is commutative with respect to the points: direction between points is always determined by the time ordering of the two points. Negative time results in a velocity in the opposite direction (along the same great circle, if in latlon)
np | next NavPoint |
time | time |
bool larcfm::NavPoint::isInvalid | ( | ) | const |
Returns true if any components of this NavPoint are marked as Invalid
bool larcfm::NavPoint::isLatLon | ( | ) | const |
Is this point specified in lat/lon?
bool larcfm::NavPoint::isNameSet | ( | ) | const |
Returns true if the "label" label of this NavPoint has been set.
double larcfm::NavPoint::lat | ( | ) | const |
Return the latitude
double larcfm::NavPoint::latitude | ( | ) | const |
Return the latitude in degrees north
Perform a linear projection of the current NavPoint with given velocity and time. If the current NavPoint is in LatLonAlt, then a constant track angle linear projection is used. Negative time is a projection in the opposite direction (along the same great circle, if in latlon) and into the past
v | velocity |
time | relative time |
Compute a new lat/lon that is obtained by moving with velocity vo for tm secs This is a computationally fast estimate, and only should be used for relatively short distances. Negative time is a projection in the opposite direction (along the same great circle, if in latlon) and into the past
vo | velocity away from original position |
tm | time of relocation |
double larcfm::NavPoint::lon | ( | ) | const |
Return the longitude
double larcfm::NavPoint::longitude | ( | ) | const |
Return the longitude in degrees east
const NavPoint larcfm::NavPoint::makeAdded | ( | ) | const |
Make an "added" point that does not include valid source info
|
static |
const NavPoint larcfm::NavPoint::makeName | ( | const std::string & | label | ) | const |
const NavPoint larcfm::NavPoint::makeTime | ( | const double | time | ) | const |
|
static |
const NavPoint larcfm::NavPoint::mkAlt | ( | const double | alt | ) | const |
const NavPoint larcfm::NavPoint::mkLat | ( | const double | lat | ) | const |
|
static |
const NavPoint larcfm::NavPoint::mkLon | ( | const double | lon | ) | const |
const NavPoint larcfm::NavPoint::mkX | ( | const double | x | ) | const |
const NavPoint larcfm::NavPoint::mkY | ( | const double | y | ) | const |
const NavPoint larcfm::NavPoint::mkZ | ( | const double | z | ) | const |
const std::string & larcfm::NavPoint::name | ( | ) | const |
Return the label (or name) for this point
bool larcfm::NavPoint::operator!= | ( | const NavPoint & | v | ) | const |
Inequality
bool larcfm::NavPoint::operator== | ( | const NavPoint & | v | ) | const |
Equality
double larcfm::NavPoint::time | ( | ) | const |
Return the time [s]
std::string larcfm::NavPoint::toString | ( | ) | const |
String representation, using the default output precision (see Contants.get_output_precision()) INCLUDING name field
std::string larcfm::NavPoint::toString | ( | int | precision | ) | const |
String representation, using the give precision INCLUDING "name" field
precision | number of digits of precision |
std::string larcfm::NavPoint::toStringShort | ( | ) | const |
String representation, using the default output precision (see Contants.get_output_precision())
std::string larcfm::NavPoint::toStringShort | ( | int | precision | ) | const |
String representation, using the give precision, NOT including name field
precision | number of digits of precision |
Vect3 larcfm::NavPoint::vect3 | ( | ) | const |
double larcfm::NavPoint::verticalSpeed | ( | const NavPoint & | s | ) | const |
Calculate and return the vertical speed between the current point and the given point This function is commutative: direction between points is always determined by the time ordering of the two points.
s | the given NavPoint |
double larcfm::NavPoint::x | ( | ) | const |
Return the x coordinate
double larcfm::NavPoint::xCoordinate | ( | ) | const |
Return the x coordinate in [nmi]
double larcfm::NavPoint::y | ( | ) | const |
Return the y coordinate
double larcfm::NavPoint::yCoordinate | ( | ) | const |
Return the y coordinate in [nmi]
double larcfm::NavPoint::z | ( | ) | const |
Return the z coordinate
double larcfm::NavPoint::zCoordinate | ( | ) | const |
Return the z coordinate in [ft]