24#include "../proxies/gsoap_resqml2_0_1Stub.h"
36 double convertToRadians(
double angleValue, gsoap_resqml2_0_1::eml20__PlaneAngleUom angleUom)
38 constexpr double PI = 3.141592653589793238463;
40 if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::rad)
42 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::_0_x002e001_x0020seca)
43 return angleValue * PI / 648000000;
44 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::ccgr)
45 return angleValue * PI / 2000000;
46 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::cgr)
47 return angleValue * PI / 20000;
48 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::dega)
49 return angleValue * PI / 180;
50 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::gon)
51 return angleValue * PI / 200;
52 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::krad)
53 return angleValue * 1000;
54 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::mila)
55 return angleValue * PI / 3200;
56 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::mina)
57 return angleValue * PI / 10800;
58 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::Mrad)
59 return angleValue * 1000000;
60 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::mrad)
61 return angleValue / 1000;
62 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::rev)
63 return angleValue * PI * 2;
64 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::seca)
65 return angleValue * PI / 648000;
66 else if (angleUom == gsoap_resqml2_0_1::eml20__PlaneAngleUom::urad)
67 return angleValue / 1000000;
69 throw std::invalid_argument(
"The uom of the angle has not been recognized.");
83 std::pair<double, double>
rotateXY(
double xSource,
double ySource,
double angleValue, gsoap_resqml2_0_1::eml20__PlaneAngleUom angleUom)
86 const double cosAngle = cos(radAngleValue);
87 const double sinAngle = sin(radAngleValue);
89 return std::pair<double, double>(xSource * cosAngle - ySource * sinAngle, xSource * sinAngle + ySource * cosAngle);
The trigonometry namespace.
double convertToRadians(double angleValue, gsoap_resqml2_0_1::eml20__PlaneAngleUom angleUom)
Definition: Trigonometry.h:36
std::pair< double, double > rotateXY(double xSource, double ySource, double angleValue, gsoap_resqml2_0_1::eml20__PlaneAngleUom angleUom)
Definition: Trigonometry.h:83