25 using namespace MSP::CCS;
32 double ellipsoidSemiMajorAxis,
double ellipsoidFlattening,
33 double originLongitude,
double originLatitude,
double originHeight,
double orientation) :
35 ellipsoidSemiMajorAxis, ellipsoidFlattening,
36 originLongitude, originLatitude, originHeight, orientation)
55 double x = localCartesian->
x();
56 double y = localCartesian->
y();
57 double z = localCartesian->
z();
58 delete localCartesian;
69 double az = localSphericalCoordinate->
azimuth();
71 double range = localSphericalCoordinate->
range();
83 const double elevation,
89 double sinAz = sin(azimuth);
90 double cosAz = cos(azimuth);
91 double sinEl = sin(elevation);
92 double cosEl = cos(elevation);
94 x = range * cosEl * sinAz;
95 y = range * cosEl * cosAz;
107 if(x == 0.0 && y == 0.0)
110 azimuth = atan2(x, y);
112 range = sqrt(x*x + y*y + z*z);
116 elevation = asin(z / range);
void localSphericalToLocalCartesian(const double azimuth, const double elevation, const double radius, double &x, double &y, double &z) const
MSP::CCS::GeodeticCoordinates * convertToGeodetic(MSP::CCS::CartesianCoordinates *cartesianCoordinates)
MSP::CCS::CartesianCoordinates * convertFromGeodetic(MSP::CCS::GeodeticCoordinates *geodeticCoordinates)
MSP::CCS::SphericalCoordinates * convertFromGeodetic(MSP::CCS::GeodeticCoordinates *geodeticCoordinates)
void localCartesianToLocalSpherical(const double x, const double y, const double z, double &azimuth, double &elevation, double &radius) const
LocalSpherical(double ellipsoidSemiMajorAxis, double ellipsoidFlattening, double originLongitude, double originLatitude, double originHeight, double orientation)
double elevationAngle() const
MSP::CCS::GeodeticCoordinates * convertToGeodetic(MSP::CCS::SphericalCoordinates *sphericalCoordinate)