diff options
| author | Andrew Bell <andrew.bell.ia@gmail.com> | 2019-05-15 10:47:03 -0400 |
|---|---|---|
| committer | Andrew Bell <andrew.bell.ia@gmail.com> | 2019-05-15 10:47:03 -0400 |
| commit | 8f268409d37cea329d263e177b83e42f8384d3c7 (patch) | |
| tree | c4d0f3dd19456600f718a6e0c8573577f433549b /include/proj/internal | |
| parent | 886ced02f0aaab5d66d16459435f7447cf976650 (diff) | |
| parent | d67203a6f76a74f5ac029ff052dbcc72e3b59624 (diff) | |
| download | PROJ-8f268409d37cea329d263e177b83e42f8384d3c7.tar.gz PROJ-8f268409d37cea329d263e177b83e42f8384d3c7.zip | |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'include/proj/internal')
| -rw-r--r-- | include/proj/internal/coordinateoperation_constants.hpp | 2 | ||||
| -rw-r--r-- | include/proj/internal/coordinateoperation_internal.hpp | 25 | ||||
| -rw-r--r-- | include/proj/internal/coordinatesystem_internal.hpp | 2 | ||||
| -rw-r--r-- | include/proj/internal/internal.hpp | 7 | ||||
| -rw-r--r-- | include/proj/internal/io_internal.hpp | 6 |
5 files changed, 31 insertions, 11 deletions
diff --git a/include/proj/internal/coordinateoperation_constants.hpp b/include/proj/internal/coordinateoperation_constants.hpp index accb4a1e..9d65dab8 100644 --- a/include/proj/internal/coordinateoperation_constants.hpp +++ b/include/proj/internal/coordinateoperation_constants.hpp @@ -1,7 +1,7 @@ /****************************************************************************** * * Project: PROJ - * Purpose: ISO19111:2018 implementation + * Purpose: ISO19111:2019 implementation * Author: Even Rouault <even dot rouault at spatialys dot com> * ****************************************************************************** diff --git a/include/proj/internal/coordinateoperation_internal.hpp b/include/proj/internal/coordinateoperation_internal.hpp index 8428b8bf..207c20b4 100644 --- a/include/proj/internal/coordinateoperation_internal.hpp +++ b/include/proj/internal/coordinateoperation_internal.hpp @@ -1,7 +1,7 @@ /****************************************************************************** * * Project: PROJ - * Purpose: ISO19111:2018 implementation + * Purpose: ISO19111:2019 implementation * Author: Even Rouault <even dot rouault at spatialys dot com> * ****************************************************************************** @@ -109,8 +109,9 @@ using InverseCoordinateOperationNNPtr = util::nn<InverseCoordinateOperationPtr>; */ class InverseCoordinateOperation : virtual public CoordinateOperation { public: - InverseCoordinateOperation(const CoordinateOperationNNPtr &forwardOperation, - bool wktSupportsInversion); + InverseCoordinateOperation( + const CoordinateOperationNNPtr &forwardOperationIn, + bool wktSupportsInversion); ~InverseCoordinateOperation() override; @@ -124,6 +125,10 @@ class InverseCoordinateOperation : virtual public CoordinateOperation { CoordinateOperationNNPtr inverse() const override; + const CoordinateOperationNNPtr &forwardOperation() const { + return forwardOperation_; + } + protected: CoordinateOperationNNPtr forwardOperation_; bool wktSupportsInversion_; @@ -174,6 +179,8 @@ class InverseConversion : public Conversion, public InverseCoordinateOperation { #endif static CoordinateOperationNNPtr create(const ConversionNNPtr &forward); + + CoordinateOperationNNPtr _shallowClone() const override; }; // --------------------------------------------------------------------------- @@ -204,6 +211,8 @@ class InverseTransformation : public Transformation, return InverseCoordinateOperation::inverse(); } + TransformationNNPtr inverseAsTransformation() const; + #ifdef _MSC_VER // To avoid a warning C4250: // 'osgeo::proj::operation::InverseTransformation': inherits @@ -216,6 +225,8 @@ class InverseTransformation : public Transformation, #endif static TransformationNNPtr create(const TransformationNNPtr &forward); + + CoordinateOperationNNPtr _shallowClone() const override; }; // --------------------------------------------------------------------------- @@ -246,17 +257,21 @@ class PROJBasedOperation : public SingleOperation { create(const util::PropertyMap &properties, const io::IPROJStringExportableNNPtr &projExportable, bool inverse, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, - const std::vector<metadata::PositionalAccuracyNNPtr> &accuracies); + const std::vector<metadata::PositionalAccuracyNNPtr> &accuracies, + bool hasRoughTransformation); std::set<GridDescription> gridsNeeded(const io::DatabaseContextPtr &databaseContext) const override; protected: - PROJBasedOperation(const OperationMethodNNPtr &methodIn); + PROJBasedOperation(const PROJBasedOperation &) = default; + explicit PROJBasedOperation(const OperationMethodNNPtr &methodIn); void _exportToPROJString(io::PROJStringFormatter *formatter) const override; // throw(FormattingException) + CoordinateOperationNNPtr _shallowClone() const override; + INLINED_MAKE_SHARED private: diff --git a/include/proj/internal/coordinatesystem_internal.hpp b/include/proj/internal/coordinatesystem_internal.hpp index 63c5f7af..ccef2e7d 100644 --- a/include/proj/internal/coordinatesystem_internal.hpp +++ b/include/proj/internal/coordinatesystem_internal.hpp @@ -1,7 +1,7 @@ /****************************************************************************** * * Project: PROJ - * Purpose: ISO19111:2018 implementation + * Purpose: ISO19111:2019 implementation * Author: Even Rouault <even dot rouault at spatialys dot com> * ****************************************************************************** diff --git a/include/proj/internal/internal.hpp b/include/proj/internal/internal.hpp index b16e12bc..2222a264 100644 --- a/include/proj/internal/internal.hpp +++ b/include/proj/internal/internal.hpp @@ -1,7 +1,7 @@ /****************************************************************************** * * Project: PROJ - * Purpose: ISO19111:2018 implementation + * Purpose: ISO19111:2019 implementation * Author: Even Rouault <even dot rouault at spatialys dot com> * ****************************************************************************** @@ -53,7 +53,7 @@ #if ((defined(__clang__) && \ (__clang_major__ > 3 || \ (__clang_major__ == 3 && __clang_minor__ >= 7))) || \ - __GNUC__ >= 7) + (__GNUC__ >= 7 && !__INTEL_COMPILER)) /** Macro for fallthrough in a switch case construct */ #define PROJ_FALLTHROUGH [[clang::fallthrough]]; #else @@ -140,6 +140,9 @@ std::string toupper(const std::string &osStr); PROJ_FOR_TEST std::vector<std::string> split(const std::string &osStr, char separator); +PROJ_FOR_TEST std::vector<std::string> split(const std::string &osStr, + const std::string &separator); + bool ci_equal(const char *a, const char *b) noexcept; #ifdef SUPPORT_DELETED_FUNCTION diff --git a/include/proj/internal/io_internal.hpp b/include/proj/internal/io_internal.hpp index be6a11bd..f614fc67 100644 --- a/include/proj/internal/io_internal.hpp +++ b/include/proj/internal/io_internal.hpp @@ -1,7 +1,7 @@ /****************************************************************************** * * Project: PROJ - * Purpose: ISO19111:2018 implementation + * Purpose: ISO19111:2019 implementation * Author: Even Rouault <even dot rouault at spatialys dot com> * ****************************************************************************** @@ -76,7 +76,8 @@ class WKTConstants { static const std::string SCALEUNIT; static const std::string TIMEUNIT; static const std::string ELLIPSOID; - static const std::string CS; + // underscore, since there is a CS macro in Solaris system headers + static const std::string CS_; static const std::string ID; static const std::string PROJCRS; static const std::string BASEGEODCRS; @@ -132,6 +133,7 @@ class WKTConstants { static const std::string BASEENGCRS; static const std::string BASEPARAMCRS; static const std::string BASETIMECRS; + static const std::string VERSION; // WKT2 alternate (longer or shorter) static const std::string GEODETICCRS; |
