diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/proj/coordinateoperation.hpp | 17 | ||||
| -rw-r--r-- | include/proj/crs.hpp | 7 |
2 files changed, 19 insertions, 5 deletions
diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 6b32e24d..92b655f9 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -1726,9 +1726,22 @@ class PROJ_GCC_DLL CoordinateOperationContext { PROJ_DLL GridAvailabilityUse getGridAvailabilityUse() const; - PROJ_DLL void setAllowUseIntermediateCRS(bool use); + /** Describe if and how intermediate CRS should be used */ + enum class IntermediateCRSUse { + /** Always search for intermediate CRS. */ + ALWAYS, - PROJ_DLL bool getAllowUseIntermediateCRS() const; + /** Only attempt looking for intermediate CRS if there is no direct + * transformation available. */ + IF_NO_DIRECT_TRANSFORMATION, + + /* Do not attempt looking for intermediate CRS. */ + NEVER, + }; + + PROJ_DLL void setAllowUseIntermediateCRS(IntermediateCRSUse use); + + PROJ_DLL IntermediateCRSUse getAllowUseIntermediateCRS() const; PROJ_DLL void setIntermediateCRS(const std::vector<std::pair<std::string, std::string>> diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index 6a09ea78..fb34d3b7 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -92,9 +92,10 @@ class PROJ_GCC_DLL CRS : public common::ObjectUsage { PROJ_DLL GeodeticCRSPtr extractGeodeticCRS() const; PROJ_DLL GeographicCRSPtr extractGeographicCRS() const; PROJ_DLL VerticalCRSPtr extractVerticalCRS() const; - PROJ_DLL CRSNNPtr - createBoundCRSToWGS84IfPossible(const io::DatabaseContextPtr &dbContext, - bool allowIntermediateCRS) const; + PROJ_DLL CRSNNPtr createBoundCRSToWGS84IfPossible( + const io::DatabaseContextPtr &dbContext, + operation::CoordinateOperationContext::IntermediateCRSUse + allowIntermediateCRSUse) const; PROJ_DLL CRSNNPtr stripVerticalComponent() const; PROJ_DLL const BoundCRSPtr &canonicalBoundCRS() PROJ_PURE_DECL; |
