GDAL
ogr_core.h
Go to the documentation of this file.
1/******************************************************************************
2 * $Id$
3 *
4 * Project: OpenGIS Simple Features Reference Implementation
5 * Purpose: Define some core portability services for cross-platform OGR code.
6 * Author: Frank Warmerdam, warmerdam@pobox.com
7 *
8 ******************************************************************************
9 * Copyright (c) 1999, Frank Warmerdam
10 * Copyright (c) 2007-2014, Even Rouault <even dot rouault at spatialys.com>
11 *
12 * Permission is hereby granted, free of charge, to any person obtaining a
13 * copy of this software and associated documentation files (the "Software"),
14 * to deal in the Software without restriction, including without limitation
15 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16 * and/or sell copies of the Software, and to permit persons to whom the
17 * Software is furnished to do so, subject to the following conditions:
18 *
19 * The above copyright notice and this permission notice shall be included
20 * in all copies or substantial portions of the Software.
21 *
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
28 * DEALINGS IN THE SOFTWARE.
29 ****************************************************************************/
30
31#ifndef OGR_CORE_H_INCLUDED
32#define OGR_CORE_H_INCLUDED
33
34#include "cpl_port.h"
35#if defined(GDAL_COMPILATION)
36#define DO_NOT_DEFINE_GDAL_DATE_NAME
37#endif
38#include "gdal_version.h"
39
46#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
47
48extern "C++"
49{
50#if !defined(DOXYGEN_SKIP)
51#include <limits>
52#endif
53
57 class CPL_DLL OGREnvelope
58 {
59 public:
62 : MinX(std::numeric_limits<double>::infinity()),
63 MaxX(-std::numeric_limits<double>::infinity()),
64 MinY(std::numeric_limits<double>::infinity()),
65 MaxY(-std::numeric_limits<double>::infinity())
66 {
67 }
68
70 OGREnvelope(const OGREnvelope &oOther)
71 : MinX(oOther.MinX), MaxX(oOther.MaxX), MinY(oOther.MinY),
72 MaxY(oOther.MaxY)
73 {
74 }
75
77 OGREnvelope &operator=(const OGREnvelope &) = default;
78
80 double MinX;
81
83 double MaxX;
84
86 double MinY;
87
89 double MaxY;
90
91#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
92#pragma GCC diagnostic push
93#pragma GCC diagnostic ignored "-Wfloat-equal"
94#endif
97 int IsInit() const
98 {
99 return MinX != std::numeric_limits<double>::infinity();
100 }
101
102#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
103#pragma GCC diagnostic pop
104#endif
105
108 void Merge(OGREnvelope const &sOther)
109 {
110 MinX = MIN(MinX, sOther.MinX);
111 MaxX = MAX(MaxX, sOther.MaxX);
112 MinY = MIN(MinY, sOther.MinY);
113 MaxY = MAX(MaxY, sOther.MaxY);
114 }
115
118 void Merge(double dfX, double dfY)
119 {
120 MinX = MIN(MinX, dfX);
121 MaxX = MAX(MaxX, dfX);
122 MinY = MIN(MinY, dfY);
123 MaxY = MAX(MaxY, dfY);
124 }
125
128 void Intersect(OGREnvelope const &sOther)
129 {
130 if (Intersects(sOther))
131 {
132 if (IsInit())
133 {
134 MinX = MAX(MinX, sOther.MinX);
135 MaxX = MIN(MaxX, sOther.MaxX);
136 MinY = MAX(MinY, sOther.MinY);
137 MaxY = MIN(MaxY, sOther.MaxY);
138 }
139 else
140 {
141 MinX = sOther.MinX;
142 MaxX = sOther.MaxX;
143 MinY = sOther.MinY;
144 MaxY = sOther.MaxY;
145 }
146 }
147 else
148 {
149 *this = OGREnvelope();
150 }
151 }
152
155 int Intersects(OGREnvelope const &other) const
156 {
157 return MinX <= other.MaxX && MaxX >= other.MinX &&
158 MinY <= other.MaxY && MaxY >= other.MinY;
159 }
160
162 int Contains(OGREnvelope const &other) const
163 {
164 return MinX <= other.MinX && MinY <= other.MinY &&
165 MaxX >= other.MaxX && MaxY >= other.MaxY;
166 }
167
170 bool operator==(const OGREnvelope &other) const
171 {
172#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
173#pragma GCC diagnostic push
174#pragma GCC diagnostic ignored "-Wfloat-equal"
175#endif
176 return MinX == other.MinX && MinY == other.MinY &&
177 MaxX == other.MaxX && MaxY == other.MaxY;
178
179#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
180#pragma GCC diagnostic pop
181#endif
182 }
183
186 bool operator!=(const OGREnvelope &other) const
187 {
188 return !(*this == other);
189 }
190 };
191
192} // extern "C++"
193
194#else
195typedef struct
196{
197 double MinX;
198 double MaxX;
199 double MinY;
200 double MaxY;
202#endif
203
204#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
205
206extern "C++"
207{
208
212 class CPL_DLL OGREnvelope3D : public OGREnvelope
213 {
214 public:
217 : OGREnvelope(), MinZ(std::numeric_limits<double>::infinity()),
218 MaxZ(-std::numeric_limits<double>::infinity())
219 {
220 }
221
224 : OGREnvelope(oOther), MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
225 {
226 }
227
230
232 double MinZ;
233
235 double MaxZ;
236
237#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
238#pragma GCC diagnostic push
239#pragma GCC diagnostic ignored "-Wfloat-equal"
240#endif
243 int IsInit() const
244 {
245 return MinX != std::numeric_limits<double>::infinity();
246 }
247#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
248#pragma GCC diagnostic pop
249#endif
250
253 void Merge(OGREnvelope3D const &sOther)
254 {
255 MinX = MIN(MinX, sOther.MinX);
256 MaxX = MAX(MaxX, sOther.MaxX);
257 MinY = MIN(MinY, sOther.MinY);
258 MaxY = MAX(MaxY, sOther.MaxY);
259 MinZ = MIN(MinZ, sOther.MinZ);
260 MaxZ = MAX(MaxZ, sOther.MaxZ);
261 }
262
265 void Merge(OGREnvelope const &sOther)
266 {
267 MinX = MIN(MinX, sOther.MinX);
268 MaxX = MAX(MaxX, sOther.MaxX);
269 MinY = MIN(MinY, sOther.MinY);
270 MaxY = MAX(MaxY, sOther.MaxY);
271 }
272
275 void Merge(double dfX, double dfY, double dfZ)
276 {
277 MinX = MIN(MinX, dfX);
278 MaxX = MAX(MaxX, dfX);
279 MinY = MIN(MinY, dfY);
280 MaxY = MAX(MaxY, dfY);
281 MinZ = MIN(MinZ, dfZ);
282 MaxZ = MAX(MaxZ, dfZ);
283 }
284
287 void Intersect(OGREnvelope3D const &sOther)
288 {
289 if (Intersects(sOther))
290 {
291 if (IsInit())
292 {
293 MinX = MAX(MinX, sOther.MinX);
294 MaxX = MIN(MaxX, sOther.MaxX);
295 MinY = MAX(MinY, sOther.MinY);
296 MaxY = MIN(MaxY, sOther.MaxY);
297 MinZ = MAX(MinZ, sOther.MinZ);
298 MaxZ = MIN(MaxZ, sOther.MaxZ);
299 }
300 else
301 {
302 MinX = sOther.MinX;
303 MaxX = sOther.MaxX;
304 MinY = sOther.MinY;
305 MaxY = sOther.MaxY;
306 MinZ = sOther.MinZ;
307 MaxZ = sOther.MaxZ;
308 }
309 }
310 else
311 {
312 *this = OGREnvelope3D();
313 }
314 }
315
318 int Intersects(OGREnvelope3D const &other) const
319 {
320 return MinX <= other.MaxX && MaxX >= other.MinX &&
321 MinY <= other.MaxY && MaxY >= other.MinY &&
322 MinZ <= other.MaxZ && MaxZ >= other.MinZ;
323 }
324
326 int Contains(OGREnvelope3D const &other) const
327 {
328 return MinX <= other.MinX && MinY <= other.MinY &&
329 MaxX >= other.MaxX && MaxY >= other.MaxY &&
330 MinZ <= other.MinZ && MaxZ >= other.MaxZ;
331 }
332 };
333
334} // extern "C++"
335
336#else
337typedef struct
338{
339 double MinX;
340 double MaxX;
341 double MinY;
342 double MaxY;
343 double MinZ;
344 double MaxZ;
346#endif
347
349
351void CPL_DLL *OGRMalloc(size_t) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
352void CPL_DLL *OGRCalloc(size_t, size_t)
353 CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
354void CPL_DLL *OGRRealloc(void *, size_t)
355 CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
356char CPL_DLL *OGRStrdup(const char *)
357 CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
358void CPL_DLL OGRFree(void *) CPL_WARN_DEPRECATED("Use CPLFree instead.");
361#ifdef STRICT_OGRERR_TYPE
363typedef enum
364{
375} OGRErr;
376#else
378typedef int OGRErr;
379
380#define OGRERR_NONE 0
381#define OGRERR_NOT_ENOUGH_DATA 1
382#define OGRERR_NOT_ENOUGH_MEMORY 2
383#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
384#define OGRERR_UNSUPPORTED_OPERATION 4
385#define OGRERR_CORRUPT_DATA 5
386#define OGRERR_FAILURE 6
387#define OGRERR_UNSUPPORTED_SRS 7
388#define OGRERR_INVALID_HANDLE 8
389#define OGRERR_NON_EXISTING_FEATURE \
390 9
392#endif
393
395typedef int OGRBoolean;
396
397/* -------------------------------------------------------------------- */
398/* ogr_geometry.h related definitions. */
399/* -------------------------------------------------------------------- */
400
406typedef enum
407{
411 wkbLineString = 2,
413 wkbPolygon = 3,
418 5,
425 wkbCompoundCurve = 9,
427 wkbCurvePolygon = 10,
430 wkbMultiCurve = 11,
432 wkbMultiSurface = 12,
434 wkbCurve =
435 13,
436 wkbSurface =
437 14,
439 15,
441 wkbTIN = 16,
445 wkbNone = 100,
448 wkbCircularStringZ = 1008,
450 wkbCompoundCurveZ = 1009,
452 wkbCurvePolygonZ = 1010,
454 wkbMultiCurveZ = 1011,
456 wkbMultiSurfaceZ = 1012,
458 wkbCurveZ = 1013,
460 wkbSurfaceZ = 1014,
463 wkbTINZ = 1016,
466 wkbPointM = 2001,
468 wkbPolygonM = 2003,
478 wkbCurveM = 2013,
479 wkbSurfaceM = 2014,
481 wkbTINM = 2016,
484 wkbPointZM = 3001,
496 wkbCurveZM = 3013,
499 wkbTINZM = 3016,
502#if defined(DOXYGEN_SKIP)
503 // Sphinx doesn't like 0x8000000x constants
504 wkbPoint25D = -2147483647,
505 wkbLineString25D = -2147483646,
506 wkbPolygon25D = -2147483645,
507 wkbMultiPoint25D = -2147483644,
508 wkbMultiLineString25D = -2147483643,
509 wkbMultiPolygon25D = -2147483642,
510 wkbGeometryCollection25D = -2147483641
511#else
512 wkbPoint25D = 0x80000001,
513 wkbLineString25D = 0x80000002,
514 wkbPolygon25D = 0x80000003,
515 wkbMultiPoint25D = 0x80000004,
516 wkbMultiLineString25D = 0x80000005,
517 wkbMultiPolygon25D = 0x80000006,
518 wkbGeometryCollection25D = 0x80000007
519#endif
521
522/* clang-format off */
538/* clang-format on */
539
548
549#ifndef GDAL_COMPILATION
551#define wkb25DBit 0x80000000
552#endif
553
554#ifndef __cplusplus
556#define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
557#else
559#define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
560#endif
561
565#define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
566
570#define wkbSetZ(x) OGR_GT_SetZ(x)
571
575#define wkbHasM(x) (OGR_GT_HasM(x) != 0)
576
581#define wkbSetM(x) OGR_GT_SetM(x)
582
583#ifndef DOXYGEN_SKIP
584#define ogrZMarker 0x21125711
585#endif
586
587const char CPL_DLL *OGRGeometryTypeToName(OGRwkbGeometryType eType);
589 OGRwkbGeometryType eExtra);
591 OGRwkbGeometryType eExtra,
592 int bAllowPromotingToCurves);
597 int bSetZ, int bSetM);
598int CPL_DLL OGR_GT_HasZ(OGRwkbGeometryType eType);
599int CPL_DLL OGR_GT_HasM(OGRwkbGeometryType eType);
601 OGRwkbGeometryType eSuperType);
608
610typedef enum
611{
612 wkbXDR = 0,
613 wkbNDR = 1
615
616#ifndef DOXYGEN_SKIP
617
618#ifndef NO_HACK_FOR_IBM_DB2_V72
619#define HACK_FOR_IBM_DB2_V72
620#endif
621
622#ifdef HACK_FOR_IBM_DB2_V72
623#define DB2_V72_FIX_BYTE_ORDER(x) ((((x)&0x31) == (x)) ? ((x)&0x1) : (x))
624#define DB2_V72_UNFIX_BYTE_ORDER(x) \
625 CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER \
626 ? ((x) | 0x30) \
627 : (x))
628#else
629#define DB2_V72_FIX_BYTE_ORDER(x) (x)
630#define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
631#endif
632
633#endif /* #ifndef DOXYGEN_SKIP */
634
638#define ALTER_NAME_FLAG 0x1
639
643#define ALTER_TYPE_FLAG 0x2
644
648#define ALTER_WIDTH_PRECISION_FLAG 0x4
649
654#define ALTER_NULLABLE_FLAG 0x8
655
660#define ALTER_DEFAULT_FLAG 0x10
661
666#define ALTER_UNIQUE_FLAG 0x20
667
672#define ALTER_DOMAIN_FLAG 0x40
673
677#define ALTER_ALL_FLAG \
678 (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | \
679 ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | \
680 ALTER_DOMAIN_FLAG)
681
686#define ALTER_GEOM_FIELD_DEFN_NAME_FLAG 0x1000
687
692#define ALTER_GEOM_FIELD_DEFN_TYPE_FLAG 0x2000
693
698#define ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG 0x4000
699
704#define ALTER_GEOM_FIELD_DEFN_SRS_FLAG 0x8000
705
710#define ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG 0x10000
711
716#define ALTER_GEOM_FIELD_DEFN_ALL_FLAG \
717 (ALTER_GEOM_FIELD_DEFN_NAME_FLAG | ALTER_GEOM_FIELD_DEFN_TYPE_FLAG | \
718 ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_FLAG | \
719 ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG)
720
725#define OGR_F_VAL_NULL 0x00000001
726
731#define OGR_F_VAL_GEOM_TYPE 0x00000002
732
737#define OGR_F_VAL_WIDTH 0x00000004
738
745#define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
746
753#define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
754
759#define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
760
761/************************************************************************/
762/* ogr_feature.h related definitions. */
763/************************************************************************/
764
771typedef enum
772{
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,
787 OFTMaxType = 13
789
799typedef enum
800{
OFSTNone = 0,
817 OFSTMaxSubType = 5
819
824typedef enum
825{
826 OJUndefined = 0,
827 OJLeft = 1,
828 OJRight = 2
830
832#define OGRNullFID -1
833
834/* Special value for an unknown field type. This should only be used
835 * while reading a file. At the end of file any unknown types should
836 * be set to OFTString.
837 */
839#define OGRUnknownType static_cast<OGRFieldType>(-1)
847#define OGRUnsetMarker -21121
848
855#define OGRNullMarker -21122
856
857/************************************************************************/
858/* OGRField */
859/************************************************************************/
860
865typedef union
866{
868 int Integer;
869 GIntBig Integer64;
870 double Real;
871 char *String;
872
873 struct
874 {
875 int nCount;
876 int *paList;
877 } IntegerList;
878
879 struct
880 {
881 int nCount;
882 GIntBig *paList;
883 } Integer64List;
884
885 struct
886 {
887 int nCount;
888 double *paList;
889 } RealList;
890
891 struct
892 {
893 int nCount;
894 char **paList;
895 } StringList;
896
897 struct
898 {
899 int nCount;
900 GByte *paData;
901 } Binary;
902
903 struct
904 {
905 int nMarker1;
906 int nMarker2;
907 int nMarker3;
908 } Set;
909
910 struct
911 {
912 GInt16 Year;
913 GByte Month;
914 GByte Day;
915 GByte Hour;
916 GByte Minute;
917 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
918 100=GMT, 104=GMT+1, 80=GMT-5, etc */
919 GByte Reserved; /* must be set to 0 */
920 float Second; /* with millisecond accuracy. at the end of the structure,
921 so as to keep it 12 bytes on 32 bit */
922 } Date;
924} OGRField;
925
926#ifdef __cplusplus
928inline int OGR_GET_MS(float fSec)
929{
930 if (CPLIsNan(fSec))
931 return 0;
932 if (fSec >= 999)
933 return 999;
934 if (fSec <= 0)
935 return 0;
936 const float fValue = (fSec - static_cast<int>(fSec)) * 1000 + 0.5f;
937 return static_cast<int>(fValue);
938}
939#endif // __cplusplus
940
941int CPL_DLL OGRParseDate(const char *pszInput, OGRField *psOutput,
942 int nOptions);
943
944/* -------------------------------------------------------------------- */
945/* Constants from ogrsf_frmts.h for capabilities. */
946/* -------------------------------------------------------------------- */
947#define OLCRandomRead "RandomRead"
948#define OLCSequentialWrite \
949 "SequentialWrite"
950#define OLCRandomWrite "RandomWrite"
951#define OLCFastSpatialFilter \
952 "FastSpatialFilter"
953#define OLCFastFeatureCount \
954 "FastFeatureCount"
956#define OLCFastGetExtent \
957 "FastGetExtent"
958#define OLCCreateField \
959 "CreateField"
961#define OLCDeleteField \
962 "DeleteField"
964#define OLCReorderFields \
965 "ReorderFields"
966#define OLCAlterFieldDefn \
967 "AlterFieldDefn"
968#define OLCAlterGeomFieldDefn \
969 "AlterGeomFieldDefn"
971#define OLCTransactions \
972 "Transactions"
974#define OLCDeleteFeature \
975 "DeleteFeature"
976#define OLCUpsertFeature \
977 "UpsertFeature"
978#define OLCFastSetNextByIndex \
979 "FastSetNextByIndex"
981#define OLCStringsAsUTF8 \
982 "StringsAsUTF8"
984#define OLCIgnoreFields \
985 "IgnoreFields"
986#define OLCCreateGeomField \
987 "CreateGeomField"
988#define OLCCurveGeometries \
989 "CurveGeometries"
990#define OLCMeasuredGeometries \
991 "MeasuredGeometries"
993#define OLCZGeometries \
994 "ZGeometries"
996#define OLCRename \
997 "Rename"
998#define OLCFastGetArrowStream \
999 "FastGetArrowStream"
1002#define ODsCCreateLayer \
1003 "CreateLayer"
1004#define ODsCDeleteLayer \
1005 "DeleteLayer"
1006/* Reserved: "RenameLayer" */
1007#define ODsCCreateGeomFieldAfterCreateLayer \
1008 "CreateGeomFieldAfterCreateLayer"
1010#define ODsCCurveGeometries \
1011 "CurveGeometries"
1012#define ODsCTransactions \
1013 "Transactions"
1014#define ODsCEmulatedTransactions \
1015 "EmulatedTransactions"
1017#define ODsCMeasuredGeometries \
1018 "MeasuredGeometries"
1020#define ODsCZGeometries \
1021 "ZGeometries"
1023#define ODsCRandomLayerRead \
1024 "RandomLayerRead"
1026/* Note the unfortunate trailing space at the end of the string */
1027#define ODsCRandomLayerWrite \
1028 "RandomLayerWrite "
1030#define ODsCAddFieldDomain \
1031 "AddFieldDomain"
1033#define ODsCDeleteFieldDomain \
1034 "DeleteFieldDomain"
1036#define ODsCUpdateFieldDomain \
1037 "UpdateFieldDomain"
1040#define ODrCCreateDataSource \
1041 "CreateDataSource"
1042#define ODrCDeleteDataSource \
1043 "DeleteDataSource"
1045/* -------------------------------------------------------------------- */
1046/* Layer metadata items. */
1047/* -------------------------------------------------------------------- */
1052#define OLMD_FID64 "OLMD_FID64"
1053
1054/************************************************************************/
1055/* ogr_featurestyle.h related definitions. */
1056/************************************************************************/
1057
1071
1084
1102
1121
1143
1174
1175/* -------------------------------------------------------------------- */
1176/* Field domains */
1177/* -------------------------------------------------------------------- */
1178
1183typedef struct
1184{
1186 char *pszCode;
1187
1191
1205
1223
1240
1241/* ------------------------------------------------------------------- */
1242/* Version checking */
1243/* -------------------------------------------------------------------- */
1244
1245#ifndef DOXYGEN_SKIP
1246
1247/* Note to developers : please keep this section in sync with gdal.h */
1248
1249#ifndef GDAL_VERSION_INFO_DEFINED
1250#define GDAL_VERSION_INFO_DEFINED
1251const char CPL_DLL *CPL_STDCALL GDALVersionInfo(const char *);
1252#endif
1253
1254#ifndef GDAL_CHECK_VERSION
1255
1268int CPL_DLL CPL_STDCALL GDALCheckVersion(int nVersionMajor, int nVersionMinor,
1269 const char *pszCallingComponentName);
1270
1272#define GDAL_CHECK_VERSION(pszCallingComponentName) \
1273 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, \
1274 pszCallingComponentName)
1275
1276#endif
1277
1278#endif /* #ifndef DOXYGEN_SKIP */
1279
1281
1282#endif /* ndef OGR_CORE_H_INCLUDED */
Simple container for a bounding region in 3D.
Definition ogr_core.h:213
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:265
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:253
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:243
void Merge(double dfX, double dfY, double dfZ)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:275
int Intersects(OGREnvelope3D const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:318
double MaxZ
Maximum Z value.
Definition ogr_core.h:235
OGREnvelope3D & operator=(const OGREnvelope3D &)=default
Assignment operator.
double MinZ
Minimum Z value.
Definition ogr_core.h:232
OGREnvelope3D()
Default constructor.
Definition ogr_core.h:216
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:326
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:287
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition ogr_core.h:223
Simple container for a bounding region (rectangle)
Definition ogr_core.h:58
int Contains(OGREnvelope const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:162
double MinY
Minimum Y value.
Definition ogr_core.h:86
bool operator!=(const OGREnvelope &other) const
Return whether the current rectangle is not equal to the other rectangle.
Definition ogr_core.h:186
double MaxX
Maximum X value.
Definition ogr_core.h:83
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:128
double MinX
Minimum X value.
Definition ogr_core.h:80
OGREnvelope()
Default constructor.
Definition ogr_core.h:61
double MaxY
Maximum Y value.
Definition ogr_core.h:89
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:97
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:155
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:118
bool operator==(const OGREnvelope &other) const
Return whether the current rectangle is equal to the other rectangle.
Definition ogr_core.h:170
OGREnvelope & operator=(const OGREnvelope &)=default
Assignment operator.
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition ogr_core.h:70
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:108
Core portability definitions for CPL.
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition cpl_port.h:390
short GInt16
Int16 type.
Definition cpl_port.h:201
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:317
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:313
#define CPLIsNan(x)
Return whether a floating-pointer number is NaN.
Definition cpl_port.h:675
unsigned char GByte
Unsigned byte type.
Definition cpl_port.h:205
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:233
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition cpl_port.h:392
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition gdal_misc.cpp:2424
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition gdal_misc.cpp:2261
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition ogrgeometry.cpp:2771
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition ogr_core.h:382
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition ogrgeometry.cpp:6744
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition ogrgeometry.cpp:7079
int OGRBoolean
Type for a OGR boolean.
Definition ogr_core.h:395
OGRFieldSubType
List of field subtypes.
Definition ogr_core.h:800
@ OFSTBoolean
Boolean integer.
Definition ogr_core.h:803
@ OFSTInt16
Signed 16-bit integer.
Definition ogr_core.h:805
@ OFSTUUID
UUID string representation.
Definition ogr_core.h:816
@ OFSTJSON
JSON content.
Definition ogr_core.h:812
@ OFSTNone
No subtype.
Definition ogr_core.h:801
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition ogr_core.h:808
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition ogr_core.h:1126
@ OGRSTSymbolDy
Dy.
Definition ogr_core.h:1132
@ OGRSTSymbolId
Id.
Definition ogr_core.h:1127
@ OGRSTSymbolSize
Size.
Definition ogr_core.h:1130
@ OGRSTSymbolFontName
Font name.
Definition ogr_core.h:1137
@ OGRSTSymbolColor
Color.
Definition ogr_core.h:1129
@ OGRSTSymbolDx
Dx.
Definition ogr_core.h:1131
@ OGRSTSymbolPerp
Perpendicular.
Definition ogr_core.h:1134
@ OGRSTSymbolAngle
Angle.
Definition ogr_core.h:1128
@ OGRSTSymbolOColor
Outline color.
Definition ogr_core.h:1138
@ OGRSTSymbolPriority
Priority.
Definition ogr_core.h:1136
@ OGRSTSymbolStep
Step.
Definition ogr_core.h:1133
@ OGRSTSymbolOffset
Offset.
Definition ogr_core.h:1135
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:1232
@ OFDMP_SUM
Sum.
Definition ogr_core.h:1236
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition ogr_core.h:1238
@ OFDMP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1234
OGRwkbByteOrder
Enumeration to describe byte order.
Definition ogr_core.h:611
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition ogr_core.h:612
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition ogr_core.h:613
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition ogrutils.cpp:969
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition ogr_core.h:383
OGRFieldDomainType
Type of field domain.
Definition ogr_core.h:1197
@ OFDT_RANGE
Range (min/max)
Definition ogr_core.h:1201
@ OFDT_CODED
Coded.
Definition ogr_core.h:1199
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition ogr_core.h:1203
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:7016
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition ogrgeometry.cpp:7058
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:6767
#define OGRERR_FAILURE
Failure.
Definition ogr_core.h:386
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition ogr_core.h:384
OGRwkbVariant
Output variants of WKB we support.
Definition ogr_core.h:541
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition ogr_core.h:545
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition ogr_core.h:542
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition ogr_core.h:543
#define OGRERR_NONE
Success.
Definition ogr_core.h:380
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition ogrgeometry.cpp:2735
OGRJustification
Display justification for field values.
Definition ogr_core.h:825
OGRFieldType
List of feature field types.
Definition ogr_core.h:772
@ OFTTime
Time.
Definition ogr_core.h:783
@ OFTInteger64List
List of 64bit integers.
Definition ogr_core.h:786
@ OFTIntegerList
List of 32bit integers.
Definition ogr_core.h:774
@ OFTDate
Date.
Definition ogr_core.h:782
@ OFTWideStringList
deprecated
Definition ogr_core.h:780
@ OFTInteger
Simple 32bit integer.
Definition ogr_core.h:773
@ OFTString
String of ASCII chars.
Definition ogr_core.h:777
@ OFTBinary
Raw Binary data.
Definition ogr_core.h:781
@ OFTRealList
List of doubles.
Definition ogr_core.h:776
@ OFTReal
Double Precision floating point.
Definition ogr_core.h:775
@ OFTStringList
Array of strings.
Definition ogr_core.h:778
@ OFTDateTime
Date and Time.
Definition ogr_core.h:784
@ OFTInteger64
Single 64bit integer.
Definition ogr_core.h:785
@ OFTWideString
deprecated
Definition ogr_core.h:779
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition ogrgeometry.cpp:6966
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:407
@ wkbPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:506
@ wkbCurve
Curve (abstract type).
Definition ogr_core.h:434
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition ogr_core.h:411
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition ogr_core.h:423
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:497
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition ogr_core.h:413
@ wkbTriangle
a Triangle.
Definition ogr_core.h:443
@ wkbPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:504
@ wkbSurfaceZ
wkbSurface with Z component.
Definition ogr_core.h:460
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:477
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:486
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:509
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:480
@ wkbTINZM
ISO SQL/MM Part 3.
Definition ogr_core.h:499
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:487
@ wkbPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:466
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition ogr_core.h:417
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:474
@ wkbUnknown
unknown type, non-standard
Definition ogr_core.h:408
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:495
@ wkbTINZ
ISO SQL/MM Part 3.
Definition ogr_core.h:463
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:473
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:468
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:476
@ wkbLinearRing
non-standard, just for createGeometry()
Definition ogr_core.h:446
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:467
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition ogr_core.h:441
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition ogr_core.h:510
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:479
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:475
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition ogr_core.h:438
@ wkbSurface
Surface (abstract type).
Definition ogr_core.h:436
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition ogr_core.h:454
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition ogr_core.h:448
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition ogr_core.h:410
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition ogr_core.h:425
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition ogr_core.h:462
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition ogr_core.h:420
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition ogr_core.h:419
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition ogr_core.h:416
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:470
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:494
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:507
@ wkbNone
non-standard, for pure attribute records
Definition ogr_core.h:445
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:469
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:491
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition ogr_core.h:452
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:492
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition ogr_core.h:464
@ wkbPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:484
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition ogr_core.h:427
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:485
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition ogr_core.h:432
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:471
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:496
@ wkbLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:505
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:488
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:498
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition ogr_core.h:490
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition ogr_core.h:500
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition ogr_core.h:472
@ wkbCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:478
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:508
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition ogr_core.h:482
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:489
@ wkbTINM
ISO SQL/MM Part 3.
Definition ogr_core.h:481
@ wkbCurveZ
wkbCurve with Z component.
Definition ogr_core.h:458
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:493
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition ogr_core.h:430
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition ogr_core.h:450
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition ogr_core.h:456
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:6818
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition ogr_core.h:385
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition ogr_core.h:1148
@ OGRSTLabelUnderline
Underline.
Definition ogr_core.h:1162
@ OGRSTLabelPriority
Priority.
Definition ogr_core.h:1163
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition ogr_core.h:1167
@ OGRSTLabelBold
Bold.
Definition ogr_core.h:1160
@ OGRSTLabelStrikeout
Strike out.
Definition ogr_core.h:1164
@ OGRSTLabelBColor
Background color.
Definition ogr_core.h:1154
@ OGRSTLabelPlacement
Placement.
Definition ogr_core.h:1155
@ OGRSTLabelPerp
Perpendicular.
Definition ogr_core.h:1159
@ OGRSTLabelOColor
Outline color.
Definition ogr_core.h:1169
@ OGRSTLabelDx
Dx.
Definition ogr_core.h:1157
@ OGRSTLabelHColor
Highlight color.
Definition ogr_core.h:1168
@ OGRSTLabelItalic
Italic.
Definition ogr_core.h:1161
@ OGRSTLabelTextString
Text string.
Definition ogr_core.h:1151
@ OGRSTLabelSize
Size.
Definition ogr_core.h:1150
@ OGRSTLabelAngle
Angle.
Definition ogr_core.h:1152
@ OGRSTLabelFColor
Foreground color.
Definition ogr_core.h:1153
@ OGRSTLabelDy
Dy.
Definition ogr_core.h:1158
@ OGRSTLabelFontName
Font name.
Definition ogr_core.h:1149
@ OGRSTLabelStretch
Stretch.
Definition ogr_core.h:1165
@ OGRSTLabelAnchor
Anchor.
Definition ogr_core.h:1156
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition ogr_core.h:1166
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition ogr_core.h:1076
@ OGRSTUGround
Ground unit.
Definition ogr_core.h:1077
@ OGRSTUMM
Millimeter.
Definition ogr_core.h:1080
@ OGRSTUInches
Inch.
Definition ogr_core.h:1082
@ OGRSTUCM
Centimeter.
Definition ogr_core.h:1081
@ OGRSTUPoints
Points.
Definition ogr_core.h:1079
@ OGRSTUPixel
Pixel.
Definition ogr_core.h:1078
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition ogrgeometry.cpp:6845
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:389
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition ogrgeometry.cpp:2513
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition ogr_core.h:388
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:381
int OGRErr
Type for a OGR error.
Definition ogr_core.h:378
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition ogr_core.h:928
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition ogr_core.h:1107
@ OGRSTBrushAngle
Angle.
Definition ogr_core.h:1111
@ OGRSTBrushId
Id.
Definition ogr_core.h:1110
@ OGRSTBrushPriority
Priority.
Definition ogr_core.h:1115
@ OGRSTBrushBColor
Background color.
Definition ogr_core.h:1109
@ OGRSTBrushSize
Size.
Definition ogr_core.h:1112
@ OGRSTBrushDy
Dy.
Definition ogr_core.h:1114
@ OGRSTBrushFColor
Foreground color.
Definition ogr_core.h:1108
@ OGRSTBrushDx
Dx.
Definition ogr_core.h:1113
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition ogrgeometry.cpp:6909
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:6791
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition ogr_core.h:1063
@ OGRSTCBrush
Brush.
Definition ogr_core.h:1066
@ OGRSTCVector
Vector.
Definition ogr_core.h:1069
@ OGRSTCNone
None.
Definition ogr_core.h:1064
@ OGRSTCLabel
Label.
Definition ogr_core.h:1068
@ OGRSTCPen
Pen.
Definition ogr_core.h:1065
@ OGRSTCSymbol
Symbol.
Definition ogr_core.h:1067
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:6695
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition ogr_core.h:1089
@ OGRSTPenId
Id.
Definition ogr_core.h:1093
@ OGRSTPenCap
Cap.
Definition ogr_core.h:1095
@ OGRSTPenPerOffset
Perpendicular offset.
Definition ogr_core.h:1094
@ OGRSTPenWidth
Width.
Definition ogr_core.h:1091
@ OGRSTPenColor
Color.
Definition ogr_core.h:1090
@ OGRSTPenJoin
Join.
Definition ogr_core.h:1096
@ OGRSTPenPriority
Priority.
Definition ogr_core.h:1097
@ OGRSTPenPattern
Pattern.
Definition ogr_core.h:1092
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition ogrgeometry.cpp:7101
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition ogr_core.h:387
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition ogrgeometry.cpp:6720
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition ogr_core.h:1214
@ OFDSP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1216
@ OFDSP_DUPLICATE
Duplicate.
Definition ogr_core.h:1218
@ 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:1221
Associates a code and a value.
Definition ogr_core.h:1184
char * pszValue
Value.
Definition ogr_core.h:1189
char * pszCode
Code.
Definition ogr_core.h:1186
OGRFeature field attribute value union.
Definition ogr_core.h:866