From 00de4660a75a9d89c98778cf84f94075b7eef0b9 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 2 Jan 2019 20:48:34 +0100 Subject: WKT CONCATENATEDOPERATION parsing: allow CONVERSION steps and reverse operations when neededs (fixes #1197) --- include/proj/coordinateoperation.hpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index e64afbe7..80e04577 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -155,6 +155,7 @@ class PROJ_GCC_DLL CoordinateOperation : public common::ObjectUsage, PROJ_FRIEND(crs::DerivedCRS); PROJ_FRIEND(io::AuthorityFactory); PROJ_FRIEND(CoordinateOperationFactory); + PROJ_FRIEND(ConcatenatedOperation); PROJ_INTERNAL void setWeakSourceTargetCRS(std::weak_ptr sourceCRSIn, std::weak_ptr targetCRSIn); @@ -1585,16 +1586,6 @@ class PROJ_GCC_DLL ConcatenatedOperation final : public CoordinateOperation { PROJ_DLL CoordinateOperationNNPtr inverse() const override; - //! @cond Doxygen_Suppress - PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) - const override; // throw(io::FormattingException) - - PROJ_INTERNAL bool - _isEquivalentTo(const util::IComparable *other, - util::IComparable::Criterion criterion = - util::IComparable::Criterion::STRICT) const override; - //! @endcond - PROJ_DLL static ConcatenatedOperationNNPtr create(const util::PropertyMap &properties, const std::vector &operationsIn, @@ -1608,6 +1599,24 @@ class PROJ_GCC_DLL ConcatenatedOperation final : public CoordinateOperation { PROJ_DLL std::set gridsNeeded(const io::DatabaseContextPtr &databaseContext) const override; + PROJ_PRIVATE : + + //! @cond Doxygen_Suppress + PROJ_INTERNAL void + _exportToWKT(io::WKTFormatter *formatter) + const override; // throw(io::FormattingException) + + PROJ_INTERNAL bool + _isEquivalentTo(const util::IComparable *other, + util::IComparable::Criterion criterion = + util::IComparable::Criterion::STRICT) const override; + + PROJ_INTERNAL static void + fixStepsDirection(const crs::CRSNNPtr &concatOpSourceCRS, + const crs::CRSNNPtr &concatOpTargetCRS, + std::vector &operationsInOut); + //! @endcond + protected: PROJ_INTERNAL explicit ConcatenatedOperation( const std::vector &operationsIn); -- cgit v1.2.3