git-svn-id: svn://db.shs.com.ru/pip@146 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2015-08-20 07:48:24 +00:00
parent f3e33358f8
commit 3348402c10
3 changed files with 15 additions and 33 deletions

View File

@@ -1,2 +1,2 @@
Pelipenko Ivan (peri4) peri4ko@yandex.ru
Bychkov Andrey () work.a.b@yandex.ru
Bychkov Andrey (andrey) work.a.b@yandex.ru

View File

@@ -455,24 +455,6 @@ void PIGeoPosition::initialize(PIMathVectorT3d v, PIGeoPosition::CoordinateSyste
}
PIGeoPosition operator+(const PIGeoPosition &left, const PIGeoPosition &right) {
PIGeoPosition l(left),r(right);
l.transformTo(PIGeoPosition::Cartesian);
r.transformTo(PIGeoPosition::Cartesian);
l += r;
return l;
}
PIGeoPosition operator-(const PIGeoPosition &left, const PIGeoPosition &right) {
PIGeoPosition l(left),r(right);
l.transformTo(PIGeoPosition::Cartesian);
r.transformTo(PIGeoPosition::Cartesian);
l -= r;
return l;
}
double PIGeoPosition::range(const PIGeoPosition &a, const PIGeoPosition &b) {
PIGeoPosition l(a),r(b);
l.transformTo(PIGeoPosition::Cartesian);

View File

@@ -51,10 +51,10 @@ public:
PIGeoPosition(PIMathVectorT3d v, CoordinateSystem s = Cartesian, PIEllipsoidModel ell = PIEllipsoidModel::WGS84Ellipsoid());
PIGeoPosition transformTo(CoordinateSystem sys);
PIGeoPosition asGeodetic() {transformTo(Geodetic); return *this; } /// Convert to geodetic coordinate
PIGeoPosition asGeodetic(const PIEllipsoidModel &ell) {setEllipsoidModel(ell); transformTo(Geodetic); return *this;} /// Convert to another ell, then to geodetic coordinates
PIGeoPosition asECEF() {transformTo(Cartesian); return *this; } /// Convert to cartesian coordinates
PIGeoPosition &transformTo(CoordinateSystem sys);
PIGeoPosition &asGeodetic() {transformTo(Geodetic); return *this; } /// Convert to geodetic coordinate
PIGeoPosition &asGeodetic(const PIEllipsoidModel &ell) {setEllipsoidModel(ell); transformTo(Geodetic); return *this;} /// Convert to another ell, then to geodetic coordinates
PIGeoPosition &asECEF() {transformTo(Cartesian); return *this; } /// Convert to cartesian coordinates
double x() const;
double y() const;
@@ -70,16 +70,16 @@ public:
/// Set the ellipsoid values for this PIGeoPosition given a ellipsoid.
void setEllipsoidModel(const PIEllipsoidModel &ell) {el = ell;}
/// Set the \a PIGeoPosition given geodetic coordinates. \a CoordinateSystem is set to \a Geodetic.
/// Set the \a PIGeoPosition given geodetic coordinates in degrees. \a CoordinateSystem is set to \a Geodetic.
PIGeoPosition &setGeodetic(double lat, double lon, double ht, PIEllipsoidModel ell = PIEllipsoidModel::WGS84Ellipsoid());
/// Set the \a PIGeoPosition given geocentric coordinates. \a CoordinateSystem is set to \a Geocentric
/// Set the \a PIGeoPosition given geocentric coordinates in degrees. \a CoordinateSystem is set to \a Geocentric
PIGeoPosition &setGeocentric(double lat, double lon, double rad);
/// Set the \a PIGeoPosition given spherical coordinates. \a CoordinateSystem is set to \a Spherical
/// Set the \a PIGeoPosition given spherical coordinates in degrees. \a CoordinateSystem is set to \a Spherical
PIGeoPosition &setSpherical(double theta, double phi, double rad);
/// Set the \a PIGeoPosition given ECEF coordinates. \a CoordinateSystem is set to \a Cartesian.
/// Set the \a PIGeoPosition given ECEF coordinates in meeters. \a CoordinateSystem is set to \a Cartesian.
PIGeoPosition &setECEF(double x, double y, double z);
/// Fundamental conversion from spherical to cartesian coordinates.
@@ -161,11 +161,11 @@ private:
};
PIGeoPosition operator-(const PIGeoPosition &left, const PIGeoPosition &right);
PIGeoPosition operator+(const PIGeoPosition &left, const PIGeoPosition &right);
PIGeoPosition operator*(const double &scale, const PIGeoPosition &right) {PIMathVectorT3d tmp(right); tmp *= scale; return PIGeoPosition(tmp);}
PIGeoPosition operator*(const PIGeoPosition &left, const double &scale) {return operator* (scale, left);}
PIGeoPosition operator*(const int &scale, const PIGeoPosition &right) {return operator* (double(scale), right);}
PIGeoPosition operator*(const PIGeoPosition &left, const int &scale) {return operator* (double(scale), left);}
inline PIGeoPosition operator-(const PIGeoPosition &left, const PIGeoPosition &right) {PIGeoPosition l(left),r(right); l.transformTo(PIGeoPosition::Cartesian); r.transformTo(PIGeoPosition::Cartesian); l -= r; return l;}
inline PIGeoPosition operator+(const PIGeoPosition &left, const PIGeoPosition &right) {PIGeoPosition l(left),r(right); l.transformTo(PIGeoPosition::Cartesian); r.transformTo(PIGeoPosition::Cartesian); l += r; return l;}
inline PIGeoPosition operator*(const double &scale, const PIGeoPosition &right) {PIMathVectorT3d tmp(right); tmp *= scale; return PIGeoPosition(tmp);}
inline PIGeoPosition operator*(const PIGeoPosition &left, const double &scale) {return operator* (scale, left);}
inline PIGeoPosition operator*(const int &scale, const PIGeoPosition &right) {return operator* (double(scale), right);}
inline PIGeoPosition operator*(const PIGeoPosition &left, const int &scale) {return operator* (double(scale), left);}
#endif // PIGEOPOSITION_H