29 #ifndef CS_HH_INCLUDED 30 #define CS_HH_INCLUDED 60 valueOf(
const std::string &nameIn) noexcept;
108 static std::map<std::string, const AxisDirection *> registry;
143 #ifdef DOXYGEN_ENABLED 151 PROJ_OPAQUE_PRIVATE_DATA
175 PROJ_DLL
const std::string &abbreviation() PROJ_CONST_DECL;
180 PROJ_DLL
const MeridianPtr &meridian() PROJ_CONST_DECL;
185 const std::string &abbreviationIn,
const AxisDirection &directionIn,
192 util::IComparable::Criterion::STRICT)
const override;
196 bool disableAbbrev)
const;
201 static std::string normalizeAxisName(
const std::string &str);
211 PROJ_OPAQUE_PRIVATE_DATA
239 PROJ_DLL
const std::vector<CoordinateSystemAxisNNPtr> &
240 axisList() PROJ_CONST_DECL;
247 PROJ_DLL
virtual std::string getWKT2Type(
bool)
const = 0;
253 util::IComparable::Criterion::STRICT)
const override;
257 const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
260 PROJ_OPAQUE_PRIVATE_DATA
302 explicit SphericalCS(
const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
305 std::string getWKT2Type(
bool)
const override {
return "spherical"; }
356 LAT_NORTH_LONG_EAST_HEIGHT_UP,
360 LONG_EAST_LAT_NORTH_HEIGHT_UP,
369 const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
372 std::string getWKT2Type(
bool)
const override {
return "ellipsoidal"; }
411 std::string getWKT2Type(
bool)
const override {
return "vertical"; }
455 explicit CartesianCS(
const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
458 std::string getWKT2Type(
bool)
const override {
489 const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
492 explicit OrdinalCS(
const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
495 std::string getWKT2Type(
bool)
const override {
return "ordinal"; }
525 explicit ParametricCS(
const std::vector<CoordinateSystemAxisNNPtr> &axisIn);
528 std::string getWKT2Type(
bool)
const override {
return "parametric"; }
559 std::string getWKT2Type(
bool use2018Keywords)
const override = 0;
596 std::string getWKT2Type(
bool use2018Keywords)
const override;
631 std::string getWKT2Type(
bool use2018Keywords)
const override;
666 std::string getWKT2Type(
bool use2018Keywords)
const override;
676 #endif // CS_HH_INCLUDED static const AxisDirection NORTH_EAST
Definition: coordinatesystem.hpp:65
A one-dimensional coordinate system used to record time as an integer count.
Definition: coordinatesystem.hpp:617
Interface for an object that can be compared to another.
Definition: util.hpp:292
static const AxisDirection SOUTH_SOUTH_EAST
Definition: coordinatesystem.hpp:70
static const AxisDirection WEST
Definition: coordinatesystem.hpp:76
util::nn< TemporalCSPtr > TemporalCSNNPtr
Definition: coordinatesystem.hpp:540
A two- or three-dimensional coordinate system in which position is specified by geodetic latitude...
Definition: coordinatesystem.hpp:327
static const AxisDirection CLOCKWISE
Definition: coordinatesystem.hpp:97
Abstract class modelling a coordinate system (CS)
Definition: coordinatesystem.hpp:232
static const AxisDirection SOUTH_EAST
Definition: coordinatesystem.hpp:69
Abstract class to define an enumeration of values.
Definition: util.hpp:611
(Abstract class) A one-dimensional coordinate system used to record time.
Definition: coordinatesystem.hpp:549
static const AxisDirection NORTH_WEST
Definition: coordinatesystem.hpp:78
std::shared_ptr< TemporalCountCS > TemporalCountCSPtr
Definition: coordinatesystem.hpp:606
static const AxisDirection NORTH_NORTH_EAST
Definition: coordinatesystem.hpp:64
util::nn< CoordinateSystemPtr > CoordinateSystemNNPtr
Definition: coordinatesystem.hpp:268
static const AxisDirection SOUTH
Definition: coordinatesystem.hpp:71
static const AxisDirection DOWN
Definition: coordinatesystem.hpp:81
static const AxisDirection PORT
Definition: coordinatesystem.hpp:95
static const AxisDirection DISPLAY_LEFT
Definition: coordinatesystem.hpp:90
util::nn< VerticalCSPtr > VerticalCSNNPtr
Definition: coordinatesystem.hpp:384
A three-dimensional coordinate system in Euclidean space with one distance measured from the origin a...
Definition: coordinatesystem.hpp:287
static const AxisDirection EAST
Definition: coordinatesystem.hpp:67
static const AxisDirection NORTH
Definition: coordinatesystem.hpp:63
one-dimensional coordinate reference system which uses parameter values or functions that may vary mo...
Definition: coordinatesystem.hpp:514
static const AxisDirection AWAY_FROM
Definition: coordinatesystem.hpp:100
A two- or three-dimensional coordinate system in Euclidean space with orthogonal straight axes...
Definition: coordinatesystem.hpp:434
util::nn< ParametricCSPtr > ParametricCSNNPtr
Definition: coordinatesystem.hpp:507
static const AxisDirection GEOCENTRIC_Z
Definition: coordinatesystem.hpp:84
The direction of positive increase in the coordinate value for a coordinate system axis...
Definition: coordinatesystem.hpp:56
util::nn< MeridianPtr > MeridianNNPtr
Definition: coordinatesystem.hpp:117
static const AxisDirection AFT
Definition: coordinatesystem.hpp:94
Criterion
Comparison criterion.
Definition: util.hpp:299
std::shared_ptr< Meridian > MeridianPtr
Definition: coordinatesystem.hpp:115
std::shared_ptr< DateTimeTemporalCS > DateTimeTemporalCSPtr
Definition: coordinatesystem.hpp:569
static const AxisDirection GEOCENTRIC_Y
Definition: coordinatesystem.hpp:83
static const AxisDirection COLUMN_NEGATIVE
Definition: coordinatesystem.hpp:86
util::nn< DateTimeTemporalCSPtr > DateTimeTemporalCSNNPtr
Definition: coordinatesystem.hpp:571
util::nn< TemporalMeasureCSPtr > TemporalMeasureCSNNPtr
Definition: coordinatesystem.hpp:643
std::shared_ptr< CartesianCS > CartesianCSPtr
Definition: coordinatesystem.hpp:421
n-dimensional coordinate system in which every axis uses integers.
Definition: coordinatesystem.hpp:481
static const AxisDirection UP
Definition: coordinatesystem.hpp:80
util::nn< SphericalCSPtr > SphericalCSNNPtr
Definition: coordinatesystem.hpp:276
util::nn< OrdinalCSPtr > OrdinalCSNNPtr
Definition: coordinatesystem.hpp:472
static const AxisDirection DISPLAY_UP
Definition: coordinatesystem.hpp:91
static const AxisDirection TOWARDS
Definition: coordinatesystem.hpp:99
std::shared_ptr< CoordinateSystemAxis > CoordinateSystemAxisPtr
Definition: coordinatesystem.hpp:160
Wrapper of a std::map<std::string, BaseObjectNNPtr>
Definition: util.hpp:410
static const AxisDirection NORTH_NORTH_WEST
Definition: coordinatesystem.hpp:79
AxisOrder
Typical axis order.
Definition: coordinatesystem.hpp:352
A one-dimensional coordinate system used to record the heights or depths of points.
Definition: coordinatesystem.hpp:394
static const AxisDirection DISPLAY_DOWN
Definition: coordinatesystem.hpp:92
static const AxisDirection GEOCENTRIC_X
Definition: coordinatesystem.hpp:82
util::nn< TemporalCountCSPtr > TemporalCountCSNNPtr
Definition: coordinatesystem.hpp:608
Numeric value, with a angular unit of measure.
Definition: common.hpp:186
static const AxisDirection STARBOARD
Definition: coordinatesystem.hpp:96
static const AxisDirection WEST_SOUTH_WEST
Definition: coordinatesystem.hpp:75
std::shared_ptr< VerticalCS > VerticalCSPtr
Definition: coordinatesystem.hpp:382
static const AxisDirection COLUMN_POSITIVE
Definition: coordinatesystem.hpp:85
util::nn< CoordinateSystemAxisPtr > CoordinateSystemAxisNNPtr
Definition: coordinatesystem.hpp:162
Unit of measure.
Definition: common.hpp:60
static const AxisDirection DISPLAY_RIGHT
Definition: coordinatesystem.hpp:89
std::shared_ptr< TemporalCS > TemporalCSPtr
Definition: coordinatesystem.hpp:538
static const AxisDirection FORWARD
Definition: coordinatesystem.hpp:93
static const AxisDirection SOUTH_WEST
Definition: coordinatesystem.hpp:73
static const AxisDirection SOUTH_SOUTH_WEST
Definition: coordinatesystem.hpp:72
static const AxisDirection EAST_SOUTH_EAST
Definition: coordinatesystem.hpp:68
static const AxisDirection ROW_NEGATIVE
Definition: coordinatesystem.hpp:88
util::nn< CartesianCSPtr > CartesianCSNNPtr
Definition: coordinatesystem.hpp:423
static const AxisDirection FUTURE
Definition: coordinatesystem.hpp:101
static const AxisDirection UNSPECIFIED
Definition: coordinatesystem.hpp:103
A one-dimensional coordinate system used to record a time as a real number.
Definition: coordinatesystem.hpp:652
Interface for an object that can be exported to WKT.
Definition: io.hpp:423
static const AxisDirection COUNTER_CLOCKWISE
Definition: coordinatesystem.hpp:98
std::shared_ptr< TemporalMeasureCS > TemporalMeasureCSPtr
Definition: coordinatesystem.hpp:641
static const AxisDirection ROW_POSITIVE
Definition: coordinatesystem.hpp:87
static const AxisDirection EAST_NORTH_EAST
Definition: coordinatesystem.hpp:66
The definition of a coordinate system axis.
Definition: coordinatesystem.hpp:168
Loose transposition of std::optional available from C++17.
Definition: util.hpp:178
std::shared_ptr< OrdinalCS > OrdinalCSPtr
Definition: coordinatesystem.hpp:470
std::shared_ptr< ParametricCS > ParametricCSPtr
Definition: coordinatesystem.hpp:505
The meridian that the axis follows from the pole, for a coordinate reference system centered on a pol...
Definition: coordinatesystem.hpp:126
util::nn< EllipsoidalCSPtr > EllipsoidalCSNNPtr
Definition: coordinatesystem.hpp:317
static const AxisDirection PAST
Definition: coordinatesystem.hpp:102
std::shared_ptr< EllipsoidalCS > EllipsoidalCSPtr
Definition: coordinatesystem.hpp:315
std::shared_ptr< CoordinateSystem > CoordinateSystemPtr
Definition: coordinatesystem.hpp:266
A one-dimensional coordinate system used to record time in dateTime representation as defined in ISO ...
Definition: coordinatesystem.hpp:582
static const AxisDirection WEST_NORTH_WEST
Definition: coordinatesystem.hpp:77
std::shared_ptr< SphericalCS > SphericalCSPtr
Definition: coordinatesystem.hpp:274
Identifications of a CRS-related object.
Definition: common.hpp:269