USML
wposition1.h
1 
5 #ifndef USML_TYPES_WPOSITION1_H
6 #define USML_TYPES_WPOSITION1_H
7 
8 #include <usml/ublas/ublas.h>
9 #include <usml/types/wvector1.h>
10 #include <usml/types/wposition.h>
11 
12 namespace usml {
13 namespace types {
16 
23 class USML_DECLSPEC wposition1: public wvector1
24 {
25 
26 public:
27 
28  //*********************************
29  // initialization
30 
38  wposition1(double lat = 0.0, double lng = 0.0, double alt = 0.0);
39 
51  wposition1( const wposition1& location, double range, double bearing);
52 
59  wposition1(const wvector1& other);
60 
64  wposition1(const wvector& other, unsigned row, unsigned col);
65 
66 public:
67 
68  //******************************
69  // Altitude property
70 
77  inline double altitude() const {
78  return rho() - wposition::earth_radius;
79  }
80 
87  inline void altitude(double altitude) {
88  rho(altitude + wposition::earth_radius);
89  }
90 
91  //******************************
92  // Latitude property
93 
100  inline double latitude() const {
101  return to_latitude(theta());
102  }
103 
110  inline void latitude(double latitude) {
111  theta(to_colatitude(latitude));
112  }
113 
114  //******************************
115  // Longitude property
116 
123  inline double longitude() const {
124  return to_degrees(phi());
125  }
126 
133  inline void longitude(double longitude) {
134  phi(to_radians(longitude));
135  }
136 
137  //******************************
138  // Utilities
139 
151  double gc_range( const wposition1& location, double* bearing=NULL) const ;
152 
153 };
154 
156 } // end of ocean namespace
157 } // end of usml namespace
158 
159 #endif
void altitude(double altitude)
Defines the altitude above the mean sea level.
Definition: wposition1.h:87
static double earth_radius
Local radius of curvature in the area of operations.
Definition: wposition.h:100
math_traits< double >::value_type to_colatitude(math_traits< double >::const_reference t)
Definition: math_traits.h:761
math_traits< double >::value_type to_latitude(math_traits< double >::const_reference t)
Definition: math_traits.h:755
void latitude(double latitude)
Defines the latitude component of geodetic earth coordinates.
Definition: wposition1.h:110
void longitude(double longitude)
Defines the longitude component of geodetic earth coordinates.
Definition: wposition1.h:133
Individual world vector in spherical earth coordinates.
Definition: wvector1.h:27
double longitude() const
Retrieves the longitude component of geodetic earth coordinates.
Definition: wposition1.h:123
double altitude() const
Retrieves the altitude above the mean sea level.
Definition: wposition1.h:77
double latitude() const
Retrieves the latitude component of geodetic earth coordinates.
Definition: wposition1.h:100
World location in geodetic earth coordinates (latitude, longitude, and altitude). ...
Definition: wposition1.h:23
math_traits< double >::value_type to_degrees(math_traits< double >::const_reference t)
Definition: math_traits.h:743
World vector in spherical earth coordinates.
Definition: wvector.h:42
math_traits< double >::value_type to_radians(math_traits< double >::const_reference t)
Definition: math_traits.h:749