diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/proj/crs.hpp | 16 | ||||
| -rw-r--r-- | include/proj/datum.hpp | 7 | ||||
| -rw-r--r-- | include/proj/io.hpp | 12 |
3 files changed, 30 insertions, 5 deletions
diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index bbdc9565..a71bf610 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -194,7 +194,10 @@ class PROJ_GCC_DLL SingleCRS : public CRS { PROJ_INTERNAL void exportDatumOrDatumEnsembleToWkt(io::WKTFormatter *formatter) const; // throw(io::FormattingException) - //! @endcond + + PROJ_INTERNAL const datum::DatumNNPtr + datumNonNull(const io::DatabaseContextPtr &dbContext) const; + //! @endcond protected: PROJ_INTERNAL SingleCRS(const datum::DatumPtr &datumIn, @@ -289,6 +292,9 @@ class PROJ_GCC_DLL GeodeticCRS : virtual public SingleCRS, PROJ_INTERNAL void addDatumInfoToPROJString(io::PROJStringFormatter *formatter) const; + PROJ_INTERNAL const datum::GeodeticReferenceFrameNNPtr + datumNonNull(const io::DatabaseContextPtr &dbContext) const; + PROJ_INTERNAL void addGeocentricUnitConversionIntoPROJString( io::PROJStringFormatter *formatter) const; @@ -389,8 +395,9 @@ class PROJ_GCC_DLL GeographicCRS : public GeodeticCRS { PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter) const override; // throw(FormattingException) - PROJ_DLL bool - is2DPartOf3D(util::nn<const GeographicCRS *> other) PROJ_PURE_DECL; + PROJ_DLL bool is2DPartOf3D( + util::nn<const GeographicCRS *> other, + const io::DatabaseContextPtr &dbContext = nullptr) PROJ_PURE_DECL; PROJ_INTERNAL bool _isEquivalentTo( const util::IComparable *other, @@ -474,6 +481,9 @@ class PROJ_GCC_DLL VerticalCRS : virtual public SingleCRS, PROJ_INTERNAL void addLinearUnitConvert(io::PROJStringFormatter *formatter) const; + PROJ_INTERNAL const datum::VerticalReferenceFrameNNPtr + datumNonNull(const io::DatabaseContextPtr &dbContext) const; + PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) const override; // throw(io::FormattingException) diff --git a/include/proj/datum.hpp b/include/proj/datum.hpp index f1d45c6b..bf3dbcb7 100644 --- a/include/proj/datum.hpp +++ b/include/proj/datum.hpp @@ -125,7 +125,7 @@ using DatumEnsembleNNPtr = util::nn<DatumEnsemblePtr>; * * \remark Implements DatumEnsemble from \ref ISO_19111_2019 */ -class PROJ_GCC_DLL DatumEnsemble final : public common::IdentifiedObject, +class PROJ_GCC_DLL DatumEnsemble final : public common::ObjectUsage, public io::IJSONExportable { public: //! @cond Doxygen_Suppress @@ -147,7 +147,10 @@ class PROJ_GCC_DLL DatumEnsemble final : public common::IdentifiedObject, PROJ_INTERNAL void _exportToJSON(io::JSONFormatter *formatter) const override; // throw(io::FormattingException) - //! @endcond + + PROJ_FOR_TEST DatumNNPtr + asDatum(const io::DatabaseContextPtr &dbContext) const; + //! @endcond protected: #ifdef DOXYGEN_ENABLED diff --git a/include/proj/io.hpp b/include/proj/io.hpp index 9bbacfe6..9a4c7f9d 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -71,6 +71,10 @@ class Datum; using DatumPtr = std::shared_ptr<Datum>; using DatumNNPtr = util::nn<DatumPtr>; +class DatumEnsemble; +using DatumEnsemblePtr = std::shared_ptr<DatumEnsemble>; +using DatumEnsembleNNPtr = util::nn<DatumEnsemblePtr>; + class Ellipsoid; using EllipsoidPtr = std::shared_ptr<Ellipsoid>; using EllipsoidNNPtr = util::nn<EllipsoidPtr>; @@ -932,6 +936,10 @@ class PROJ_GCC_DLL AuthorityFactory { PROJ_DLL datum::DatumNNPtr createDatum(const std::string &code) const; + PROJ_DLL datum::DatumEnsembleNNPtr + createDatumEnsemble(const std::string &code, + const std::string &type = std::string()) const; + PROJ_DLL datum::GeodeticReferenceFrameNNPtr createGeodeticDatum(const std::string &code) const; @@ -1016,6 +1024,10 @@ class PROJ_GCC_DLL AuthorityFactory { /** Object of type operation::ConcatenatedOperation (and derived classes) */ CONCATENATED_OPERATION, + /** Object of type datum::DynamicGeodeticReferenceFrame */ + DYNAMIC_GEODETIC_REFERENCE_FRAME, + /** Object of type datum::DynamicVerticalReferenceFrame */ + DYNAMIC_VERTICAL_REFERENCE_FRAME, }; PROJ_DLL std::set<std::string> |
