GAMS  1.4.0
UTMFrame.h
Go to the documentation of this file.
1 
54 #include "ReferenceFrame.h"
55 
56 #ifndef _GAMS_POSE_UTM_FRAME_H_
57 #define _GAMS_POSE_UTM_FRAME_H_
58 
59 #ifdef GAMS_UTM
60 
61 #include "CartesianFrame.h"
62 
63 namespace gams
64 {
65  namespace pose
66  {
67 #if 0
90  class GAMS_EXPORT UTMFrame : public ReferenceFrame
91  {
92  public:
103  UTMFrame(int zone = -1);
104 
117  UTMFrame(const ReferenceFrame &parent, int zone = -1);
118 
124  int zone();
125 
131  void zone(int zone);
132 
139  Position mk_loc(double easting, int zone, double northing, bool hemi);
140 
141  protected:
142 
143  static const int KM = 1000;
144  static const int ZONE_WIDTH = 1000 * KM;
145  static const int SOUTH_OFFSET = 10000 * KM;
146  static const int UPS_OFFSET = 4000 * KM;
147  static const int MAX_Y = 9600 * KM;
148  static const int MIN_Y = -9000 * KM;
149 
150  static constexpr int to_zone(double x);
151 
152  static constexpr double to_easting(double x);
153 
154  static constexpr bool to_hemi(double y);
155 
156  static constexpr double to_northing(double y);
157 
158  static constexpr double from_easting(double e, int zone);
159 
160  static constexpr double from_northing(double n, bool hemi);
161 
162  static char nato_band(double x, double y);
163 
169  virtual std::string get_name() const;
170 
177  virtual void transform_linear_to_origin(
178  double &x, double &y, double &z) const;
179 
186  virtual void transform_linear_from_origin(
187  double &x, double &y, double &z) const;
188 
196  virtual void transform_angular_to_origin(
197  double &rx, double &ry, double &rz) const;
198 
206  virtual void transform_angular_from_origin(
207  double &rx, double &ry, double &rz) const;
208 
222  virtual void transform_pose_to_origin(
223  double &x, double &y, double &z,
224  double &rx, double &ry, double &rz) const;
225 
239  virtual void transform_pose_from_origin(
240  double &x, double &y, double &z,
241  double &rx, double &ry, double &rz) const;
242 
252  virtual double calc_distance(
253  double x1, double y1, double z1,
254  double x2, double y2, double z2) const;
255 
263  virtual void do_normalize_linear(
264  double &x, double &y, double &z) const;
265 
278  virtual void do_normalize_pose(
279  double &x, double &y, double &z,
280  double &rx, double &ry, double &rz) const;
281 
282  private:
283  int zone_;
284 
285  friend class PositionVector;
286  };
287  }
288 }
289 
290 #include "UTMFrame.inl"
291 
292 #endif
293 #endif
294 #endif
#define GAMS_EXPORT
Definition: GamsExport.h:20
void transform_angular_to_origin(const ReferenceFrameType *origin, const ReferenceFrameType *self, double orx, double ory, double orz, double &rx, double &ry, double &rz)
Transform AngularVector in-place into its origin frame from this frame.
void transform_pose_to_origin(const ReferenceFrameType *origin, const ReferenceFrameType *self, double ox, double oy, double oz, double orx, double ory, double orz, double &x, double &y, double &z, double &rx, double &ry, double &rz, bool fixed)
Transform pose in-place into its origin frame from this frame.
void transform_angular_from_origin(const ReferenceFrameType *origin, const ReferenceFrameType *self, double orx, double ory, double orz, double &rx, double &ry, double &rz)
Transform AngularVector in-place from its origin frame.
void transform_pose_from_origin(const ReferenceFrameType *origin, const ReferenceFrameType *self, double ox, double oy, double oz, double orx, double ory, double orz, double &x, double &y, double &z, double &rx, double &ry, double &rz, bool fixed)
Transform pose in-place from its origin frame Simply applies linear and angular transforms independan...
gams::pose::ReferenceFrame ReferenceFrame
Base class for Reference Frames.
Contains all GAMS-related tools, classes and code.
Copyright (c) 2015 Carnegie Mellon University.