aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-01-02 20:48:34 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-01-02 20:58:20 +0100
commit00de4660a75a9d89c98778cf84f94075b7eef0b9 (patch)
tree99cd35a8ebf8779450ae89da0178406179ae4e33 /include
parentbe5778fa90586abd431fc02375870d71d2e3ba78 (diff)
downloadPROJ-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.hpp29
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);