X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FATCDCL%2FATCProjection.hxx;h=94dfb92b9afd0306dd9ffa055606220995e5a255;hb=33b7e3e32ec215931117e738b370107e0c47d036;hp=faf8eb395b68f8e1e50043bb352029a208d05495;hpb=aacebaf4b8f101dbad17f20e5136f50cd6991a6f;p=flightgear.git diff --git a/src/ATCDCL/ATCProjection.hxx b/src/ATCDCL/ATCProjection.hxx index faf8eb395..94dfb92b9 100644 --- a/src/ATCDCL/ATCProjection.hxx +++ b/src/ATCDCL/ATCProjection.hxx @@ -1,4 +1,4 @@ -// ATCProjection.hxx - A convienience projection class for the ATC/AI system. +// ATCProjection.hxx - A convenience projection class for the ATC/AI system. // // Written by David Luff, started 2002. // @@ -21,30 +21,7 @@ #ifndef _FG_ATC_PROJECTION_HXX #define _FG_ATC_PROJECTION_HXX -#include - -// FGATCProjection - a class to project an area local to an airport onto an orthogonal co-ordinate system -class FGATCProjection { - -public: - FGATCProjection(); - FGATCProjection(const Point3D& centre); - ~FGATCProjection(); - - void Init(const Point3D& centre); - - // Convert a lat/lon co-ordinate (degrees) to the local projection (meters) - Point3D ConvertToLocal(const Point3D& pt); - - // Convert a local projection co-ordinate (meters) to lat/lon (degrees) - Point3D ConvertFromLocal(const Point3D& pt); - -private: - Point3D _origin; // lat/lon of local area origin - double _correction_factor; // Reduction in surface distance per degree of longitude due to latitude. Saves having to do a cos() every call. - -}; - +#include // FGATCAlignedProjection - a class to project an area local to a runway onto an orthogonal co-ordinate system // with the origin at the threshold and the runway aligned with the y axis. @@ -52,19 +29,19 @@ class FGATCAlignedProjection { public: FGATCAlignedProjection(); - FGATCAlignedProjection(const Point3D& centre, double heading); + FGATCAlignedProjection(const SGGeod& centre, double heading); ~FGATCAlignedProjection(); - void Init(const Point3D& centre, double heading); + void Init(const SGGeod& centre, double heading); // Convert a lat/lon co-ordinate (degrees) to the local projection (meters) - Point3D ConvertToLocal(const Point3D& pt); + SGVec3d ConvertToLocal(const SGGeod& pt); // Convert a local projection co-ordinate (meters) to lat/lon (degrees) - Point3D ConvertFromLocal(const Point3D& pt); + SGGeod ConvertFromLocal(const SGVec3d& pt); private: - Point3D _origin; // lat/lon of local area origin (the threshold) + SGGeod _origin; // lat/lon of local area origin (the threshold) double _theta; // the rotation angle for alignment in radians double _correction_factor; // Reduction in surface distance per degree of longitude due to latitude. Saves having to do a cos() every call.