Displacement uses straight cartesian vectors for lengths which can causes problems with doing lat/lon/height math. DLLH has only deltas which must add to a PARTICULAR LOCATION in order to have a length meaning. lat/lon/height is not a linear vector space, yet we can still work in the space as long as we realize the norm and length are not linear. In other words, Displacement maps to points in the coordinate system, then uses the points to get lengths, when all you might want to do is keep track of changes in lat/lon/height.
You should use these instead of Displacement when you can in order to make your code coordinate system independent (independent of the projected view).
Public Member Functions | |
DLLH () | |
Zero DDLH. | |
DLLH (const Angle &angle1, const Angle &angle2, const Length &length) | |
Create a default DLLH from angle, angle, length. | |
DLLH (const Location &l1, const Location &l2) | |
Create from two locations. | |
DLLH | operator/ (float r) const |
Scalar division (divide such that DLLH/r = X ==> DLLH = r*K). | |
DLLH | operator * (float r) const |
Scalar multiply (such that DLLH*r = X ==> DLLH = X/r). | |
DLLH | operator+ (const DLLH &w) const |
Add. | |
bool | operator== (const DLLH &w) const |
Comparison. | |
bool | operator!= (const DLLH &w) const |
Displacement | displacement (const Location &l) const |
Create a displacement object from a particular location. | |
Length | getHeight () const |
Get height of this (change in height we represent). | |
Angle | getLatitude () const |
Get angle1 of this (latitude). | |
Angle | getLongitude () const |
Get angle2 of this (longitude). | |
void | setHeight (const Length &h) |
Set our height change. | |
Protected Attributes | |
Angle | myAngle1 |
Angle | myAngle2 |
Length | myLength |
Friends | |
std::ostream & | operator<< (std::ostream &, const DLLH &) |
Print out DLLH. |
Create a default DLLH from angle, angle, length.
Create from two locations.
Basically l1+DLLH = l2;
Displacement code::DLLH::displacement | ( | const Location & | l | ) | const [inline] |
Create a displacement object from a particular location.
Length code::DLLH::getHeight | ( | ) | const [inline] |
Get height of this (change in height we represent).
Angle code::DLLH::getLatitude | ( | ) | const [inline] |
Get angle1 of this (latitude).
Angle code::DLLH::getLongitude | ( | ) | const [inline] |
Get angle2 of this (longitude).
DLLH code::DLLH::operator * | ( | float | r | ) | const [inline] |
Scalar multiply (such that DLLH*r = X ==> DLLH = X/r).
bool code::DLLH::operator!= | ( | const DLLH & | w | ) | const [inline] |
DLLH code::DLLH::operator/ | ( | float | r | ) | const [inline] |
Scalar division (divide such that DLLH/r = X ==> DLLH = r*K).
bool code::DLLH::operator== | ( | const DLLH & | w | ) | const [inline] |
Comparison.
void code::DLLH::setHeight | ( | const Length & | h | ) | [inline] |
Set our height change.
Angle code::DLLH::myAngle1 [protected] |
Angle code::DLLH::myAngle2 [protected] |
Length code::DLLH::myLength [protected] |