Shapes
GIS made easy, a lightweight header-only planar geometry library for Modern C++
types.hpp
1 #pragma once
2 
3 namespace simo
4 {
5 namespace shapes
6 {
7 
13 enum class dimension_type : uint8_t
14 {
15  XY = 1,
16  XYZ = 2,
17  XYM = 3,
18  XYZM = 4
19 };
20 
26 enum class element_type : uint8_t
27 {
28  POINT = 1,
29  LINESTRING = 2,
30  POLYGON = 3
31 };
32 
38 enum class geometry_type : uint16_t
39 {
40  GEOMETRY = 0,
41  POINT = 1,
42  LINESTRING = 2,
43  POLYGON = 3,
44  MULTIPOINT = 4,
45  MULTILINESTRING = 5,
46  MULTIPOLYGON = 6,
47  GEOMETRYCOLLECTION = 7,
48  CIRCULARSTRING = 8,
49  COMPOUNDCURVE = 9,
50  CURVEPOLYGON = 10,
51  MULTICURVE = 11,
52  MULTISURFACE = 12,
53  CURVE = 13,
54  SURFACE = 14,
55  POLYHEDRALSURFACE = 15,
56  TIN = 16,
57  GEOMETRYZ = 1000,
58  POINTZ = 1001,
59  LINESTRINGZ = 1002,
60  POLYGONZ = 1003,
61  MULTIPOINTZ = 1004,
62  MULTILINESTRINGZ = 1005,
63  MULTIPOLYGONZ = 1006,
64  GEOMETRYCOLLECTIONZ = 1007,
65  CIRCULARSTRINGZ = 1008,
66  COMPOUNDCURVEZ = 1009,
67  CURVEPOLYGONZ = 1010,
68  MULTICURVEZ = 1011,
69  MULTISURFACEZ = 1012,
70  CURVEZ = 1013,
71  SURFACEZ = 1014,
72  POLYHEDRALSURFACEZ = 1015,
73  TINZ = 1016,
74  GEOMETRYM = 2000,
75  POINTM = 2001,
76  LINESTRINGM = 2002,
77  POLYGONM = 2003,
78  MULTIPOINTM = 2004,
79  MULTILINESTRINGM = 2005,
80  MULTIPOLYGONM = 2006,
81  GEOMETRYCOLLECTIONM = 2007,
82  CIRCULARSTRINGM = 2008,
83  COMPOUNDCURVEM = 2009,
84  CURVEPOLYGONM = 2010,
85  MULTICURVEM = 2011,
86  MULTISURFACEM = 2012,
87  CURVEM = 2013,
88  SURFACEM = 2014,
89  POLYHEDRALSURFACEM = 2015,
90  TINM = 2016,
91  GEOMETRYZM = 3000,
92  POINTZM = 3001,
93  LINESTRINGZM = 3002,
94  POLYGONZM = 3003,
95  MULTIPOINTZM = 3004,
96  MULTILINESTRINGZM = 3005,
97  MULTIPOLYGONZM = 3006,
98  GEOMETRYCOLLECTIONZM = 3007,
99  CIRCULARSTRINGZM = 3008,
100  COMPOUNDCURVEZM = 3009,
101  CURVEPOLYGONZM = 3010,
102  MULTICURVEZM = 3011,
103  MULTISURFACEZM = 3012,
104  CURVEZM = 3013,
105  SURFACEZM = 3014,
106  POLYHEDRALSURFACEZM = 3015,
107  TINZM = 3016
108 };
109 
110 } // namespace shapes
111 } // namespace simo