3 #include "DM/config.hpp"
4 #include "DM/Handle.hpp"
9 enum struct CRSCompareMode
13 ignoreVerticalCRS = 2,
17 constexpr CRSCompareMode operator| (
const CRSCompareMode &left,
const CRSCompareMode &right)
19 return static_cast<CRSCompareMode
>(
static_cast<int>(left) |
static_cast<int>(right));
27 static void set_default_unification(
bool flag);
28 static void set_default_compare_mode(CRSCompareMode mode);
29 static void set_default_accept_invalid_wkts(
bool accept);
32 static ICRS* New(LogFn logFn = 0) noexcept;
33 static ICRS* NewFromWKT(
const char* wktStr, LogFn logFn = 0) noexcept;
34 static ICRS* NewFromWKT(
const char* wktStr,
bool acceptInvalidWkt,
bool unify, LogFn logFn = 0) noexcept;
35 static ICRS* NewFromEPSG(
int epsg, LogFn logFn = 0) noexcept;
36 static ICRS* NewFromEPSG(
const char* epsgCode, LogFn logFn = 0) noexcept;
43 virtual bool empty()
const = 0;
44 virtual bool valid()
const = 0;
46 virtual bool leftHanded()
const = 0;
48 virtual int getEPSGCode()
const = 0;
49 virtual const char* wkt()
const = 0;
51 virtual const char* sourceWKT()
const = 0;
52 virtual const char* exportWKT()
const = 0;
54 virtual bool unify() = 0;
56 virtual bool equal(
const ICRS &other)
const = 0;
57 virtual bool equal(
const ICRS &other, CRSCompareMode mod)
const = 0;
59 virtual ICRS* stripVerticalComponent()
const = 0;
61 virtual void test_code(
int)
const = 0;