GDAL
ogr_core.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Project: OpenGIS Simple Features Reference Implementation
4 * Purpose: Define some core portability services for cross-platform OGR code.
5 * Author: Frank Warmerdam, warmerdam@pobox.com
6 *
7 ******************************************************************************
8 * Copyright (c) 1999, Frank Warmerdam
9 * Copyright (c) 2007-2014, Even Rouault <even dot rouault at spatialys.com>
10 *
11 * SPDX-License-Identifier: MIT
12 ****************************************************************************/
13
14#ifndef OGR_CORE_H_INCLUDED
15#define OGR_CORE_H_INCLUDED
16
17#include "cpl_port.h"
18#if defined(GDAL_COMPILATION)
19#define DO_NOT_DEFINE_GDAL_DATE_NAME
20#endif
21#include "gdal_version.h"
22
29#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
30
31extern "C++"
32{
33#if !defined(DOXYGEN_SKIP)
34#include <cmath>
35#include <limits>
36#endif
37
38 class OGREnvelope3D;
39
43 class CPL_DLL OGREnvelope
44 {
45 public:
48 : MinX(std::numeric_limits<double>::infinity()),
49 MaxX(-std::numeric_limits<double>::infinity()),
50 MinY(std::numeric_limits<double>::infinity()),
51 MaxY(-std::numeric_limits<double>::infinity())
52 {
53 }
54
56 OGREnvelope(const OGREnvelope &oOther)
57 : MinX(oOther.MinX), MaxX(oOther.MaxX), MinY(oOther.MinY),
58 MaxY(oOther.MaxY)
59 {
60 }
61
63 OGREnvelope &operator=(const OGREnvelope &) = default;
64
66 double MinX;
67
69 double MaxX;
70
72 double MinY;
73
75 double MaxY;
76
77#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
78#pragma GCC diagnostic push
79#pragma GCC diagnostic ignored "-Wfloat-equal"
80#endif
83 int IsInit() const
84 {
85 return MinX != std::numeric_limits<double>::infinity();
86 }
87
88#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
89#pragma GCC diagnostic pop
90#endif
91
94 void Merge(OGREnvelope const &sOther)
95 {
96 MinX = CPL_MIN(MinX, sOther.MinX);
97 MaxX = CPL_MAX(MaxX, sOther.MaxX);
98 MinY = CPL_MIN(MinY, sOther.MinY);
99 MaxY = CPL_MAX(MaxY, sOther.MaxY);
100 }
101
104 void Merge(double dfX, double dfY)
105 {
106 MinX = CPL_MIN(MinX, dfX);
107 MaxX = CPL_MAX(MaxX, dfX);
108 MinY = CPL_MIN(MinY, dfY);
109 MaxY = CPL_MAX(MaxY, dfY);
110 }
111
114 void Intersect(OGREnvelope const &sOther)
115 {
116 if (Intersects(sOther))
117 {
118 if (IsInit())
119 {
120 MinX = CPL_MAX(MinX, sOther.MinX);
121 MaxX = CPL_MIN(MaxX, sOther.MaxX);
122 MinY = CPL_MAX(MinY, sOther.MinY);
123 MaxY = CPL_MIN(MaxY, sOther.MaxY);
124 }
125 else
126 {
127 MinX = sOther.MinX;
128 MaxX = sOther.MaxX;
129 MinY = sOther.MinY;
130 MaxY = sOther.MaxY;
131 }
132 }
133 else
134 {
135 *this = OGREnvelope();
136 }
137 }
138
141 int Intersects(OGREnvelope const &other) const
142 {
143 return MinX <= other.MaxX && MaxX >= other.MinX &&
144 MinY <= other.MaxY && MaxY >= other.MinY;
145 }
146
148 int Contains(OGREnvelope const &other) const
149 {
150 return MinX <= other.MinX && MinY <= other.MinY &&
151 MaxX >= other.MaxX && MaxY >= other.MaxY;
152 }
153
156 bool operator==(const OGREnvelope &other) const
157 {
158#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
159#pragma GCC diagnostic push
160#pragma GCC diagnostic ignored "-Wfloat-equal"
161#endif
162 return MinX == other.MinX && MinY == other.MinY &&
163 MaxX == other.MaxX && MaxY == other.MaxY;
164
165#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
166#pragma GCC diagnostic pop
167#endif
168 }
169
172 bool operator!=(const OGREnvelope &other) const
173 {
174 return !(*this == other);
175 }
176
178 double Width() const
179 {
180 return MaxX - MinX;
181 }
182
184 double Height() const
185 {
186 return MaxY - MinY;
187 }
188
190 void Center(double &dfX, double &dfY) const
191 {
192 dfX = MinX + Width() / 2;
193 dfY = MinY + Height() / 2;
194 }
195 };
196} // extern "C++"
197
198#else
199typedef struct
200{
201 double MinX;
202 double MaxX;
203 double MinY;
204 double MaxY;
206#endif
207
208#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
209
210extern "C++"
211{
212
216 class CPL_DLL OGREnvelope3D : public OGREnvelope
217 {
218 public:
221 : OGREnvelope(), MinZ(std::numeric_limits<double>::infinity()),
222 MaxZ(-std::numeric_limits<double>::infinity())
223 {
224 }
225
228 : OGREnvelope(oOther), MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
229 {
230 }
231
234
236 bool Is3D() const
237 {
238 return std::isfinite(MinZ) && std::isfinite(MaxZ);
239 }
240
242 double MinZ;
243
245 double MaxZ;
246
247#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
248#pragma GCC diagnostic push
249#pragma GCC diagnostic ignored "-Wfloat-equal"
250#endif
253 int IsInit() const
254 {
255 return MinX != std::numeric_limits<double>::infinity();
256 }
257#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
258#pragma GCC diagnostic pop
259#endif
260
263 void Merge(OGREnvelope3D const &sOther)
264 {
265 MinX = CPL_MIN(MinX, sOther.MinX);
266 MaxX = CPL_MAX(MaxX, sOther.MaxX);
267 MinY = CPL_MIN(MinY, sOther.MinY);
268 MaxY = CPL_MAX(MaxY, sOther.MaxY);
269 MinZ = CPL_MIN(MinZ, sOther.MinZ);
270 MaxZ = CPL_MAX(MaxZ, sOther.MaxZ);
271 }
272
275 void Merge(OGREnvelope const &sOther)
276 {
277 MinX = CPL_MIN(MinX, sOther.MinX);
278 MaxX = CPL_MAX(MaxX, sOther.MaxX);
279 MinY = CPL_MIN(MinY, sOther.MinY);
280 MaxY = CPL_MAX(MaxY, sOther.MaxY);
281 }
282
285 void Merge(double dfX, double dfY, double dfZ)
286 {
287 MinX = CPL_MIN(MinX, dfX);
288 MaxX = CPL_MAX(MaxX, dfX);
289 MinY = CPL_MIN(MinY, dfY);
290 MaxY = CPL_MAX(MaxY, dfY);
291 MinZ = CPL_MIN(MinZ, dfZ);
292 MaxZ = CPL_MAX(MaxZ, dfZ);
293 }
294
297 void Intersect(OGREnvelope3D const &sOther)
298 {
299 if (Intersects(sOther))
300 {
301 if (IsInit())
302 {
303 MinX = CPL_MAX(MinX, sOther.MinX);
304 MaxX = CPL_MIN(MaxX, sOther.MaxX);
305 MinY = CPL_MAX(MinY, sOther.MinY);
306 MaxY = CPL_MIN(MaxY, sOther.MaxY);
307 MinZ = CPL_MAX(MinZ, sOther.MinZ);
308 MaxZ = CPL_MIN(MaxZ, sOther.MaxZ);
309 }
310 else
311 {
312 MinX = sOther.MinX;
313 MaxX = sOther.MaxX;
314 MinY = sOther.MinY;
315 MaxY = sOther.MaxY;
316 MinZ = sOther.MinZ;
317 MaxZ = sOther.MaxZ;
318 }
319 }
320 else
321 {
322 *this = OGREnvelope3D();
323 }
324 }
325
328 int Intersects(OGREnvelope3D const &other) const
329 {
330 return MinX <= other.MaxX && MaxX >= other.MinX &&
331 MinY <= other.MaxY && MaxY >= other.MinY &&
332 MinZ <= other.MaxZ && MaxZ >= other.MinZ;
333 }
334
336 int Contains(OGREnvelope3D const &other) const
337 {
338 return MinX <= other.MinX && MinY <= other.MinY &&
339 MaxX >= other.MaxX && MaxY >= other.MaxY &&
340 MinZ <= other.MinZ && MaxZ >= other.MaxZ;
341 }
342 };
343
344} // extern "C++"
345
346#else
347typedef struct
348{
349 double MinX;
350 double MaxX;
351 double MinY;
352 double MaxY;
353 double MinZ;
354 double MaxZ;
356#endif
357
359
361void CPL_DLL *OGRMalloc(size_t) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
362void CPL_DLL *OGRCalloc(size_t, size_t)
363 CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
364void CPL_DLL *OGRRealloc(void *, size_t)
365 CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
366char CPL_DLL *OGRStrdup(const char *)
367 CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
368void CPL_DLL OGRFree(void *) CPL_WARN_DEPRECATED("Use CPLFree instead.");
371#ifdef STRICT_OGRERR_TYPE
373typedef enum
374{
385} OGRErr;
386#else
388typedef int OGRErr;
389
390#define OGRERR_NONE 0
391#define OGRERR_NOT_ENOUGH_DATA 1
392#define OGRERR_NOT_ENOUGH_MEMORY 2
393#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
394#define OGRERR_UNSUPPORTED_OPERATION 4
395#define OGRERR_CORRUPT_DATA 5
396#define OGRERR_FAILURE 6
397#define OGRERR_UNSUPPORTED_SRS 7
398#define OGRERR_INVALID_HANDLE 8
399#define OGRERR_NON_EXISTING_FEATURE 9
401#endif
402
404typedef int OGRBoolean;
405
406/* -------------------------------------------------------------------- */
407/* ogr_geometry.h related definitions. */
408/* -------------------------------------------------------------------- */
409
410#if defined(HAVE_GCC_DIAGNOSTIC_PUSH) && __STDC_VERSION__ < 202311L
411/* wkbPoint25D and friends cause warnings with -Wpedantic prior to C23. */
412/* Cf https://github.com/OSGeo/gdal/issues/2322 */
413#pragma GCC diagnostic push
414#pragma GCC diagnostic ignored "-Wpedantic"
415#endif
416
422typedef enum
423{
427 wkbLineString = 2,
429 wkbPolygon = 3,
434 5,
441 wkbCompoundCurve = 9,
443 wkbCurvePolygon = 10,
446 wkbMultiCurve = 11,
448 wkbMultiSurface = 12,
450 wkbCurve = 13,
453 15,
455 wkbTIN = 16,
459 wkbNone = 100,
462 wkbCircularStringZ = 1008,
464 wkbCompoundCurveZ = 1009,
466 wkbCurvePolygonZ = 1010,
468 wkbMultiCurveZ = 1011,
470 wkbMultiSurfaceZ = 1012,
472 wkbCurveZ = 1013,
473 wkbSurfaceZ = 1014,
476 wkbTINZ = 1016,
479 wkbPointM = 2001,
481 wkbPolygonM = 2003,
491 wkbCurveM = 2013,
492 wkbSurfaceM = 2014,
494 wkbTINM = 2016,
497 wkbPointZM = 3001,
509 wkbCurveZM = 3013,
512 wkbTINZM = 3016,
515#if defined(DOXYGEN_SKIP)
516 // Sphinx doesn't like 0x8000000x constants
517 wkbPoint25D = -2147483647,
518 wkbLineString25D = -2147483646,
519 wkbPolygon25D = -2147483645,
520 wkbMultiPoint25D = -2147483644,
521 wkbMultiLineString25D = -2147483643,
522 wkbMultiPolygon25D = -2147483642,
523 wkbGeometryCollection25D = -2147483641
524#else
525 wkbPoint25D = 0x80000001,
526 wkbLineString25D = 0x80000002,
527 wkbPolygon25D = 0x80000003,
528 wkbMultiPoint25D = 0x80000004,
529 wkbMultiLineString25D = 0x80000005,
530 wkbMultiPolygon25D = 0x80000006,
531 wkbGeometryCollection25D = 0x80000007
532#endif
534
535#if defined(HAVE_GCC_DIAGNOSTIC_PUSH) && __STDC_VERSION__ < 202311L
536#pragma GCC diagnostic pop
537#endif
538
539/* clang-format off */
555/* clang-format on */
556
565
566#ifndef GDAL_COMPILATION
568#define wkb25DBit 0x80000000
569#endif
570
571#ifndef __cplusplus
573#define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
574#else
576#define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
577#endif
578
581#define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
582
585#define wkbSetZ(x) OGR_GT_SetZ(x)
586
589#define wkbHasM(x) (OGR_GT_HasM(x) != 0)
590
594#define wkbSetM(x) OGR_GT_SetM(x)
595
596#ifndef DOXYGEN_SKIP
597#define ogrZMarker 0x21125711
598#endif
599
600const char CPL_DLL *OGRGeometryTypeToName(OGRwkbGeometryType eType);
602 OGRwkbGeometryType eExtra);
604 OGRwkbGeometryType eExtra,
605 int bAllowPromotingToCurves);
610 int bSetZ, int bSetM);
611int CPL_DLL OGR_GT_HasZ(OGRwkbGeometryType eType);
612int CPL_DLL OGR_GT_HasM(OGRwkbGeometryType eType);
614 OGRwkbGeometryType eSuperType);
622
624typedef enum
625{
626 wkbXDR = 0,
627 wkbNDR = 1
629
630#ifndef DOXYGEN_SKIP
631
632#ifndef NO_HACK_FOR_IBM_DB2_V72
633#define HACK_FOR_IBM_DB2_V72
634#endif
635
636#ifdef HACK_FOR_IBM_DB2_V72
637#define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
638#define DB2_V72_UNFIX_BYTE_ORDER(x) \
639 CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER \
640 ? ((x) | 0x30) \
641 : (x))
642#else
643#define DB2_V72_FIX_BYTE_ORDER(x) (x)
644#define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
645#endif
646
647#endif /* #ifndef DOXYGEN_SKIP */
648
652#define ALTER_NAME_FLAG 0x1
653
657#define ALTER_TYPE_FLAG 0x2
658
662#define ALTER_WIDTH_PRECISION_FLAG 0x4
663
667#define ALTER_NULLABLE_FLAG 0x8
668
672#define ALTER_DEFAULT_FLAG 0x10
673
678#define ALTER_UNIQUE_FLAG 0x20
679
684#define ALTER_DOMAIN_FLAG 0x40
685
690#define ALTER_ALTERNATIVE_NAME_FLAG 0x80
691
696#define ALTER_COMMENT_FLAG 0x100
697
701#define ALTER_ALL_FLAG \
702 (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | \
703 ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | \
704 ALTER_DOMAIN_FLAG | ALTER_ALTERNATIVE_NAME_FLAG | ALTER_COMMENT_FLAG)
705
710#define ALTER_GEOM_FIELD_DEFN_NAME_FLAG 0x1000
711
716#define ALTER_GEOM_FIELD_DEFN_TYPE_FLAG 0x2000
717
722#define ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG 0x4000
723
728#define ALTER_GEOM_FIELD_DEFN_SRS_FLAG 0x8000
729
734#define ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG 0x10000
735
740#define ALTER_GEOM_FIELD_DEFN_ALL_FLAG \
741 (ALTER_GEOM_FIELD_DEFN_NAME_FLAG | ALTER_GEOM_FIELD_DEFN_TYPE_FLAG | \
742 ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_FLAG | \
743 ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG)
744
748#define OGR_F_VAL_NULL 0x00000001
749
753#define OGR_F_VAL_GEOM_TYPE 0x00000002
754
758#define OGR_F_VAL_WIDTH 0x00000004
759
765#define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
766
772#define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
773
777#define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
778
779/************************************************************************/
780/* ogr_feature.h related definitions. */
781/************************************************************************/
782
789typedef enum
790{
OFTInteger = 0, OFTIntegerList = 1, OFTReal = 2, OFTRealList = 3, OFTString = 4, OFTStringList = 5, OFTWideString = 6, OFTWideStringList = 7, OFTBinary = 8, OFTDate = 9, OFTTime = 10, OFTDateTime = 11, OFTInteger64 = 12, OFTInteger64List = 13,
805 OFTMaxType = 13
807
816typedef enum
817{
OFSTNone = 0,
833 OFSTMaxSubType = 5
835
840typedef enum
841{
842 OJUndefined = 0,
843 OJLeft = 1,
844 OJRight = 2
846
848#define OGRNullFID -1
849
850/* Special value for an unknown field type. This should only be used
851 * while reading a file. At the end of file any unknown types should
852 * be set to OFTString.
853 */
855#define OGRUnknownType static_cast<OGRFieldType>(-1)
863#define OGRUnsetMarker -21121
864
870#define OGRNullMarker -21122
871
876#define OGR_TZFLAG_UNKNOWN 0
877
879#define OGR_TZFLAG_LOCALTIME 1
880
885#define OGR_TZFLAG_MIXED_TZ 2
886
893#define OGR_TZFLAG_UTC 100
894
895/************************************************************************/
896/* OGRField */
897/************************************************************************/
898
903typedef union
904{
906 int Integer;
907 GIntBig Integer64;
908 double Real;
909 char *String;
910
911 struct
912 {
913 int nCount;
914 int *paList;
915 } IntegerList;
916
917 struct
918 {
919 int nCount;
920 GIntBig *paList;
921 } Integer64List;
922
923 struct
924 {
925 int nCount;
926 double *paList;
927 } RealList;
928
929 struct
930 {
931 int nCount;
932 char **paList;
933 } StringList;
934
935 struct
936 {
937 int nCount;
938 GByte *paData;
939 } Binary;
940
941 struct
942 {
943 int nMarker1;
944 int nMarker2;
945 int nMarker3;
946 } Set;
947
948 struct
949 {
950 GInt16 Year;
951 GByte Month;
952 GByte Day;
953 GByte Hour;
954 GByte Minute;
955 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
956 100=GMT, 104=GMT+1, 80=GMT-5, etc */
957 GByte Reserved; /* must be set to 0 */
958 float Second; /* with millisecond accuracy. at the end of the structure,
959 so as to keep it 12 bytes on 32 bit */
960 } Date;
961
963} OGRField;
964
966int CPL_DLL OGR_GET_MS(float fSec);
967
969#define OGRPARSEDATE_OPTION_LAX 1
970
971int CPL_DLL OGRParseDate(const char *pszInput, OGRField *psOutput,
972 int nOptions);
973
974/* -------------------------------------------------------------------- */
975/* Constants from ogrsf_frmts.h for capabilities. */
976/* -------------------------------------------------------------------- */
977#define OLCRandomRead "RandomRead"
978#define OLCSequentialWrite \
979 "SequentialWrite"
980#define OLCRandomWrite "RandomWrite"
981#define OLCFastSpatialFilter \
982 "FastSpatialFilter"
983#define OLCFastFeatureCount \
984 "FastFeatureCount"
986#define OLCFastGetExtent \
987 "FastGetExtent"
988#define OLCFastGetExtent3D \
989 "FastGetExtent3D"
990#define OLCCreateField \
991 "CreateField"
993#define OLCDeleteField \
994 "DeleteField"
996#define OLCReorderFields \
997 "ReorderFields"
998#define OLCAlterFieldDefn \
999 "AlterFieldDefn"
1000#define OLCAlterGeomFieldDefn \
1001 "AlterGeomFieldDefn"
1003#define OLCTransactions \
1004 "Transactions"
1006#define OLCDeleteFeature \
1007 "DeleteFeature"
1008#define OLCUpsertFeature \
1009 "UpsertFeature"
1010#define OLCUpdateFeature \
1011 "UpdateFeature"
1013#define OLCFastSetNextByIndex \
1014 "FastSetNextByIndex"
1016#define OLCStringsAsUTF8 \
1017 "StringsAsUTF8"
1019#define OLCIgnoreFields \
1020 "IgnoreFields"
1021#define OLCCreateGeomField \
1022 "CreateGeomField"
1023#define OLCCurveGeometries \
1024 "CurveGeometries"
1025#define OLCMeasuredGeometries \
1026 "MeasuredGeometries"
1028#define OLCZGeometries \
1029 "ZGeometries"
1031#define OLCRename \
1032 "Rename"
1033#define OLCFastGetArrowStream \
1034 "FastGetArrowStream"
1036#define OLCFastWriteArrowBatch \
1037 "FastWriteArrowBatch"
1040#define ODsCCreateLayer \
1041 "CreateLayer"
1042#define ODsCDeleteLayer \
1043 "DeleteLayer"
1044/* Reserved: "RenameLayer" */
1045#define ODsCCreateGeomFieldAfterCreateLayer \
1046 "CreateGeomFieldAfterCreateLayer"
1048#define ODsCCurveGeometries \
1049 "CurveGeometries"
1050#define ODsCTransactions \
1051 "Transactions"
1052#define ODsCEmulatedTransactions \
1053 "EmulatedTransactions"
1055#define ODsCMeasuredGeometries \
1056 "MeasuredGeometries"
1058#define ODsCZGeometries \
1059 "ZGeometries"
1061#define ODsCRandomLayerRead \
1062 "RandomLayerRead"
1064/* Note the unfortunate trailing space at the end of the string */
1065#define ODsCRandomLayerWrite \
1066 "RandomLayerWrite "
1068#define ODsCAddFieldDomain \
1069 "AddFieldDomain"
1071#define ODsCDeleteFieldDomain \
1072 "DeleteFieldDomain"
1074#define ODsCUpdateFieldDomain \
1075 "UpdateFieldDomain"
1078#define ODrCCreateDataSource \
1079 "CreateDataSource"
1080#define ODrCDeleteDataSource \
1081 "DeleteDataSource"
1083/* -------------------------------------------------------------------- */
1084/* Layer metadata items. */
1085/* -------------------------------------------------------------------- */
1089#define OLMD_FID64 "OLMD_FID64"
1090
1091/************************************************************************/
1092/* ogr_featurestyle.h related definitions. */
1093/************************************************************************/
1094
1108
1121
1139
1158
1180
1211
1212/* -------------------------------------------------------------------- */
1213/* Field domains */
1214/* -------------------------------------------------------------------- */
1215
1220typedef struct
1221{
1223 char *pszCode;
1224
1228
1242
1260
1277
1278/* ------------------------------------------------------------------- */
1279/* Version checking */
1280/* -------------------------------------------------------------------- */
1281
1282#ifndef DOXYGEN_SKIP
1283
1284/* Note to developers : please keep this section in sync with gdal.h */
1285
1286#ifndef GDAL_VERSION_INFO_DEFINED
1287#define GDAL_VERSION_INFO_DEFINED
1288const char CPL_DLL *CPL_STDCALL GDALVersionInfo(const char *);
1289#endif
1290
1291#ifndef GDAL_CHECK_VERSION
1292
1305int CPL_DLL CPL_STDCALL GDALCheckVersion(int nVersionMajor, int nVersionMinor,
1306 const char *pszCallingComponentName);
1307
1309#define GDAL_CHECK_VERSION(pszCallingComponentName) \
1310 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, \
1311 pszCallingComponentName)
1312
1313#endif
1314
1315#endif /* #ifndef DOXYGEN_SKIP */
1316
1318
1319#endif /* ndef OGR_CORE_H_INCLUDED */
Simple container for a bounding region in 3D.
Definition ogr_core.h:217
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:275
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:263
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:253
void Merge(double dfX, double dfY, double dfZ)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:285
int Intersects(OGREnvelope3D const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:328
double MaxZ
Maximum Z value.
Definition ogr_core.h:245
OGREnvelope3D & operator=(const OGREnvelope3D &)=default
Assignment operator.
bool Is3D() const
Returns TRUE if MinZ and MaxZ are both valid numbers.
Definition ogr_core.h:236
double MinZ
Minimum Z value.
Definition ogr_core.h:242
OGREnvelope3D()
Default constructor.
Definition ogr_core.h:220
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:336
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:297
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition ogr_core.h:227
Simple container for a bounding region (rectangle)
Definition ogr_core.h:44
double Width() const
Return the width of the envelope.
Definition ogr_core.h:178
void Center(double &dfX, double &dfY) const
Return the center point of the envelope.
Definition ogr_core.h:190
double Height() const
Return the height of the envelope.
Definition ogr_core.h:184
int Contains(OGREnvelope const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:148
double MinY
Minimum Y value.
Definition ogr_core.h:72
bool operator!=(const OGREnvelope &other) const
Return whether the current rectangle is not equal to the other rectangle.
Definition ogr_core.h:172
double MaxX
Maximum X value.
Definition ogr_core.h:69
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:114
double MinX
Minimum X value.
Definition ogr_core.h:66
OGREnvelope()
Default constructor.
Definition ogr_core.h:47
double MaxY
Maximum Y value.
Definition ogr_core.h:75
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:83
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:141
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:104
bool operator==(const OGREnvelope &other) const
Return whether the current rectangle is equal to the other rectangle.
Definition ogr_core.h:156
OGREnvelope & operator=(const OGREnvelope &)=default
Assignment operator.
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition ogr_core.h:56
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:94
Core portability definitions for CPL.
short GInt16
Int16 type.
Definition cpl_port.h:161
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:279
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:275
#define CPL_MAX(a, b)
Macro to compute the maximum of 2 values.
Definition cpl_port.h:353
#define CPL_MIN(a, b)
Macro to compute the minimum of 2 values.
Definition cpl_port.h:351
unsigned char GByte
Unsigned byte type.
Definition cpl_port.h:165
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:195
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition gdal_misc.cpp:3091
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition gdal_misc.cpp:2893
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition ogrgeometry.cpp:3080
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition ogr_core.h:392
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition ogrgeometry.cpp:8143
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition ogrgeometry.cpp:8526
int OGRBoolean
Type for a OGR boolean.
Definition ogr_core.h:404
OGRFieldSubType
List of field subtypes.
Definition ogr_core.h:817
@ OFSTBoolean
Boolean integer.
Definition ogr_core.h:820
@ OFSTInt16
Signed 16-bit integer.
Definition ogr_core.h:822
@ OFSTUUID
UUID string representation.
Definition ogr_core.h:832
@ OFSTJSON
JSON content.
Definition ogr_core.h:828
@ OFSTNone
No subtype.
Definition ogr_core.h:818
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition ogr_core.h:825
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition ogr_core.h:1163
@ OGRSTSymbolDy
Dy.
Definition ogr_core.h:1169
@ OGRSTSymbolId
Id.
Definition ogr_core.h:1164
@ OGRSTSymbolSize
Size.
Definition ogr_core.h:1167
@ OGRSTSymbolFontName
Font name.
Definition ogr_core.h:1174
@ OGRSTSymbolColor
Color.
Definition ogr_core.h:1166
@ OGRSTSymbolDx
Dx.
Definition ogr_core.h:1168
@ OGRSTSymbolPerp
Perpendicular.
Definition ogr_core.h:1171
@ OGRSTSymbolAngle
Angle.
Definition ogr_core.h:1165
@ OGRSTSymbolOColor
Outline color.
Definition ogr_core.h:1175
@ OGRSTSymbolPriority
Priority.
Definition ogr_core.h:1173
@ OGRSTSymbolStep
Step.
Definition ogr_core.h:1170
@ OGRSTSymbolOffset
Offset.
Definition ogr_core.h:1172
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
OGRFieldDomainMergePolicy
Merge policy for field domains.
Definition ogr_core.h:1269
@ OFDMP_SUM
Sum.
Definition ogr_core.h:1273
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition ogr_core.h:1275
@ OFDMP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1271
OGRwkbByteOrder
Enumeration to describe byte order.
Definition ogr_core.h:625
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition ogr_core.h:626
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition ogr_core.h:627
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition ogrutils.cpp:1072
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition ogr_core.h:393
OGRFieldDomainType
Type of field domain.
Definition ogr_core.h:1234
@ OFDT_RANGE
Range (min/max)
Definition ogr_core.h:1238
@ OFDT_CODED
Coded.
Definition ogr_core.h:1236
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition ogr_core.h:1240
enum ogr_style_tool_param_pen_id OGRSTPenParam
List of parameters for use with OGRStylePen.
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition ogrgeometry.cpp:8465
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition ogrgeometry.cpp:8506
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:8165
#define OGRERR_FAILURE
Failure.
Definition ogr_core.h:396
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition ogr_core.h:394
OGRwkbVariant
Output variants of WKB we support.
Definition ogr_core.h:558
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition ogr_core.h:562
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition ogr_core.h:559
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition ogr_core.h:560
#define OGRERR_NONE
Success.
Definition ogr_core.h:390
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition ogrgeometry.cpp:3045
OGRJustification
Display justification for field values.
Definition ogr_core.h:841
OGRFieldType
List of feature field types.
Definition ogr_core.h:790
@ OFTTime
Time.
Definition ogr_core.h:801
@ OFTInteger64List
List of signed 64bit integers.
Definition ogr_core.h:804
@ OFTIntegerList
List of signed 32bit integers.
Definition ogr_core.h:792
@ OFTDate
Date.
Definition ogr_core.h:800
@ OFTWideStringList
deprecated
Definition ogr_core.h:798
@ OFTInteger
Single signed 32bit integer.
Definition ogr_core.h:791
@ OFTString
String of ASCII chars.
Definition ogr_core.h:795
@ OFTBinary
Raw Binary data.
Definition ogr_core.h:799
@ OFTRealList
List of doubles.
Definition ogr_core.h:794
@ OFTReal
Double Precision floating point.
Definition ogr_core.h:793
@ OFTStringList
Array of strings.
Definition ogr_core.h:796
@ OFTDateTime
Date and Time.
Definition ogr_core.h:802
@ OFTInteger64
Single signed 64bit integer.
Definition ogr_core.h:803
@ OFTWideString
deprecated
Definition ogr_core.h:797
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition ogrgeometry.cpp:8416
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:423
@ wkbPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:519
@ wkbCurve
Curve (abstract type).
Definition ogr_core.h:450
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition ogr_core.h:427
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition ogr_core.h:439
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:510
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition ogr_core.h:429
@ wkbTriangle
a Triangle.
Definition ogr_core.h:457
@ wkbPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:517
@ wkbSurfaceZ
wkbSurface with Z component.
Definition ogr_core.h:473
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:490
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:499
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:522
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:493
@ wkbTINZM
ISO SQL/MM Part 3.
Definition ogr_core.h:512
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:500
@ wkbPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:479
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition ogr_core.h:433
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:487
@ wkbUnknown
unknown type, non-standard
Definition ogr_core.h:424
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:508
@ wkbTINZ
ISO SQL/MM Part 3.
Definition ogr_core.h:476
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:486
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:481
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:489
@ wkbLinearRing
non-standard, just for createGeometry()
Definition ogr_core.h:460
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:480
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition ogr_core.h:455
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition ogr_core.h:523
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:492
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:488
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition ogr_core.h:452
@ wkbSurface
Surface (abstract type).
Definition ogr_core.h:451
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition ogr_core.h:468
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition ogr_core.h:462
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition ogr_core.h:426
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition ogr_core.h:441
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition ogr_core.h:475
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition ogr_core.h:436
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition ogr_core.h:435
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition ogr_core.h:432
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:483
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:507
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:520
@ wkbNone
non-standard, for pure attribute records
Definition ogr_core.h:459
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:482
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:504
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition ogr_core.h:466
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:505
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition ogr_core.h:477
@ wkbPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:497
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition ogr_core.h:443
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:498
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition ogr_core.h:448
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:484
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:509
@ wkbLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:518
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:501
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:511
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition ogr_core.h:503
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition ogr_core.h:513
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition ogr_core.h:485
@ wkbCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:491
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:521
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition ogr_core.h:495
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:502
@ wkbTINM
ISO SQL/MM Part 3.
Definition ogr_core.h:494
@ wkbCurveZ
wkbCurve with Z component.
Definition ogr_core.h:472
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:506
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition ogr_core.h:446
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition ogr_core.h:464
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition ogr_core.h:470
OGRwkbGeometryType OGR_GT_SetModifier(OGRwkbGeometryType eType, int bSetZ, int bSetM)
Returns a XY, XYZ, XYM or XYZM geometry type depending on parameter.
Definition ogrgeometry.cpp:8214
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition ogr_core.h:395
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition ogr_core.h:1185
@ OGRSTLabelUnderline
Underline.
Definition ogr_core.h:1199
@ OGRSTLabelPriority
Priority.
Definition ogr_core.h:1200
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition ogr_core.h:1204
@ OGRSTLabelBold
Bold.
Definition ogr_core.h:1197
@ OGRSTLabelStrikeout
Strike out.
Definition ogr_core.h:1201
@ OGRSTLabelBColor
Background color.
Definition ogr_core.h:1191
@ OGRSTLabelPlacement
Placement.
Definition ogr_core.h:1192
@ OGRSTLabelPerp
Perpendicular.
Definition ogr_core.h:1196
@ OGRSTLabelOColor
Outline color.
Definition ogr_core.h:1206
@ OGRSTLabelDx
Dx.
Definition ogr_core.h:1194
@ OGRSTLabelHColor
Highlight color.
Definition ogr_core.h:1205
@ OGRSTLabelItalic
Italic.
Definition ogr_core.h:1198
@ OGRSTLabelTextString
Text string.
Definition ogr_core.h:1188
@ OGRSTLabelSize
Size.
Definition ogr_core.h:1187
@ OGRSTLabelAngle
Angle.
Definition ogr_core.h:1189
@ OGRSTLabelFColor
Foreground color.
Definition ogr_core.h:1190
@ OGRSTLabelDy
Dy.
Definition ogr_core.h:1195
@ OGRSTLabelFontName
Font name.
Definition ogr_core.h:1186
@ OGRSTLabelStretch
Stretch.
Definition ogr_core.h:1202
@ OGRSTLabelAnchor
Anchor.
Definition ogr_core.h:1193
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition ogr_core.h:1203
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition ogr_core.h:1113
@ OGRSTUGround
Ground unit.
Definition ogr_core.h:1114
@ OGRSTUMM
Millimeter.
Definition ogr_core.h:1117
@ OGRSTUInches
Inch.
Definition ogr_core.h:1119
@ OGRSTUCM
Centimeter.
Definition ogr_core.h:1118
@ OGRSTUPoints
Points.
Definition ogr_core.h:1116
@ OGRSTUPixel
Pixel.
Definition ogr_core.h:1115
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition ogrgeometry.cpp:8240
OGRwkbGeometryType OGR_GT_GetSingle(OGRwkbGeometryType eType)
Returns the non-collection type that be contained in the passed geometry type.
Definition ogrgeometry.cpp:8363
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition ogr_core.h:399
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition ogrgeometry.cpp:2823
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition ogr_core.h:398
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition ogr_core.h:391
int OGRErr
Type for a OGR error.
Definition ogr_core.h:388
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition ogrutils.cpp:2347
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition ogr_core.h:1144
@ OGRSTBrushAngle
Angle.
Definition ogr_core.h:1148
@ OGRSTBrushId
Id.
Definition ogr_core.h:1147
@ OGRSTBrushPriority
Priority.
Definition ogr_core.h:1152
@ OGRSTBrushBColor
Background color.
Definition ogr_core.h:1146
@ OGRSTBrushSize
Size.
Definition ogr_core.h:1149
@ OGRSTBrushDy
Dy.
Definition ogr_core.h:1151
@ OGRSTBrushFColor
Foreground color.
Definition ogr_core.h:1145
@ OGRSTBrushDx
Dx.
Definition ogr_core.h:1150
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition ogrgeometry.cpp:8303
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:8188
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition ogr_core.h:1100
@ OGRSTCBrush
Brush.
Definition ogr_core.h:1103
@ OGRSTCVector
Vector.
Definition ogr_core.h:1106
@ OGRSTCNone
None.
Definition ogr_core.h:1101
@ OGRSTCLabel
Label.
Definition ogr_core.h:1105
@ OGRSTCPen
Pen.
Definition ogr_core.h:1102
@ OGRSTCSymbol
Symbol.
Definition ogr_core.h:1104
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:8096
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition ogr_core.h:1126
@ OGRSTPenId
Id.
Definition ogr_core.h:1130
@ OGRSTPenCap
Cap.
Definition ogr_core.h:1132
@ OGRSTPenPerOffset
Perpendicular offset.
Definition ogr_core.h:1131
@ OGRSTPenWidth
Width.
Definition ogr_core.h:1128
@ OGRSTPenColor
Color.
Definition ogr_core.h:1127
@ OGRSTPenJoin
Join.
Definition ogr_core.h:1133
@ OGRSTPenPriority
Priority.
Definition ogr_core.h:1134
@ OGRSTPenPattern
Pattern.
Definition ogr_core.h:1129
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition ogrgeometry.cpp:8547
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition ogr_core.h:397
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition ogrgeometry.cpp:8120
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition ogr_core.h:1251
@ OFDSP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1253
@ OFDSP_DUPLICATE
Duplicate.
Definition ogr_core.h:1255
@ OFDSP_GEOMETRY_RATIO
New values are computed by the ratio of their area/length compared to the area/length of the original...
Definition ogr_core.h:1258
Associates a code and a value.
Definition ogr_core.h:1221
char * pszValue
Value.
Definition ogr_core.h:1226
char * pszCode
Code.
Definition ogr_core.h:1223
OGRFeature field attribute value union.
Definition ogr_core.h:904