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 
48 extern "C++"
49 {
50 #if !defined(DOXYGEN_SKIP)
51 #include <cmath>
52 #include <limits>
53 #endif
54 
55  class OGREnvelope3D;
56 
60  class CPL_DLL OGREnvelope
61  {
62  public:
65  : MinX(std::numeric_limits<double>::infinity()),
66  MaxX(-std::numeric_limits<double>::infinity()),
67  MinY(std::numeric_limits<double>::infinity()),
68  MaxY(-std::numeric_limits<double>::infinity())
69  {
70  }
71 
73  OGREnvelope(const OGREnvelope &oOther)
74  : MinX(oOther.MinX), MaxX(oOther.MaxX), MinY(oOther.MinY),
75  MaxY(oOther.MaxY)
76  {
77  }
78 
80  OGREnvelope &operator=(const OGREnvelope &) = default;
81 
83  double MinX;
84 
86  double MaxX;
87 
89  double MinY;
90 
92  double MaxY;
93 
94 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
95 #pragma GCC diagnostic push
96 #pragma GCC diagnostic ignored "-Wfloat-equal"
97 #endif
100  int IsInit() const
101  {
102  return MinX != std::numeric_limits<double>::infinity();
103  }
104 
105 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
106 #pragma GCC diagnostic pop
107 #endif
108 
111  void Merge(OGREnvelope const &sOther)
112  {
113  MinX = MIN(MinX, sOther.MinX);
114  MaxX = MAX(MaxX, sOther.MaxX);
115  MinY = MIN(MinY, sOther.MinY);
116  MaxY = MAX(MaxY, sOther.MaxY);
117  }
118 
121  void Merge(double dfX, double dfY)
122  {
123  MinX = MIN(MinX, dfX);
124  MaxX = MAX(MaxX, dfX);
125  MinY = MIN(MinY, dfY);
126  MaxY = MAX(MaxY, dfY);
127  }
128 
131  void Intersect(OGREnvelope const &sOther)
132  {
133  if (Intersects(sOther))
134  {
135  if (IsInit())
136  {
137  MinX = MAX(MinX, sOther.MinX);
138  MaxX = MIN(MaxX, sOther.MaxX);
139  MinY = MAX(MinY, sOther.MinY);
140  MaxY = MIN(MaxY, sOther.MaxY);
141  }
142  else
143  {
144  MinX = sOther.MinX;
145  MaxX = sOther.MaxX;
146  MinY = sOther.MinY;
147  MaxY = sOther.MaxY;
148  }
149  }
150  else
151  {
152  *this = OGREnvelope();
153  }
154  }
155 
158  int Intersects(OGREnvelope const &other) const
159  {
160  return MinX <= other.MaxX && MaxX >= other.MinX &&
161  MinY <= other.MaxY && MaxY >= other.MinY;
162  }
163 
165  int Contains(OGREnvelope const &other) const
166  {
167  return MinX <= other.MinX && MinY <= other.MinY &&
168  MaxX >= other.MaxX && MaxY >= other.MaxY;
169  }
170 
173  bool operator==(const OGREnvelope &other) const
174  {
175 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
176 #pragma GCC diagnostic push
177 #pragma GCC diagnostic ignored "-Wfloat-equal"
178 #endif
179  return MinX == other.MinX && MinY == other.MinY &&
180  MaxX == other.MaxX && MaxY == other.MaxY;
181 
182 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
183 #pragma GCC diagnostic pop
184 #endif
185  }
186 
189  bool operator!=(const OGREnvelope &other) const
190  {
191  return !(*this == other);
192  }
193  };
194 
195 } // extern "C++"
196 
197 #else
198 typedef struct
199 {
200  double MinX;
201  double MaxX;
202  double MinY;
203  double MaxY;
204 } OGREnvelope;
205 #endif
206 
207 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
208 
209 extern "C++"
210 {
211 
215  class CPL_DLL OGREnvelope3D : public OGREnvelope
216  {
217  public:
220  : OGREnvelope(), MinZ(std::numeric_limits<double>::infinity()),
221  MaxZ(-std::numeric_limits<double>::infinity())
222  {
223  }
224 
227  : OGREnvelope(oOther), MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
228  {
229  }
230 
232  OGREnvelope3D &operator=(const OGREnvelope3D &) = default;
233 
235  bool Is3D() const
236  {
237  return std::isfinite(MinZ) && std::isfinite(MaxZ);
238  }
239 
241  double MinZ;
242 
244  double MaxZ;
245 
246 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
247 #pragma GCC diagnostic push
248 #pragma GCC diagnostic ignored "-Wfloat-equal"
249 #endif
252  int IsInit() const
253  {
254  return MinX != std::numeric_limits<double>::infinity();
255  }
256 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
257 #pragma GCC diagnostic pop
258 #endif
259 
262  void Merge(OGREnvelope3D const &sOther)
263  {
264  MinX = MIN(MinX, sOther.MinX);
265  MaxX = MAX(MaxX, sOther.MaxX);
266  MinY = MIN(MinY, sOther.MinY);
267  MaxY = MAX(MaxY, sOther.MaxY);
268  MinZ = MIN(MinZ, sOther.MinZ);
269  MaxZ = MAX(MaxZ, sOther.MaxZ);
270  }
271 
274  void Merge(OGREnvelope const &sOther)
275  {
276  MinX = MIN(MinX, sOther.MinX);
277  MaxX = MAX(MaxX, sOther.MaxX);
278  MinY = MIN(MinY, sOther.MinY);
279  MaxY = MAX(MaxY, sOther.MaxY);
280  }
281 
284  void Merge(double dfX, double dfY, double dfZ)
285  {
286  MinX = MIN(MinX, dfX);
287  MaxX = MAX(MaxX, dfX);
288  MinY = MIN(MinY, dfY);
289  MaxY = MAX(MaxY, dfY);
290  MinZ = MIN(MinZ, dfZ);
291  MaxZ = MAX(MaxZ, dfZ);
292  }
293 
296  void Intersect(OGREnvelope3D const &sOther)
297  {
298  if (Intersects(sOther))
299  {
300  if (IsInit())
301  {
302  MinX = MAX(MinX, sOther.MinX);
303  MaxX = MIN(MaxX, sOther.MaxX);
304  MinY = MAX(MinY, sOther.MinY);
305  MaxY = MIN(MaxY, sOther.MaxY);
306  MinZ = MAX(MinZ, sOther.MinZ);
307  MaxZ = MIN(MaxZ, sOther.MaxZ);
308  }
309  else
310  {
311  MinX = sOther.MinX;
312  MaxX = sOther.MaxX;
313  MinY = sOther.MinY;
314  MaxY = sOther.MaxY;
315  MinZ = sOther.MinZ;
316  MaxZ = sOther.MaxZ;
317  }
318  }
319  else
320  {
321  *this = OGREnvelope3D();
322  }
323  }
324 
327  int Intersects(OGREnvelope3D const &other) const
328  {
329  return MinX <= other.MaxX && MaxX >= other.MinX &&
330  MinY <= other.MaxY && MaxY >= other.MinY &&
331  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
332  }
333 
335  int Contains(OGREnvelope3D const &other) const
336  {
337  return MinX <= other.MinX && MinY <= other.MinY &&
338  MaxX >= other.MaxX && MaxY >= other.MaxY &&
339  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
340  }
341  };
342 
343 } // extern "C++"
344 
345 #else
346 typedef struct
347 {
348  double MinX;
349  double MaxX;
350  double MinY;
351  double MaxY;
352  double MinZ;
353  double MaxZ;
354 } OGREnvelope3D;
355 #endif
356 
358 
360 void CPL_DLL *OGRMalloc(size_t) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
361 void CPL_DLL *OGRCalloc(size_t, size_t)
362  CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
363 void CPL_DLL *OGRRealloc(void *, size_t)
364  CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
365 char CPL_DLL *OGRStrdup(const char *)
366  CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
367 void CPL_DLL OGRFree(void *) CPL_WARN_DEPRECATED("Use CPLFree instead.");
370 #ifdef STRICT_OGRERR_TYPE
372 typedef enum
373 {
374  OGRERR_NONE,
384 } OGRErr;
385 #else
387 typedef int OGRErr;
388 
389 #define OGRERR_NONE 0
390 #define OGRERR_NOT_ENOUGH_DATA 1
391 #define OGRERR_NOT_ENOUGH_MEMORY 2
392 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
393 #define OGRERR_UNSUPPORTED_OPERATION 4
394 #define OGRERR_CORRUPT_DATA 5
395 #define OGRERR_FAILURE 6
396 #define OGRERR_UNSUPPORTED_SRS 7
397 #define OGRERR_INVALID_HANDLE 8
398 #define OGRERR_NON_EXISTING_FEATURE \
399  9
401 #endif
402 
404 typedef int OGRBoolean;
405 
406 /* -------------------------------------------------------------------- */
407 /* ogr_geometry.h related definitions. */
408 /* -------------------------------------------------------------------- */
409 
415 typedef enum
416 {
419  wkbPoint = 1,
420  wkbLineString = 2,
422  wkbPolygon = 3,
427  5,
432  wkbCircularString = 8,
434  wkbCompoundCurve = 9,
436  wkbCurvePolygon = 10,
439  wkbMultiCurve = 11,
441  wkbMultiSurface = 12,
443  wkbCurve =
444  13,
445  wkbSurface =
446  14,
448  15,
450  wkbTIN = 16,
452  wkbTriangle = 17,
454  wkbNone = 100,
457  wkbCircularStringZ = 1008,
459  wkbCompoundCurveZ = 1009,
461  wkbCurvePolygonZ = 1010,
463  wkbMultiCurveZ = 1011,
465  wkbMultiSurfaceZ = 1012,
467  wkbCurveZ = 1013,
469  wkbSurfaceZ = 1014,
472  wkbTINZ = 1016,
473  wkbTriangleZ = 1017,
475  wkbPointM = 2001,
476  wkbLineStringM = 2002,
477  wkbPolygonM = 2003,
478  wkbMultiPointM = 2004,
485  wkbMultiCurveM = 2011,
487  wkbCurveM = 2013,
488  wkbSurfaceM = 2014,
490  wkbTINM = 2016,
491  wkbTriangleM = 2017,
493  wkbPointZM = 3001,
495  wkbPolygonZM = 3003,
505  wkbCurveZM = 3013,
506  wkbSurfaceZM = 3014,
508  wkbTINZM = 3016,
509  wkbTriangleZM = 3017,
511 #if defined(DOXYGEN_SKIP)
512  // Sphinx doesn't like 0x8000000x constants
513  wkbPoint25D = -2147483647,
514  wkbLineString25D = -2147483646,
515  wkbPolygon25D = -2147483645,
516  wkbMultiPoint25D = -2147483644,
517  wkbMultiLineString25D = -2147483643,
518  wkbMultiPolygon25D = -2147483642,
519  wkbGeometryCollection25D = -2147483641
520 #else
521  wkbPoint25D = 0x80000001,
522  wkbLineString25D = 0x80000002,
523  wkbPolygon25D = 0x80000003,
524  wkbMultiPoint25D = 0x80000004,
525  wkbMultiLineString25D = 0x80000005,
526  wkbMultiPolygon25D = 0x80000006,
527  wkbGeometryCollection25D = 0x80000007
528 #endif
530 
531 /* clang-format off */
547 /* clang-format on */
548 
549 typedef enum
550 {
552  wkbVariantIso,
557 
558 #ifndef GDAL_COMPILATION
560 #define wkb25DBit 0x80000000
561 #endif
562 
563 #ifndef __cplusplus
565 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
566 #else
568 #define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
569 #endif
570 
574 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
575 
579 #define wkbSetZ(x) OGR_GT_SetZ(x)
580 
584 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
585 
590 #define wkbSetM(x) OGR_GT_SetM(x)
591 
592 #ifndef DOXYGEN_SKIP
593 #define ogrZMarker 0x21125711
594 #endif
595 
596 const char CPL_DLL *OGRGeometryTypeToName(OGRwkbGeometryType eType);
598  OGRwkbGeometryType eExtra);
600  OGRwkbGeometryType eExtra,
601  int bAllowPromotingToCurves);
606  int bSetZ, int bSetM);
607 int CPL_DLL OGR_GT_HasZ(OGRwkbGeometryType eType);
608 int CPL_DLL OGR_GT_HasM(OGRwkbGeometryType eType);
609 int CPL_DLL OGR_GT_IsSubClassOf(OGRwkbGeometryType eType,
610  OGRwkbGeometryType eSuperType);
617 
619 typedef enum
620 {
621  wkbXDR = 0,
622  wkbNDR = 1
624 
625 #ifndef DOXYGEN_SKIP
626 
627 #ifndef NO_HACK_FOR_IBM_DB2_V72
628 #define HACK_FOR_IBM_DB2_V72
629 #endif
630 
631 #ifdef HACK_FOR_IBM_DB2_V72
632 #define DB2_V72_FIX_BYTE_ORDER(x) ((((x)&0x31) == (x)) ? ((x)&0x1) : (x))
633 #define DB2_V72_UNFIX_BYTE_ORDER(x) \
634  CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER \
635  ? ((x) | 0x30) \
636  : (x))
637 #else
638 #define DB2_V72_FIX_BYTE_ORDER(x) (x)
639 #define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
640 #endif
641 
642 #endif /* #ifndef DOXYGEN_SKIP */
643 
647 #define ALTER_NAME_FLAG 0x1
648 
652 #define ALTER_TYPE_FLAG 0x2
653 
657 #define ALTER_WIDTH_PRECISION_FLAG 0x4
658 
663 #define ALTER_NULLABLE_FLAG 0x8
664 
669 #define ALTER_DEFAULT_FLAG 0x10
670 
675 #define ALTER_UNIQUE_FLAG 0x20
676 
681 #define ALTER_DOMAIN_FLAG 0x40
682 
687 #define ALTER_ALTERNATIVE_NAME_FLAG 0x80
688 
693 #define ALTER_COMMENT_FLAG 0x100
694 
698 #define ALTER_ALL_FLAG \
699  (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | \
700  ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | \
701  ALTER_DOMAIN_FLAG | ALTER_ALTERNATIVE_NAME_FLAG | ALTER_COMMENT_FLAG)
702 
707 #define ALTER_GEOM_FIELD_DEFN_NAME_FLAG 0x1000
708 
713 #define ALTER_GEOM_FIELD_DEFN_TYPE_FLAG 0x2000
714 
719 #define ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG 0x4000
720 
725 #define ALTER_GEOM_FIELD_DEFN_SRS_FLAG 0x8000
726 
731 #define ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG 0x10000
732 
737 #define ALTER_GEOM_FIELD_DEFN_ALL_FLAG \
738  (ALTER_GEOM_FIELD_DEFN_NAME_FLAG | ALTER_GEOM_FIELD_DEFN_TYPE_FLAG | \
739  ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_FLAG | \
740  ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG)
741 
746 #define OGR_F_VAL_NULL 0x00000001
747 
752 #define OGR_F_VAL_GEOM_TYPE 0x00000002
753 
758 #define OGR_F_VAL_WIDTH 0x00000004
759 
766 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
767 
774 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
775 
780 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
781 
782 /************************************************************************/
783 /* ogr_feature.h related definitions. */
784 /************************************************************************/
785 
792 typedef enum
808  OFTMaxType = 13
809 } OGRFieldType;
810 
820 typedef enum
821 { OFSTNone = 0,
833  OFSTJSON = 4,
837  OFSTUUID = 5,
838  OFSTMaxSubType = 5
840 
845 typedef enum
846 {
847  OJUndefined = 0,
848  OJLeft = 1,
849  OJRight = 2
851 
853 #define OGRNullFID -1
854 
855 /* Special value for an unknown field type. This should only be used
856  * while reading a file. At the end of file any unknown types should
857  * be set to OFTString.
858  */
860 #define OGRUnknownType static_cast<OGRFieldType>(-1)
868 #define OGRUnsetMarker -21121
869 
876 #define OGRNullMarker -21122
877 
882 #define OGR_TZFLAG_UNKNOWN 0
883 
885 #define OGR_TZFLAG_LOCALTIME 1
886 
891 #define OGR_TZFLAG_MIXED_TZ 2
892 
899 #define OGR_TZFLAG_UTC 100
900 
901 /************************************************************************/
902 /* OGRField */
903 /************************************************************************/
904 
909 typedef union
910 {
912  int Integer;
913  GIntBig Integer64;
914  double Real;
915  char *String;
916 
917  struct
918  {
919  int nCount;
920  int *paList;
921  } IntegerList;
922 
923  struct
924  {
925  int nCount;
926  GIntBig *paList;
927  } Integer64List;
928 
929  struct
930  {
931  int nCount;
932  double *paList;
933  } RealList;
934 
935  struct
936  {
937  int nCount;
938  char **paList;
939  } StringList;
940 
941  struct
942  {
943  int nCount;
944  GByte *paData;
945  } Binary;
946 
947  struct
948  {
949  int nMarker1;
950  int nMarker2;
951  int nMarker3;
952  } Set;
953 
954  struct
955  {
956  GInt16 Year;
957  GByte Month;
958  GByte Day;
959  GByte Hour;
960  GByte Minute;
961  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
962  100=GMT, 104=GMT+1, 80=GMT-5, etc */
963  GByte Reserved; /* must be set to 0 */
964  float Second; /* with millisecond accuracy. at the end of the structure,
965  so as to keep it 12 bytes on 32 bit */
966  } Date;
967 
969 } OGRField;
970 
971 #ifdef __cplusplus
973 inline int OGR_GET_MS(float fSec)
974 {
975  if (CPLIsNan(fSec))
976  return 0;
977  if (fSec >= 999)
978  return 999;
979  if (fSec <= 0)
980  return 0;
981  const float fValue = (fSec - static_cast<int>(fSec)) * 1000 + 0.5f;
982  return static_cast<int>(fValue);
983 }
984 #endif // __cplusplus
985 
987 #define OGRPARSEDATE_OPTION_LAX 1
988 
989 int CPL_DLL OGRParseDate(const char *pszInput, OGRField *psOutput,
990  int nOptions);
991 
992 /* -------------------------------------------------------------------- */
993 /* Constants from ogrsf_frmts.h for capabilities. */
994 /* -------------------------------------------------------------------- */
995 #define OLCRandomRead "RandomRead"
996 #define OLCSequentialWrite \
997  "SequentialWrite"
998 #define OLCRandomWrite "RandomWrite"
999 #define OLCFastSpatialFilter \
1000  "FastSpatialFilter"
1001 #define OLCFastFeatureCount \
1002  "FastFeatureCount"
1004 #define OLCFastGetExtent \
1005  "FastGetExtent"
1006 #define OLCFastGetExtent3D \
1007  "FastGetExtent3D"
1008 #define OLCCreateField \
1009  "CreateField"
1011 #define OLCDeleteField \
1012  "DeleteField"
1014 #define OLCReorderFields \
1015  "ReorderFields"
1016 #define OLCAlterFieldDefn \
1017  "AlterFieldDefn"
1018 #define OLCAlterGeomFieldDefn \
1019  "AlterGeomFieldDefn"
1021 #define OLCTransactions \
1022  "Transactions"
1024 #define OLCDeleteFeature \
1025  "DeleteFeature"
1026 #define OLCUpsertFeature \
1027  "UpsertFeature"
1028 #define OLCUpdateFeature \
1029  "UpdateFeature"
1031 #define OLCFastSetNextByIndex \
1032  "FastSetNextByIndex"
1034 #define OLCStringsAsUTF8 \
1035  "StringsAsUTF8"
1037 #define OLCIgnoreFields \
1038  "IgnoreFields"
1039 #define OLCCreateGeomField \
1040  "CreateGeomField"
1041 #define OLCCurveGeometries \
1042  "CurveGeometries"
1043 #define OLCMeasuredGeometries \
1044  "MeasuredGeometries"
1046 #define OLCZGeometries \
1047  "ZGeometries"
1049 #define OLCRename \
1050  "Rename"
1051 #define OLCFastGetArrowStream \
1052  "FastGetArrowStream"
1054 #define OLCFastWriteArrowBatch \
1055  "FastWriteArrowBatch"
1058 #define ODsCCreateLayer \
1059  "CreateLayer"
1060 #define ODsCDeleteLayer \
1061  "DeleteLayer"
1062 /* Reserved: "RenameLayer" */
1063 #define ODsCCreateGeomFieldAfterCreateLayer \
1064  "CreateGeomFieldAfterCreateLayer"
1066 #define ODsCCurveGeometries \
1067  "CurveGeometries"
1068 #define ODsCTransactions \
1069  "Transactions"
1070 #define ODsCEmulatedTransactions \
1071  "EmulatedTransactions"
1073 #define ODsCMeasuredGeometries \
1074  "MeasuredGeometries"
1076 #define ODsCZGeometries \
1077  "ZGeometries"
1079 #define ODsCRandomLayerRead \
1080  "RandomLayerRead"
1082 /* Note the unfortunate trailing space at the end of the string */
1083 #define ODsCRandomLayerWrite \
1084  "RandomLayerWrite "
1086 #define ODsCAddFieldDomain \
1087  "AddFieldDomain"
1089 #define ODsCDeleteFieldDomain \
1090  "DeleteFieldDomain"
1092 #define ODsCUpdateFieldDomain \
1093  "UpdateFieldDomain"
1096 #define ODrCCreateDataSource \
1097  "CreateDataSource"
1098 #define ODrCDeleteDataSource \
1099  "DeleteDataSource"
1101 /* -------------------------------------------------------------------- */
1102 /* Layer metadata items. */
1103 /* -------------------------------------------------------------------- */
1108 #define OLMD_FID64 "OLMD_FID64"
1109 
1110 /************************************************************************/
1111 /* ogr_featurestyle.h related definitions. */
1112 /************************************************************************/
1113 
1119 {
1125  OGRSTCVector = 5
1127 
1132 {
1136  OGRSTUMM = 3,
1137  OGRSTUCM = 4,
1138  OGRSTUInches = 5
1140 
1145 {
1154 #ifndef DOXYGEN_SKIP
1155  OGRSTPenLast = 8
1156 #endif
1158 
1163 {
1172 #ifndef DOXYGEN_SKIP
1173  OGRSTBrushLast = 8
1174 #endif
1175 
1177 
1182 {
1195 #ifndef DOXYGEN_SKIP
1196  OGRSTSymbolLast = 12
1197 #endif
1199 
1204 {
1226 #ifndef DOXYGEN_SKIP
1227  OGRSTLabelLast = 21
1228 #endif
1230 
1231 /* -------------------------------------------------------------------- */
1232 /* Field domains */
1233 /* -------------------------------------------------------------------- */
1234 
1239 typedef struct
1240 {
1242  char *pszCode;
1243 
1245  char *pszValue;
1246 } OGRCodedValue;
1247 
1252 typedef enum
1253 {
1259  OFDT_GLOB
1261 
1269 typedef enum
1270 {
1279 
1287 typedef enum
1288 {
1296 
1297 /* ------------------------------------------------------------------- */
1298 /* Version checking */
1299 /* -------------------------------------------------------------------- */
1300 
1301 #ifndef DOXYGEN_SKIP
1302 
1303 /* Note to developers : please keep this section in sync with gdal.h */
1304 
1305 #ifndef GDAL_VERSION_INFO_DEFINED
1306 #define GDAL_VERSION_INFO_DEFINED
1307 const char CPL_DLL *CPL_STDCALL GDALVersionInfo(const char *);
1308 #endif
1309 
1310 #ifndef GDAL_CHECK_VERSION
1311 
1324 int CPL_DLL CPL_STDCALL GDALCheckVersion(int nVersionMajor, int nVersionMinor,
1325  const char *pszCallingComponentName);
1326 
1328 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
1329  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, \
1330  pszCallingComponentName)
1331 
1332 #endif
1333 
1334 #endif /* #ifndef DOXYGEN_SKIP */
1335 
1336 CPL_C_END
1337 
1338 #endif /* ndef OGR_CORE_H_INCLUDED */
Simple container for a bounding region in 3D.
Definition: ogr_core.h:216
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:274
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:262
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition: ogr_core.h:252
void Merge(double dfX, double dfY, double dfZ)
Update the current object by computing its union with the provided point.
Definition: ogr_core.h:284
OGREnvelope3D & operator=(const OGREnvelope3D &)=default
Assignment operator.
int Intersects(OGREnvelope3D const &other) const
Return whether the current object intersects with the other rectangle.
Definition: ogr_core.h:327
double MaxZ
Maximum Z value.
Definition: ogr_core.h:244
bool Is3D() const
Returns TRUE if MinZ and MaxZ are both valid numbers.
Definition: ogr_core.h:235
double MinZ
Minimum Z value.
Definition: ogr_core.h:241
OGREnvelope3D()
Default constructor.
Definition: ogr_core.h:219
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition: ogr_core.h:335
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition: ogr_core.h:296
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition: ogr_core.h:226
Simple container for a bounding region (rectangle)
Definition: ogr_core.h:61
OGREnvelope & operator=(const OGREnvelope &)=default
Assignment operator.
int Contains(OGREnvelope const &other) const
Return whether the current object contains the other rectangle.
Definition: ogr_core.h:165
double MinY
Minimum Y value.
Definition: ogr_core.h:89
bool operator!=(const OGREnvelope &other) const
Return whether the current rectangle is not equal to the other rectangle.
Definition: ogr_core.h:189
double MaxX
Maximum X value.
Definition: ogr_core.h:86
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition: ogr_core.h:131
double MinX
Minimum X value.
Definition: ogr_core.h:83
OGREnvelope()
Default constructor.
Definition: ogr_core.h:64
double MaxY
Maximum Y value.
Definition: ogr_core.h:92
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition: ogr_core.h:100
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition: ogr_core.h:158
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition: ogr_core.h:121
bool operator==(const OGREnvelope &other) const
Return whether the current rectangle is equal to the other rectangle.
Definition: ogr_core.h:173
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition: ogr_core.h:73
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:111
Core portability definitions for CPL.
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:372
short GInt16
Int16 type.
Definition: cpl_port.h:181
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:299
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:295
#define CPLIsNan(x)
Return whether a floating-pointer number is NaN.
Definition: cpl_port.h:667
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:185
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:215
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:374
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:2649
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:2479
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2950
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:391
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:7495
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:7830
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:404
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:821
@ OFSTBoolean
Boolean integer.
Definition: ogr_core.h:824
@ OFSTInt16
Signed 16-bit integer.
Definition: ogr_core.h:826
@ OFSTUUID
UUID string representation.
Definition: ogr_core.h:837
@ OFSTJSON
JSON content.
Definition: ogr_core.h:833
@ OFSTNone
No subtype.
Definition: ogr_core.h:822
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition: ogr_core.h:829
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:1182
@ OGRSTSymbolDy
Dy.
Definition: ogr_core.h:1188
@ OGRSTSymbolId
Id.
Definition: ogr_core.h:1183
@ OGRSTSymbolSize
Size.
Definition: ogr_core.h:1186
@ OGRSTSymbolFontName
Font name.
Definition: ogr_core.h:1193
@ OGRSTSymbolColor
Color.
Definition: ogr_core.h:1185
@ OGRSTSymbolDx
Dx.
Definition: ogr_core.h:1187
@ OGRSTSymbolPerp
Perpendicular.
Definition: ogr_core.h:1190
@ OGRSTSymbolAngle
Angle.
Definition: ogr_core.h:1184
@ OGRSTSymbolOColor
Outline color.
Definition: ogr_core.h:1194
@ OGRSTSymbolPriority
Priority.
Definition: ogr_core.h:1192
@ OGRSTSymbolStep
Step.
Definition: ogr_core.h:1189
@ OGRSTSymbolOffset
Offset.
Definition: ogr_core.h:1191
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:1288
@ OFDMP_SUM
Sum.
Definition: ogr_core.h:1292
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition: ogr_core.h:1294
@ OFDMP_DEFAULT_VALUE
Default value.
Definition: ogr_core.h:1290
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:620
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition: ogr_core.h:621
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition: ogr_core.h:622
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:1077
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:392
OGRFieldDomainType
Type of field domain.
Definition: ogr_core.h:1253
@ OFDT_RANGE
Range (min/max)
Definition: ogr_core.h:1257
@ OFDT_CODED
Coded.
Definition: ogr_core.h:1255
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition: ogr_core.h:1259
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:7767
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:7809
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:7518
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:395
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:393
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:550
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:554
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:551
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:552
#define OGRERR_NONE
Success.
Definition: ogr_core.h:389
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2914
OGRJustification
Display justification for field values.
Definition: ogr_core.h:846
OGRFieldType
List of feature field types.
Definition: ogr_core.h:793
@ OFTTime
Time.
Definition: ogr_core.h:804
@ OFTInteger64List
List of 64bit integers.
Definition: ogr_core.h:807
@ OFTIntegerList
List of 32bit integers.
Definition: ogr_core.h:795
@ OFTDate
Date.
Definition: ogr_core.h:803
@ OFTWideStringList
deprecated
Definition: ogr_core.h:801
@ OFTInteger
Simple 32bit integer.
Definition: ogr_core.h:794
@ OFTString
String of ASCII chars.
Definition: ogr_core.h:798
@ OFTBinary
Raw Binary data.
Definition: ogr_core.h:802
@ OFTRealList
List of doubles.
Definition: ogr_core.h:797
@ OFTReal
Double Precision floating point.
Definition: ogr_core.h:796
@ OFTStringList
Array of strings.
Definition: ogr_core.h:799
@ OFTDateTime
Date and Time.
Definition: ogr_core.h:805
@ OFTInteger64
Single 64bit integer.
Definition: ogr_core.h:806
@ OFTWideString
deprecated
Definition: ogr_core.h:800
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:7717
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:416
@ wkbPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:515
@ wkbCurve
Curve (abstract type).
Definition: ogr_core.h:443
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition: ogr_core.h:420
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:432
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:506
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:422
@ wkbTriangle
a Triangle.
Definition: ogr_core.h:452
@ wkbPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:513
@ wkbSurfaceZ
wkbSurface with Z component.
Definition: ogr_core.h:469
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:486
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:495
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:518
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:489
@ wkbTINZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:508
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:496
@ wkbPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:475
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:426
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:483
@ wkbUnknown
unknown type, non-standard
Definition: ogr_core.h:417
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:504
@ wkbTINZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:472
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:482
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:477
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:485
@ wkbLinearRing
non-standard, just for createGeometry()
Definition: ogr_core.h:455
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:476
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:450
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition: ogr_core.h:519
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:488
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:484
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition: ogr_core.h:447
@ wkbSurface
Surface (abstract type).
Definition: ogr_core.h:445
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition: ogr_core.h:463
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition: ogr_core.h:457
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:419
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:434
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:471
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition: ogr_core.h:429
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:428
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:425
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:479
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:503
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:516
@ wkbNone
non-standard, for pure attribute records
Definition: ogr_core.h:454
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:478
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:500
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition: ogr_core.h:461
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:501
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:473
@ wkbPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:493
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition: ogr_core.h:436
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:494
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:441
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:480
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:505
@ wkbLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:514
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:497
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:507
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:499
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:509
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition: ogr_core.h:481
@ wkbCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:487
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:517
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition: ogr_core.h:491
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:498
@ wkbTINM
ISO SQL/MM Part 3.
Definition: ogr_core.h:490
@ wkbCurveZ
wkbCurve with Z component.
Definition: ogr_core.h:467
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:502
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:439
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition: ogr_core.h:459
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition: ogr_core.h:465
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:7569
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:394
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:1204
@ OGRSTLabelUnderline
Underline.
Definition: ogr_core.h:1218
@ OGRSTLabelPriority
Priority.
Definition: ogr_core.h:1219
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition: ogr_core.h:1223
@ OGRSTLabelBold
Bold.
Definition: ogr_core.h:1216
@ OGRSTLabelStrikeout
Strike out.
Definition: ogr_core.h:1220
@ OGRSTLabelBColor
Background color.
Definition: ogr_core.h:1210
@ OGRSTLabelPlacement
Placement.
Definition: ogr_core.h:1211
@ OGRSTLabelPerp
Perpendicular.
Definition: ogr_core.h:1215
@ OGRSTLabelOColor
Outline color.
Definition: ogr_core.h:1225
@ OGRSTLabelDx
Dx.
Definition: ogr_core.h:1213
@ OGRSTLabelHColor
Highlight color.
Definition: ogr_core.h:1224
@ OGRSTLabelItalic
Italic.
Definition: ogr_core.h:1217
@ OGRSTLabelTextString
Text string.
Definition: ogr_core.h:1207
@ OGRSTLabelSize
Size.
Definition: ogr_core.h:1206
@ OGRSTLabelAngle
Angle.
Definition: ogr_core.h:1208
@ OGRSTLabelFColor
Foreground color.
Definition: ogr_core.h:1209
@ OGRSTLabelDy
Dy.
Definition: ogr_core.h:1214
@ OGRSTLabelFontName
Font name.
Definition: ogr_core.h:1205
@ OGRSTLabelStretch
Stretch.
Definition: ogr_core.h:1221
@ OGRSTLabelAnchor
Anchor.
Definition: ogr_core.h:1212
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition: ogr_core.h:1222
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:1132
@ OGRSTUGround
Ground unit.
Definition: ogr_core.h:1133
@ OGRSTUMM
Millimeter.
Definition: ogr_core.h:1136
@ OGRSTUInches
Inch.
Definition: ogr_core.h:1138
@ OGRSTUCM
Centimeter.
Definition: ogr_core.h:1137
@ OGRSTUPoints
Points.
Definition: ogr_core.h:1135
@ OGRSTUPixel
Pixel.
Definition: ogr_core.h:1134
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:7596
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:398
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:397
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:390
int OGRErr
Type for a OGR error.
Definition: ogr_core.h:387
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition: ogr_core.h:973
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:1163
@ OGRSTBrushAngle
Angle.
Definition: ogr_core.h:1167
@ OGRSTBrushId
Id.
Definition: ogr_core.h:1166
@ OGRSTBrushPriority
Priority.
Definition: ogr_core.h:1171
@ OGRSTBrushBColor
Background color.
Definition: ogr_core.h:1165
@ OGRSTBrushSize
Size.
Definition: ogr_core.h:1168
@ OGRSTBrushDy
Dy.
Definition: ogr_core.h:1170
@ OGRSTBrushFColor
Foreground color.
Definition: ogr_core.h:1164
@ OGRSTBrushDx
Dx.
Definition: ogr_core.h:1169
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:7660
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:7542
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:1119
@ OGRSTCBrush
Brush.
Definition: ogr_core.h:1122
@ OGRSTCVector
Vector.
Definition: ogr_core.h:1125
@ OGRSTCNone
None.
Definition: ogr_core.h:1120
@ OGRSTCLabel
Label.
Definition: ogr_core.h:1124
@ OGRSTCPen
Pen.
Definition: ogr_core.h:1121
@ OGRSTCSymbol
Symbol.
Definition: ogr_core.h:1123
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:7446
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:1145
@ OGRSTPenId
Id.
Definition: ogr_core.h:1149
@ OGRSTPenCap
Cap.
Definition: ogr_core.h:1151
@ OGRSTPenPerOffset
Perpendicular offset.
Definition: ogr_core.h:1150
@ OGRSTPenWidth
Width.
Definition: ogr_core.h:1147
@ OGRSTPenColor
Color.
Definition: ogr_core.h:1146
@ OGRSTPenJoin
Join.
Definition: ogr_core.h:1152
@ OGRSTPenPriority
Priority.
Definition: ogr_core.h:1153
@ OGRSTPenPattern
Pattern.
Definition: ogr_core.h:1148
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2692
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:7852
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:396
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:7471
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition: ogr_core.h:1270
@ OFDSP_DEFAULT_VALUE
Default value.
Definition: ogr_core.h:1272
@ OFDSP_DUPLICATE
Duplicate.
Definition: ogr_core.h:1274
@ 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:1277
Associates a code and a value.
Definition: ogr_core.h:1240
char * pszValue
Value.
Definition: ogr_core.h:1245
char * pszCode
Code.
Definition: ogr_core.h:1242
OGRFeature field attribute value union.
Definition: ogr_core.h:910