HelmertTransform.hpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
39 #ifndef GNSSTK_HELMERTTRANSFORM_HPP
40 #define GNSSTK_HELMERTTRANSFORM_HPP
41 
42 #include <map>
43 #include <string>
44 
45 #include "gnsstk_export.h"
46 #include "Exception.hpp"
47 #include "ReferenceFrame.hpp"
48 #include "CommonTime.hpp"
49 #include "Position.hpp"
50 #include "Vector.hpp"
51 #include "Matrix.hpp"
52 #include "Xvt.hpp"
53 
54 namespace gnsstk
55 {
64  {
65  public:
67  HelmertTransform() noexcept;
68 
142  double irx, double iry, double irz,
143  double itx, double ity, double itz,
144  double sc, const std::string& desc,
145  const CommonTime& refEpoch);
146 
149  std::string asString() const noexcept;
150 
157  void transform(const Position& pos, Position& result);
158 
166  void transform(const Vector<double>& vec, ReferenceFrame frame,
167  Vector<double>& result);
168 
176  void transform(const Triple& vec, ReferenceFrame frame, Triple& result);
177 
183  void transform(const Xvt& xvt, Xvt& result);
184 
192  void transform(double x, double y, double z,
193  ReferenceFrame frame,
194  double& rx, double& ry, double& rz);
195 
198  { return fromFrame; }
199 
202  { return toFrame; }
203 
206  { return epoch; }
207 
209  GNSSTK_EXPORT static const CommonTime PZ90Epoch;
210 
212  GNSSTK_EXPORT static const int stdCount = 5; // equal to number listed in HelmertTransform.cpp
213 
215  GNSSTK_EXPORT static const HelmertTransform stdTransforms[stdCount];
216 
217  protected:
218  // member data
219 
220  // this transformation takes fromFrame -> toFrame
223 
224  // the 7 parameters that define the tranformation
225  double rx;
226  double ry;
227  double rz;
228  double tx;
229  double ty;
230  double tz;
231  double scale;
232 
233  // transform quantities derived from the 7 parameters
236 
239 
242  std::string description;
243 
244  }; // end class HelmertTransform
245 
246 } // end namespace gnsstk
247 
248 #endif
gnsstk::HelmertTransform::transform
void transform(const Position &pos, Position &result)
Definition: HelmertTransform.cpp:151
gnsstk::HelmertTransform::epoch
CommonTime epoch
epoch at which transform is first applicable
Definition: HelmertTransform.hpp:238
gnsstk::ReferenceFrame
ReferenceFrame
Definition: ReferenceFrame.hpp:52
gnsstk::HelmertTransform::stdCount
static const GNSSTK_EXPORT int stdCount
length of array of pre-defined HelmertTransforms
Definition: HelmertTransform.hpp:212
Xvt.hpp
gnsstk::HelmertTransform::ty
double ty
Y axis translation in meters.
Definition: HelmertTransform.hpp:229
const
#define const
Definition: getopt.c:43
gnsstk::HelmertTransform::fromFrame
ReferenceFrame fromFrame
Reference frame to which *this is applied.
Definition: HelmertTransform.hpp:221
Position.hpp
gnsstk::Triple
Definition: Triple.hpp:68
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::HelmertTransform::ry
double ry
Y axis rotation in radians.
Definition: HelmertTransform.hpp:226
y
page HOWTO subpage DoxygenGuide Documenting Your Code page DoxygenGuide Documenting Your Code todo Flesh out this document section doctips Tips for Documenting When defining make sure that the prototype is identical between the cpp and hpp including both the namespaces and the parameter names for you have std::string as the return type in the hpp file and string as the return type in the cpp Doxygen may get confused and autolink to the cpp version with no documentation If you don t use the same parameter names between the cpp and hpp that will also confuse Doxygen Don t put type information in return or param documentation It doesn t really add anything and will often cause Doxygen to complain and not produce the documentation< br > use note Do not put a comma after a param name unless you mean to document multiple parameters< br/> the output stream</code >< br/> y
Definition: DOCUMENTING.dox:15
gnsstk::HelmertTransform::description
std::string description
Definition: HelmertTransform.hpp:242
gnsstk::Matrix< double >
gnsstk::HelmertTransform::tx
double tx
X axis translation in meters.
Definition: HelmertTransform.hpp:228
gnsstk::HelmertTransform::asString
std::string asString() const noexcept
Definition: HelmertTransform.cpp:119
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::HelmertTransform::getEpoch
CommonTime getEpoch() const noexcept
Get the time at which this transform becomes valid.
Definition: HelmertTransform.hpp:205
gnsstk::Xvt
Definition: Xvt.hpp:60
gnsstk::HelmertTransform::getFromFrame
ReferenceFrame getFromFrame() const noexcept
Get the reference frame this transform can convert from (or to).
Definition: HelmertTransform.hpp:197
gnsstk::HelmertTransform::getToFrame
ReferenceFrame getToFrame() const noexcept
Get the reference frame this transform can convert to (or from).
Definition: HelmertTransform.hpp:201
example4.pos
pos
Definition: example4.py:125
gnsstk::HelmertTransform::scale
double scale
scale factor, dimensionless, 0=no scale
Definition: HelmertTransform.hpp:231
gnsstk::Vector< double >
gnsstk::HelmertTransform
Definition: HelmertTransform.hpp:63
gnsstk::HelmertTransform::HelmertTransform
HelmertTransform() noexcept
Default constructor.
Definition: HelmertTransform.cpp:53
gnsstk::HelmertTransform::rz
double rz
Z axis rotation in radians.
Definition: HelmertTransform.hpp:227
gnsstk::HelmertTransform::stdTransforms
static const GNSSTK_EXPORT HelmertTransform stdTransforms[stdCount]
array of all pre-defined HelmertTransforms
Definition: HelmertTransform.hpp:215
gnsstk::HelmertTransform::rx
double rx
X axis rotation in radians.
Definition: HelmertTransform.hpp:225
gnsstk::HelmertTransform::translation
Vector< double > translation
the transform 3-vector in meters
Definition: HelmertTransform.hpp:235
Exception.hpp
CommonTime.hpp
ReferenceFrame.hpp
gnsstk::Position
Definition: Position.hpp:136
Matrix.hpp
gnsstk::HelmertTransform::rotation
Matrix< double > rotation
the transform 3x3 rotation matrix (w/o scale)
Definition: HelmertTransform.hpp:234
gnsstk::HelmertTransform::toFrame
ReferenceFrame toFrame
Reference frame resulting from *this transform.
Definition: HelmertTransform.hpp:222
gnsstk::HelmertTransform::PZ90Epoch
static const GNSSTK_EXPORT CommonTime PZ90Epoch
Epoch at which GLONASS transitions from PZ90 to PZ90.02.
Definition: HelmertTransform.hpp:209
gnsstk::HelmertTransform::tz
double tz
Z axis translation in meters.
Definition: HelmertTransform.hpp:230
Vector.hpp


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:39