git-svn-id: svn://db.shs.com.ru/pip@146 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user