#include <GeoPos.h>
Inheritance diagram for GeoPos:

Public Methods | |
| GeoPos () | |
| Default constructor. | |
| GeoPos (Vector3 const &v) | |
| Copy constructor from a standard vector. | |
| GeoPos (GeoPos const &g) | |
| Copy constructor. | |
| const GeoPos & | operator= (Vector3 const &v) |
| Copy operator. | |
| const GeoPos & | operator= (GeoPos const &g) |
| Copy operator. | |
| virtual | ~GeoPos () |
| Destructor. | |
| double | getSlantRange (GeoPos const &) const |
| Get the absolute distance between two points in ECEF coordinates. | |
| void | getSurfaceDistance (GeoPos const &, double &distance, double &bearing) const |
| Get the distance between to points along the surface of the reference ellipsoid. | |
| void | getShellDistance (GeoPos const &, double &distance, double &bearing) const |
| Get the distance between two points along the surface of the reference ellipsoid, including altitude. | |
| void | getLocalFrame (Vector3 &localX, Vector3 &localY, Vector3 &localZ) const |
| Get a local cartesian coordinate frame. | |
| void | getLLA (double &lat, double &lon, double &alt) const |
| Get the current latitude, longitude, and altitude relative to the reference ellipsoid. | |
| void | setLLA (double lat, double lon, double alt=0.0) |
| Set the position using latitude, longitude, and altitude. | |
| double | getLongitude () const |
| Get the current latitude. | |
| double | getLatitude () const |
| Get the current longitude. | |
| double | getAltitude () const |
| Get the current altitude. | |
| void | _updateLLA () const |
| Internal method to update latitude, longitude, and altitude. | |
| void | getUTM (double &northing, double &easting, char &zone, char &designator) const |
| Get the current position in UTM coordinates. | |
| void | setUTM (double northing, double easting, char zone, char designator, double alt=0.0) |
| Set the current position from UTM coordinates. | |
| void | setUTM (double northing, double easting, const char *zone, double alt=0.0) |
| Set the current position from UTM coordinates. | |
| double | getNorthing () const |
| Get the UTM northing coordinate for the current position. | |
| double | getEasting () const |
| Get the UTM easting coordinate for the current position. | |
| int | getZoneNumber () const |
| Get the UTM zone number for the current position. | |
| char | getZoneLetter () const |
| Get the UTM zone letter for the current position. | |
| void | _updateUTM () const |
| Internal method to update UTM northing, easting, and zone. | |
| void | setReferenceEllipsoid (ReferenceEllipsoid const &=GeoRef::WGS84) |
| Set the reference ellipsoid used for LLA and UTM conversions. | |
| ReferenceEllipsoid const & | getReferenceEllipsoid () const |
| Get the current reference ellipsoid. | |
| void | setDirty () |
| Set flags to indicate that the underlying ECEF vector has changed. | |
| virtual std::string | asString () const |
| String representation. | |
| virtual std::string | typeString () const |
| Return a string representation of the type. | |
| void | parseXML (const char *) |
| Set the current position from XML character data. | |
| virtual void | serialize (Archive &) |
| Serialize to or from a data archive. | |
| bool | operator== (const Vector3 &v) const |
| Test for equality with another vectors. | |
| bool | operator!= (const Vector3 &v) const |
| Test for inequality with another vectors. | |
| void | set (double x_, double y_, double z_) |
| Set the vector components. | |
| double & | operator[] (int i) |
| Get a reference to vector component by numeric index. | |
| double | operator[] (int i) const |
| Get the value of a vector component by numeric index. | |
| double & | x () |
| Get a reference to the x-component. | |
| double | x () const |
| Get the value of the x-component. | |
| double & | y () |
| Get a reference to the y-component. | |
| double | y () const |
| Get the value of the y-component. | |
| double & | z () |
| Get a reference to the z-component. | |
| double | z () const |
| Get the value of the z-component. | |
| bool | valid () const |
| Test if all components are valid floating point values. | |
| bool | isNaN () const |
| Test if any components are NaN (not-a-number). | |
| bool | isZero () const |
| double | operator * (const Vector3 &rhs) const |
| Compute the dot product with another vector. | |
| const Vector3 | operator * (double rhs) const |
| Multiply by a scalar. | |
| const Vector3 | operator^ (const Vector3 &rhs) const |
| Compute the cross product with another vector. | |
| Vector3 & | operator *= (double rhs) |
| Unary multiply by a scalar. | |
| const Vector3 | operator/ (double rhs) const |
| Divide by a scalar. | |
| Vector3 & | operator/= (double rhs) |
| Unary divide by a scalar. | |
| const Vector3 | operator+ (const Vector3 &rhs) const |
| Binary vector addition. | |
| Vector3 & | operator+= (const Vector3 &rhs) |
| Unary vector addition. | |
| const Vector3 | operator- (const Vector3 &rhs) const |
| Binary vector subtraction. | |
| const Vector3 | operator- () const |
| Negation operator; returns the negative of the vector. | |
| Vector3 & | operator-= (const Vector3 &rhs) |
| Unary vector subtraction. | |
| double | length () const |
| Get the length of the vector = sqrt(v*v). | |
| double | length2 () const |
| Get the length squared of the vector = v*v. | |
| double | normalize () |
| Normalize the vector so that it has length unity. | |
| const Vector3 | normalized () const |
| Get a unit vector in the direction of this vector. | |
| Matrix3 | starMatrix () const |
| Compute the star matrix of this vector. | |
| void | bound (Vector3 &min, Vector3 &max) |
| Update bounding vectors. | |
| std::vector< double > | getElements () const |
| Get the components of this vector as a std::vector<double>. | |
| void | setElements (std::vector< double > const &v) |
| Set the components of this vector from a std::vector<double>. | |
| virtual void | convertXML () |
| Convert XML data to internal format prior to serialization. | |
Static Public Methods | |
| char | _getUTMDesignator (double lat) |
| Internal class method to get the UTM zone letter for a given latitude. | |
Static Public Attributes | |
| const Vector3 | ZERO |
| Null vector. | |
| const Vector3 | XAXIS |
| Unit vector along the x-axis. | |
| const Vector3 | YAXIS |
| Unit vector along the y-axis. | |
| const Vector3 | ZAXIS |
| Unit vector along the z-axis. | |
Protected Methods | |
| void | iterateECEF (double p, double z, double x, double y, int iter=0) const |
| Compute ECEF from LLA. | |
Protected Attributes | |
| double | _lat |
| geodetic latitude | |
| double | _lon |
| longitude | |
| double | _alt |
| altitude above reference ellipse | |
| bool | _stale_lla |
| lla needs update | |
| bool | _stale_utm |
| utm needs update | |
| double | _northing |
| utm northing | |
| double | _easting |
| utm easting | |
| char | _zone |
| utm zone | |
| char | _designator |
| utm designator | |
| ReferenceEllipsoid const * | _ref |
| reference ellipsoid | |
| double | _x |
| The x component. | |
| double | _y |
| The y component. | |
| double | _z |
| The z component. | |
Friends | |
| Vector3 | operator * (double lhs, const Vector3 &rhs) |
| Multiply a vector by a scalar on the left. | |
| double | dot (const Vector3 &a, const Vector3 &b) |
| Compute the dot product of two vectors. | |
| const Vector3 | cross (const Vector3 &a, const Vector3 &b) |
| Compute the cross product of two vectors. | |
| SIMDATA_EXPORT std::ostream & | operator<< (std::ostream &output, const Vector3 &vec) |
| Format to an output string. | |
Extends a cartesian 3-vector to Earth-Centered, Earth-Fixed (ECEF) coordinates. Helper methods are provided for lazy conversion to and from Geodetic and UTM coordinates using a standard reference ellipsoid.
Due to subclassing of Vector3, modifications of the ECEF vector do not automatically set the dirty flags used for lazy evaluations of other coordinate representations. After calculations that modify the underlying ECEF vector, you *must* call setDirty() manually to ensure that subsequent conversions to Geodetic and UTM coordinates function properly.
|
|
Default constructor. The WGS84 reference ellipsoid will be set implicity, and the position will be set to (0, 0, 0) --- the center of the Earth. |
|
|
Copy constructor from a standard vector. The WGS84 reference ellipsoid will be set implicity. |
|
|
Copy constructor. The new GeoPos will use the same reference ellipsoid as the source. |
|
|
Destructor.
|
|
|
Internal class method to get the UTM zone letter for a given latitude.
|
|
|
Internal method to update latitude, longitude, and altitude. You do not need to call this directly. |
|
|
Internal method to update UTM northing, easting, and zone. You do not need to call this directly. |
|
|
String representation.
Reimplemented from Vector3. |
|
||||||||||||
|
Update bounding vectors.
The components of |
|
|
Convert XML data to internal format prior to serialization. This method is currently only called by the XML parser for Object classes. If another BaseType class requires this method, a call must be added to the appropriate XML handler in the parser. |
|
|
Get the current altitude.
|
|
|
Get the UTM easting coordinate for the current position.
|
|
|
Get the components of this vector as a std::vector<double>.
|
|
|
Get the current longitude.
|
|
||||||||||||||||
|
Get the current latitude, longitude, and altitude relative to the reference ellipsoid.
|
|
||||||||||||||||
|
Get a local cartesian coordinate frame.
|
|
|
Get the current latitude.
|
|
|
Get the UTM northing coordinate for the current position.
|
|
|
Get the current reference ellipsoid.
|
|
||||||||||||||||
|
Get the distance between two points along the surface of the reference ellipsoid, including altitude. This method is very similar to getSurfaceDistance, but includes the altitude difference between the two points in an approximate way that can be used both at close range and globally.
|
|
|
Get the absolute distance between two points in ECEF coordinates. This is the normal cartesian distance between two points; the curvature of the ellipsoid is not involved. |
|
||||||||||||||||
|
Get the distance between to points along the surface of the reference ellipsoid. Both points are projected to altitude = 0, and the distance calculated along a geodesic path of the reference ellipsoid.
|
|
||||||||||||||||||||
|
Get the current position in UTM coordinates.
|
|
|
Get the UTM zone letter for the current position.
|
|
|
Get the UTM zone number for the current position.
|
|
|
Test if any components are NaN (not-a-number).
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
Get the length of the vector = sqrt(v*v).
|
|
|
Get the length squared of the vector = v*v.
|
|
|
Normalize the vector so that it has length unity.
|
|
|
Get a unit vector in the direction of this vector.
|
|
|
Multiply by a scalar.
|
|
|
Compute the dot product with another vector.
|
|
|
Unary multiply by a scalar.
|
|
|
Test for inequality with another vectors.
|
|
|
Binary vector addition.
|
|
|
Unary vector addition.
|
|
|
Negation operator; returns the negative of the vector.
|
|
|
Binary vector subtraction.
|
|
|
Unary vector subtraction.
|
|
|
Divide by a scalar.
|
|
|
Unary divide by a scalar.
|
|
|
Copy operator. The reference ellipsoid is also copied. |
|
|
Copy operator. The reference ellipsoid will not be modified. Reimplemented from Vector3. |
|
|
Test for equality with another vectors.
|
|
|
Get the value of a vector component by numeric index. The index starts at zero (=x), and an IndexException is thrown for invalid indices.
|
|
|
Get a reference to vector component by numeric index. The index starts at zero (=x), and an IndexException is thrown for invalid indices.
|
|
|
Compute the cross product with another vector.
|
|
|
Set the current position from XML character data.
Reimplemented from Vector3. |
|
|
Serialize to or from a data archive.
Reimplemented from Vector3. |
|
||||||||||||||||
|
Set the vector components.
|
|
|
Set flags to indicate that the underlying ECEF vector has changed. Call this method after any computations that modify the ECEF vector to ensure that LLA and UTM coordinates will be updated correctly. |
|
|
Set the components of this vector from a std::vector<double>.
|
|
||||||||||||||||
|
Set the position using latitude, longitude, and altitude.
|
|
|
Set the reference ellipsoid used for LLA and UTM conversions. The default ellipsoid is WGS-84. The reference ellipsoid can be specified independently for each GeoPos instance, but mixing results from different ellipsoids is not recommended. |
|
||||||||||||||||||||
|
Set the current position from UTM coordinates.
|
|
||||||||||||||||||||||||
|
Set the current position from UTM coordinates.
|
|
|
Compute the star matrix of this vector.
|
|
|
Return a string representation of the type.
Reimplemented from Vector3. |
|
|
Test if all components are valid floating point values.
|
|
|
Get the value of the x-component.
|
|
|
Get a reference to the x-component.
|
|
|
Get the value of the y-component.
|
|
|
Get a reference to the y-component.
|
|
|
Get the value of the z-component.
|
|
|
Get a reference to the z-component.
|
|
||||||||||||
|
Compute the cross product of two vectors.
|
|
||||||||||||
|
Compute the dot product of two vectors.
|
|
||||||||||||
|
Multiply a vector by a scalar on the left.
|
|
||||||||||||
|
Format to an output string.
|
|
|
altitude above reference ellipse
|
|
|
utm designator
|
|
|
utm easting
|
|
|
geodetic latitude
|
|
|
longitude
|
|
|
utm northing
|
|
|
reference ellipsoid
|
|
|
lla needs update
|
|
|
utm needs update
|
|
|
The x component.
|
|
|
The y component.
|
|
|
The z component.
|
|
|
utm zone
|
|
|
Unit vector along the x-axis.
|
|
|
Unit vector along the y-axis.
|
|
|
Unit vector along the z-axis.
|
|
|
Null vector.
|
|
SimData version pre-0.4.0. For more information on SimData, visit the SimData Homepage. Generated on Tue Oct 14 12:06:41 2003, using Doxygen 1.2.18. |