aboutsummaryrefslogtreecommitdiff
path: root/include/proj/internal
diff options
context:
space:
mode:
authorAndrew Bell <andrew.bell.ia@gmail.com>2019-05-15 10:47:03 -0400
committerAndrew Bell <andrew.bell.ia@gmail.com>2019-05-15 10:47:03 -0400
commit8f268409d37cea329d263e177b83e42f8384d3c7 (patch)
treec4d0f3dd19456600f718a6e0c8573577f433549b /include/proj/internal
parent886ced02f0aaab5d66d16459435f7447cf976650 (diff)
parentd67203a6f76a74f5ac029ff052dbcc72e3b59624 (diff)
downloadPROJ-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.hpp2
-rw-r--r--include/proj/internal/coordinateoperation_internal.hpp25
-rw-r--r--include/proj/internal/coordinatesystem_internal.hpp2
-rw-r--r--include/proj/internal/internal.hpp7
-rw-r--r--include/proj/internal/io_internal.hpp6
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;