diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-01-02 20:48:34 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-01-02 20:58:20 +0100 |
| commit | 00de4660a75a9d89c98778cf84f94075b7eef0b9 (patch) | |
| tree | 99cd35a8ebf8779450ae89da0178406179ae4e33 /include | |
| parent | be5778fa90586abd431fc02375870d71d2e3ba78 (diff) | |
| download | PROJ-00de4660a75a9d89c98778cf84f94075b7eef0b9.tar.gz PROJ-00de4660a75a9d89c98778cf84f94075b7eef0b9.zip | |
WKT CONCATENATEDOPERATION parsing: allow CONVERSION steps and reverse operations when neededs (fixes #1197)
Diffstat (limited to 'include')
| -rw-r--r-- | include/proj/coordinateoperation.hpp | 29 |
1 files changed, 19 insertions, 10 deletions
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<crs::CRS> sourceCRSIn, std::weak_ptr<crs::CRS> 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<CoordinateOperationNNPtr> &operationsIn, @@ -1608,6 +1599,24 @@ class PROJ_GCC_DLL ConcatenatedOperation final : public CoordinateOperation { PROJ_DLL std::set<GridDescription> 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<CoordinateOperationNNPtr> &operationsInOut); + //! @endcond + protected: PROJ_INTERNAL explicit ConcatenatedOperation( const std::vector<CoordinateOperationNNPtr> &operationsIn); |
