GDAL
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 55ca8f892338313a2760ae4d0c47f0bf4cdcf056 2022-01-18 18:02:50 +0100 Even Rouault $
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_RELEASE_DATE_AND_GDAL_RELEASE_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 <limits>
52 #endif
53 
57 class CPL_DLL OGREnvelope
58 {
59  public:
61  OGREnvelope() : MinX(std::numeric_limits<double>::infinity()),
62  MaxX(-std::numeric_limits<double>::infinity()),
63  MinY(std::numeric_limits<double>::infinity()),
64  MaxY(-std::numeric_limits<double>::infinity())
65  {
66  }
67 
69  OGREnvelope(const OGREnvelope& oOther) :
70  MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
71  {
72  }
73 
75  OGREnvelope& operator=(const OGREnvelope&) = default;
76 
78  double MinX;
79 
81  double MaxX;
82 
84  double MinY;
85 
87  double MaxY;
88 
89 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
90 #pragma GCC diagnostic push
91 #pragma GCC diagnostic ignored "-Wfloat-equal"
92 #endif
94  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
95 
96 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
97 #pragma GCC diagnostic pop
98 #endif
99 
101  void Merge( OGREnvelope const& sOther ) {
102  MinX = MIN(MinX,sOther.MinX);
103  MaxX = MAX(MaxX,sOther.MaxX);
104  MinY = MIN(MinY,sOther.MinY);
105  MaxY = MAX(MaxY,sOther.MaxY);
106  }
107 
109  void Merge( double dfX, double dfY ) {
110  MinX = MIN(MinX,dfX);
111  MaxX = MAX(MaxX,dfX);
112  MinY = MIN(MinY,dfY);
113  MaxY = MAX(MaxY,dfY);
114  }
115 
117  void Intersect( OGREnvelope const& sOther ) {
118  if(Intersects(sOther))
119  {
120  if( IsInit() )
121  {
122  MinX = MAX(MinX,sOther.MinX);
123  MaxX = MIN(MaxX,sOther.MaxX);
124  MinY = MAX(MinY,sOther.MinY);
125  MaxY = MIN(MaxY,sOther.MaxY);
126  }
127  else
128  {
129  MinX = sOther.MinX;
130  MaxX = sOther.MaxX;
131  MinY = sOther.MinY;
132  MaxY = sOther.MaxY;
133  }
134  }
135  else
136  {
137  *this = OGREnvelope();
138  }
139  }
140 
142  int Intersects(OGREnvelope const& other) const
143  {
144  return MinX <= other.MaxX && MaxX >= other.MinX &&
145  MinY <= other.MaxY && MaxY >= other.MinY;
146  }
147 
149  int Contains(OGREnvelope const& other) const
150  {
151  return MinX <= other.MinX && MinY <= other.MinY &&
152  MaxX >= other.MaxX && MaxY >= other.MaxY;
153  }
154 
156  bool operator== (const OGREnvelope& other) const
157  {
158  return MinX == other.MinX &&
159  MinY == other.MinY &&
160  MaxX == other.MaxX &&
161  MaxY == other.MaxY;
162  }
163 
165  bool operator!= (const OGREnvelope& other) const
166  {
167  return !(*this == other);
168  }
169 };
170 
171 } // extern "C++"
172 
173 #else
174 typedef struct
175 {
176  double MinX;
177  double MaxX;
178  double MinY;
179  double MaxY;
180 } OGREnvelope;
181 #endif
182 
183 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
184 
185 extern "C++" {
186 
190 class CPL_DLL OGREnvelope3D : public OGREnvelope
191 {
192  public:
195  MinZ(std::numeric_limits<double>::infinity()),
196  MaxZ(-std::numeric_limits<double>::infinity())
197  {
198  }
199 
201  OGREnvelope3D(const OGREnvelope3D& oOther) :
202  OGREnvelope(oOther),
203  MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
204  {
205  }
206 
209 
211  double MinZ;
212 
214  double MaxZ;
215 
216 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
217 #pragma GCC diagnostic push
218 #pragma GCC diagnostic ignored "-Wfloat-equal"
219 #endif
221  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
222 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
223 #pragma GCC diagnostic pop
224 #endif
225 
227  void Merge( OGREnvelope3D const& sOther ) {
228  MinX = MIN(MinX,sOther.MinX);
229  MaxX = MAX(MaxX,sOther.MaxX);
230  MinY = MIN(MinY,sOther.MinY);
231  MaxY = MAX(MaxY,sOther.MaxY);
232  MinZ = MIN(MinZ,sOther.MinZ);
233  MaxZ = MAX(MaxZ,sOther.MaxZ);
234  }
235 
237  void Merge( double dfX, double dfY, double dfZ ) {
238  MinX = MIN(MinX,dfX);
239  MaxX = MAX(MaxX,dfX);
240  MinY = MIN(MinY,dfY);
241  MaxY = MAX(MaxY,dfY);
242  MinZ = MIN(MinZ,dfZ);
243  MaxZ = MAX(MaxZ,dfZ);
244  }
245 
247  void Intersect( OGREnvelope3D const& sOther ) {
248  if(Intersects(sOther))
249  {
250  if( IsInit() )
251  {
252  MinX = MAX(MinX,sOther.MinX);
253  MaxX = MIN(MaxX,sOther.MaxX);
254  MinY = MAX(MinY,sOther.MinY);
255  MaxY = MIN(MaxY,sOther.MaxY);
256  MinZ = MAX(MinZ,sOther.MinZ);
257  MaxZ = MIN(MaxZ,sOther.MaxZ);
258  }
259  else
260  {
261  MinX = sOther.MinX;
262  MaxX = sOther.MaxX;
263  MinY = sOther.MinY;
264  MaxY = sOther.MaxY;
265  MinZ = sOther.MinZ;
266  MaxZ = sOther.MaxZ;
267  }
268  }
269  else
270  {
271  *this = OGREnvelope3D();
272  }
273  }
274 
276  int Intersects(OGREnvelope3D const& other) const
277  {
278  return MinX <= other.MaxX && MaxX >= other.MinX &&
279  MinY <= other.MaxY && MaxY >= other.MinY &&
280  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
281  }
282 
284  int Contains(OGREnvelope3D const& other) const
285  {
286  return MinX <= other.MinX && MinY <= other.MinY &&
287  MaxX >= other.MaxX && MaxY >= other.MaxY &&
288  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
289  }
290 };
291 
292 } // extern "C++"
293 
294 #else
295 typedef struct
296 {
297  double MinX;
298  double MaxX;
299  double MinY;
300  double MaxY;
301  double MinZ;
302  double MaxZ;
303 } OGREnvelope3D;
304 #endif
305 
307 
309 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
310 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
311 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
312 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
313 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
316 #ifdef STRICT_OGRERR_TYPE
318 typedef enum
319 {
320  OGRERR_NONE,
330 } OGRErr;
331 #else
333 typedef int OGRErr;
334 
335 #define OGRERR_NONE 0
336 #define OGRERR_NOT_ENOUGH_DATA 1
337 #define OGRERR_NOT_ENOUGH_MEMORY 2
338 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
339 #define OGRERR_UNSUPPORTED_OPERATION 4
340 #define OGRERR_CORRUPT_DATA 5
341 #define OGRERR_FAILURE 6
342 #define OGRERR_UNSUPPORTED_SRS 7
343 #define OGRERR_INVALID_HANDLE 8
344 #define OGRERR_NON_EXISTING_FEATURE 9
346 #endif
347 
349 typedef int OGRBoolean;
350 
351 /* -------------------------------------------------------------------- */
352 /* ogr_geometry.h related definitions. */
353 /* -------------------------------------------------------------------- */
354 
360 typedef enum
361 {
364  wkbPoint = 1,
365  wkbLineString = 2,
367  wkbPolygon = 3,
376  wkbCircularString = 8,
379  wkbCurvePolygon = 10,
384  wkbCurve = 13,
385  wkbSurface = 14,
388  wkbTIN = 16,
390  wkbTriangle = 17,
392  wkbNone = 100,
398  wkbMultiCurveZ = 1011,
400  wkbCurveZ = 1013,
401  wkbSurfaceZ = 1014,
403  wkbTINZ = 1016,
404  wkbTriangleZ = 1017,
406  wkbPointM = 2001,
407  wkbLineStringM = 2002,
408  wkbPolygonM = 2003,
409  wkbMultiPointM = 2004,
416  wkbMultiCurveM = 2011,
418  wkbCurveM = 2013,
419  wkbSurfaceM = 2014,
421  wkbTINM = 2016,
422  wkbTriangleM = 2017,
424  wkbPointZM = 3001,
426  wkbPolygonZM = 3003,
436  wkbCurveZM = 3013,
437  wkbSurfaceZM = 3014,
439  wkbTINZM = 3016,
440  wkbTriangleZM = 3017,
442 #if defined(DOXYGEN_SKIP)
443  // Sphinx doesn't like 0x8000000x constants
444  wkbPoint25D = -2147483647,
445  wkbLineString25D = -2147483646,
446  wkbPolygon25D = -2147483645,
447  wkbMultiPoint25D = -2147483644,
448  wkbMultiLineString25D = -2147483643,
449  wkbMultiPolygon25D = -2147483642,
450  wkbGeometryCollection25D = -2147483641
451 #else
452  wkbPoint25D = 0x80000001,
453  wkbLineString25D = 0x80000002,
454  wkbPolygon25D = 0x80000003,
455  wkbMultiPoint25D = 0x80000004,
456  wkbMultiLineString25D = 0x80000005,
457  wkbMultiPolygon25D = 0x80000006,
458  wkbGeometryCollection25D = 0x80000007
459 #endif
461 
476 typedef enum
477 {
482 
483 #ifndef GDAL_COMPILATION
485 #define wkb25DBit 0x80000000
486 #endif
487 
488 #ifndef __cplusplus
490 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
491 #else
493 #define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
494 #endif
495 
499 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
500 
504 #define wkbSetZ(x) OGR_GT_SetZ(x)
505 
509 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
510 
514 #define wkbSetM(x) OGR_GT_SetM(x)
515 
516 #ifndef DOXYGEN_SKIP
517 #define ogrZMarker 0x21125711
518 #endif
519 
520 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
522  OGRwkbGeometryType eExtra );
524  OGRwkbGeometryType eExtra,
525  int bAllowPromotingToCurves );
529 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
530 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
531 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
532 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
533  OGRwkbGeometryType eSuperType );
534 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
535 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
540 
542 typedef enum
543 {
544  wkbXDR = 0,
545  wkbNDR = 1
547 
548 #ifndef DOXYGEN_SKIP
549 
550 #ifndef NO_HACK_FOR_IBM_DB2_V72
551 # define HACK_FOR_IBM_DB2_V72
552 #endif
553 
554 #ifdef HACK_FOR_IBM_DB2_V72
555 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
556 # define DB2_V72_UNFIX_BYTE_ORDER(x) CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x))
557 #else
558 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
559 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
560 #endif
561 
562 #endif /* #ifndef DOXYGEN_SKIP */
563 
567 #define ALTER_NAME_FLAG 0x1
568 
572 #define ALTER_TYPE_FLAG 0x2
573 
577 #define ALTER_WIDTH_PRECISION_FLAG 0x4
578 
583 #define ALTER_NULLABLE_FLAG 0x8
584 
589 #define ALTER_DEFAULT_FLAG 0x10
590 
595 #define ALTER_UNIQUE_FLAG 0x20
596 
601 #define ALTER_DOMAIN_FLAG 0x40
602 
603 
607 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | ALTER_DOMAIN_FLAG)
608 
613 #define OGR_F_VAL_NULL 0x00000001
614 
619 #define OGR_F_VAL_GEOM_TYPE 0x00000002
620 
625 #define OGR_F_VAL_WIDTH 0x00000004
626 
634 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
635 
642 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
643 
648 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
649 
650 /************************************************************************/
651 /* ogr_feature.h related definitions. */
652 /************************************************************************/
653 
660 typedef enum
676  OFTMaxType = 13
677 } OGRFieldType;
678 
688 typedef enum
689 { OFSTNone = 0,
700  OFSTJSON = 4,
704  OFSTUUID = 5,
705  OFSTMaxSubType = 5
707 
712 typedef enum
713 {
714  OJUndefined = 0,
715  OJLeft = 1,
716  OJRight = 2
718 
720 #define OGRNullFID -1
721 
722 /* Special value for an unknown field type. This should only be used
723  * while reading a file. At the end of file any unknown types should
724  * be set to OFTString.
725 */
727 #define OGRUnknownType static_cast<OGRFieldType>(-1)
735 #define OGRUnsetMarker -21121
736 
743 #define OGRNullMarker -21122
744 
745 /************************************************************************/
746 /* OGRField */
747 /************************************************************************/
748 
753 typedef union {
755  int Integer;
756  GIntBig Integer64;
757  double Real;
758  char *String;
759 
760  struct {
761  int nCount;
762  int *paList;
763  } IntegerList;
764 
765  struct {
766  int nCount;
767  GIntBig *paList;
768  } Integer64List;
769 
770  struct {
771  int nCount;
772  double *paList;
773  } RealList;
774 
775  struct {
776  int nCount;
777  char **paList;
778  } StringList;
779 
780  struct {
781  int nCount;
782  GByte *paData;
783  } Binary;
784 
785  struct {
786  int nMarker1;
787  int nMarker2;
788  int nMarker3;
789  } Set;
790 
791  struct {
792  GInt16 Year;
793  GByte Month;
794  GByte Day;
795  GByte Hour;
796  GByte Minute;
797  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
798  100=GMT, 104=GMT+1, 80=GMT-5, etc */
799  GByte Reserved; /* must be set to 0 */
800  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
801  } Date;
803 } OGRField;
804 
805 #ifdef __cplusplus
807 inline int OGR_GET_MS(float fSec) {
808  if( CPLIsNan(fSec) ) return 0;
809  if( fSec >= 999 ) return 999;
810  if( fSec <= 0 ) return 0;
811  const float fValue = (fSec - static_cast<int>(fSec)) * 1000 + 0.5f;
812  return static_cast<int>(fValue);
813 }
814 #endif // __cplusplus
815 
816 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
817  int nOptions );
818 
819 /* -------------------------------------------------------------------- */
820 /* Constants from ogrsf_frmts.h for capabilities. */
821 /* -------------------------------------------------------------------- */
822 #define OLCRandomRead "RandomRead"
823 #define OLCSequentialWrite "SequentialWrite"
824 #define OLCRandomWrite "RandomWrite"
825 #define OLCFastSpatialFilter "FastSpatialFilter"
826 #define OLCFastFeatureCount "FastFeatureCount"
827 #define OLCFastGetExtent "FastGetExtent"
828 #define OLCCreateField "CreateField"
829 #define OLCDeleteField "DeleteField"
830 #define OLCReorderFields "ReorderFields"
831 #define OLCAlterFieldDefn "AlterFieldDefn"
832 #define OLCTransactions "Transactions"
833 #define OLCDeleteFeature "DeleteFeature"
834 #define OLCFastSetNextByIndex "FastSetNextByIndex"
835 #define OLCStringsAsUTF8 "StringsAsUTF8"
836 #define OLCIgnoreFields "IgnoreFields"
837 #define OLCCreateGeomField "CreateGeomField"
838 #define OLCCurveGeometries "CurveGeometries"
839 #define OLCMeasuredGeometries "MeasuredGeometries"
841 #define ODsCCreateLayer "CreateLayer"
842 #define ODsCDeleteLayer "DeleteLayer"
843 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
844 #define ODsCCurveGeometries "CurveGeometries"
845 #define ODsCTransactions "Transactions"
846 #define ODsCEmulatedTransactions "EmulatedTransactions"
847 #define ODsCMeasuredGeometries "MeasuredGeometries"
848 #define ODsCRandomLayerRead "RandomLayerRead"
849 /* Note the unfortunate trailing space at the end of the string */
850 #define ODsCRandomLayerWrite "RandomLayerWrite "
851 #define ODsCAddFieldDomain "AddFieldDomain"
853 #define ODrCCreateDataSource "CreateDataSource"
854 #define ODrCDeleteDataSource "DeleteDataSource"
856 /* -------------------------------------------------------------------- */
857 /* Layer metadata items. */
858 /* -------------------------------------------------------------------- */
863 #define OLMD_FID64 "OLMD_FID64"
864 
865 /************************************************************************/
866 /* ogr_featurestyle.h related definitions. */
867 /************************************************************************/
868 
874 {
876  OGRSTCPen = 1,
880  OGRSTCVector = 5
882 
887 {
891  OGRSTUMM = 3,
892  OGRSTUCM = 4,
893  OGRSTUInches = 5
895 
900 {
909 #ifndef DOXYGEN_SKIP
910  OGRSTPenLast = 8
911 #endif
913 
918 {
927 #ifndef DOXYGEN_SKIP
928  OGRSTBrushLast = 8
929 #endif
930 
932 
937 {
950 #ifndef DOXYGEN_SKIP
951  OGRSTSymbolLast = 12
952 #endif
954 
959 {
981 #ifndef DOXYGEN_SKIP
982  OGRSTLabelLast = 21
983 #endif
985 
986 /* -------------------------------------------------------------------- */
987 /* Field domains */
988 /* -------------------------------------------------------------------- */
989 
994 typedef struct
995 {
997  char* pszCode;
998 
1000  char* pszValue;
1001 } OGRCodedValue;
1002 
1007 typedef enum
1008 {
1014  OFDT_GLOB
1016 
1024 typedef enum
1025 {
1033 
1041 typedef enum
1042 {
1050 
1051 /* ------------------------------------------------------------------- */
1052 /* Version checking */
1053 /* -------------------------------------------------------------------- */
1054 
1055 #ifndef DOXYGEN_SKIP
1056 
1057 /* Note to developers : please keep this section in sync with gdal.h */
1058 
1059 #ifndef GDAL_VERSION_INFO_DEFINED
1060 #define GDAL_VERSION_INFO_DEFINED
1061 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
1062 #endif
1063 
1064 #ifndef GDAL_CHECK_VERSION
1065 
1077 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
1078  const char* pszCallingComponentName);
1079 
1081 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
1082  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
1083 
1084 #endif
1085 
1086 #endif /* #ifndef DOXYGEN_SKIP */
1087 
1088 CPL_C_END
1089 
1090 #endif /* ndef OGR_CORE_H_INCLUDED */
Simple container for a bounding region in 3D.
Definition: ogr_core.h:191
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:227
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition: ogr_core.h:221
void Merge(double dfX, double dfY, double dfZ)
Update the current object by computing its union with the provided point.
Definition: ogr_core.h:237
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:276
double MaxZ
Maximum Z value.
Definition: ogr_core.h:214
double MinZ
Minimum Z value.
Definition: ogr_core.h:211
OGREnvelope3D()
Default constructor.
Definition: ogr_core.h:194
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition: ogr_core.h:284
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition: ogr_core.h:247
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition: ogr_core.h:201
Simple container for a bounding region (rectangle)
Definition: ogr_core.h:58
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:149
double MinY
Minimum Y value.
Definition: ogr_core.h:84
double MaxX
Maximum X value.
Definition: ogr_core.h:81
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition: ogr_core.h:117
double MinX
Minimum X value.
Definition: ogr_core.h:78
OGREnvelope()
Default constructor.
Definition: ogr_core.h:61
double MaxY
Maximum Y value.
Definition: ogr_core.h:87
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition: ogr_core.h:94
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition: ogr_core.h:142
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition: ogr_core.h:109
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition: ogr_core.h:69
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:101
Core portability definitions for CPL.
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:404
short GInt16
Int16 type.
Definition: cpl_port.h:211
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:331
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:329
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:244
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:406
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:2311
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:2189
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2786
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:337
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6686
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:7017
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:349
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:689
@ OFSTBoolean
Boolean integer.
Definition: ogr_core.h:692
@ OFSTInt16
Signed 16-bit integer.
Definition: ogr_core.h:694
@ OFSTUUID
UUID string representation.
Definition: ogr_core.h:704
@ OFSTJSON
JSON content.
Definition: ogr_core.h:700
@ OFSTNone
No subtype.
Definition: ogr_core.h:690
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition: ogr_core.h:696
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:937
@ OGRSTSymbolDy
Dy.
Definition: ogr_core.h:943
@ OGRSTSymbolId
Id.
Definition: ogr_core.h:938
@ OGRSTSymbolSize
Size.
Definition: ogr_core.h:941
@ OGRSTSymbolFontName
Font name.
Definition: ogr_core.h:948
@ OGRSTSymbolColor
Color.
Definition: ogr_core.h:940
@ OGRSTSymbolDx
Dx.
Definition: ogr_core.h:942
@ OGRSTSymbolPerp
Perpendicular.
Definition: ogr_core.h:945
@ OGRSTSymbolAngle
Angle.
Definition: ogr_core.h:939
@ OGRSTSymbolOColor
Outline color.
Definition: ogr_core.h:949
@ OGRSTSymbolPriority
Priority.
Definition: ogr_core.h:947
@ OGRSTSymbolStep
Step.
Definition: ogr_core.h:944
@ OGRSTSymbolOffset
Offset.
Definition: ogr_core.h:946
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:1042
@ OFDMP_SUM
Sum.
Definition: ogr_core.h:1046
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition: ogr_core.h:1048
@ OFDMP_DEFAULT_VALUE
Default value.
Definition: ogr_core.h:1044
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:543
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition: ogr_core.h:544
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition: ogr_core.h:545
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:946
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:338
OGRFieldDomainType
Type of field domain.
Definition: ogr_core.h:1008
@ OFDT_RANGE
Range (min/max)
Definition: ogr_core.h:1012
@ OFDT_CODED
Coded.
Definition: ogr_core.h:1010
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition: ogr_core.h:1014
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:6954
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6996
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6708
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:341
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:339
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:477
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:480
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:478
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:479
#define OGRERR_NONE
Success.
Definition: ogr_core.h:335
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2749
OGRJustification
Display justification for field values.
Definition: ogr_core.h:713
OGRFieldType
List of feature field types.
Definition: ogr_core.h:661
@ OFTTime
Time.
Definition: ogr_core.h:672
@ OFTInteger64List
List of 64bit integers.
Definition: ogr_core.h:675
@ OFTIntegerList
List of 32bit integers.
Definition: ogr_core.h:663
@ OFTDate
Date.
Definition: ogr_core.h:671
@ OFTWideStringList
deprecated
Definition: ogr_core.h:669
@ OFTInteger
Simple 32bit integer.
Definition: ogr_core.h:662
@ OFTString
String of ASCII chars.
Definition: ogr_core.h:666
@ OFTBinary
Raw Binary data.
Definition: ogr_core.h:670
@ OFTRealList
List of doubles.
Definition: ogr_core.h:665
@ OFTReal
Double Precision floating point.
Definition: ogr_core.h:664
@ OFTStringList
Array of strings.
Definition: ogr_core.h:667
@ OFTDateTime
Date and Time.
Definition: ogr_core.h:673
@ OFTInteger64
Single 64bit integer.
Definition: ogr_core.h:674
@ OFTWideString
deprecated
Definition: ogr_core.h:668
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6905
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:361
@ wkbPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:446
@ wkbCurve
Curve (abstract type).
Definition: ogr_core.h:384
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition: ogr_core.h:365
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:376
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:437
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:367
@ wkbTriangle
a Triangle.
Definition: ogr_core.h:390
@ wkbPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:444
@ wkbSurfaceZ
wkbSurface with Z component.
Definition: ogr_core.h:401
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:417
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:426
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:449
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:420
@ wkbTINZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:439
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:427
@ wkbPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:406
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:371
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:414
@ wkbUnknown
unknown type, non-standard
Definition: ogr_core.h:362
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:435
@ wkbTINZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:403
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:413
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:408
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:416
@ wkbLinearRing
non-standard, just for createGeometry()
Definition: ogr_core.h:393
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:407
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:388
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition: ogr_core.h:450
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:419
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:415
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition: ogr_core.h:386
@ wkbSurface
Surface (abstract type).
Definition: ogr_core.h:385
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition: ogr_core.h:398
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition: ogr_core.h:395
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:364
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:378
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:402
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition: ogr_core.h:373
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:372
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:370
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:410
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:434
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:447
@ wkbNone
non-standard, for pure attribute records
Definition: ogr_core.h:392
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:409
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:431
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition: ogr_core.h:397
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:432
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:404
@ wkbPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:424
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition: ogr_core.h:379
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:425
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:383
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:411
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:436
@ wkbLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:445
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:428
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:438
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:430
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:440
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition: ogr_core.h:412
@ wkbCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:418
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:448
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition: ogr_core.h:422
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:429
@ wkbTINM
ISO SQL/MM Part 3.
Definition: ogr_core.h:421
@ wkbCurveZ
wkbCurve with Z component.
Definition: ogr_core.h:400
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:433
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:382
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition: ogr_core.h:396
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition: ogr_core.h:399
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:6758
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:340
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:959
@ OGRSTLabelUnderline
Underline.
Definition: ogr_core.h:973
@ OGRSTLabelPriority
Priority.
Definition: ogr_core.h:974
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition: ogr_core.h:978
@ OGRSTLabelBold
Bold.
Definition: ogr_core.h:971
@ OGRSTLabelStrikeout
Strike out.
Definition: ogr_core.h:975
@ OGRSTLabelBColor
Background color.
Definition: ogr_core.h:965
@ OGRSTLabelPlacement
Placement.
Definition: ogr_core.h:966
@ OGRSTLabelPerp
Perpendicular.
Definition: ogr_core.h:970
@ OGRSTLabelOColor
Outline color.
Definition: ogr_core.h:980
@ OGRSTLabelDx
Dx.
Definition: ogr_core.h:968
@ OGRSTLabelHColor
Highlight color.
Definition: ogr_core.h:979
@ OGRSTLabelItalic
Italic.
Definition: ogr_core.h:972
@ OGRSTLabelTextString
Text string.
Definition: ogr_core.h:962
@ OGRSTLabelSize
Size.
Definition: ogr_core.h:961
@ OGRSTLabelAngle
Angle.
Definition: ogr_core.h:963
@ OGRSTLabelFColor
Foreground color.
Definition: ogr_core.h:964
@ OGRSTLabelDy
Dy.
Definition: ogr_core.h:969
@ OGRSTLabelFontName
Font name.
Definition: ogr_core.h:960
@ OGRSTLabelStretch
Stretch.
Definition: ogr_core.h:976
@ OGRSTLabelAnchor
Anchor.
Definition: ogr_core.h:967
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition: ogr_core.h:977
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:887
@ OGRSTUGround
Ground unit.
Definition: ogr_core.h:888
@ OGRSTUMM
Millimeter.
Definition: ogr_core.h:891
@ OGRSTUInches
Inch.
Definition: ogr_core.h:893
@ OGRSTUCM
Centimeter.
Definition: ogr_core.h:892
@ OGRSTUPoints
Points.
Definition: ogr_core.h:890
@ OGRSTUPixel
Pixel.
Definition: ogr_core.h:889
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6785
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:344
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:343
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:336
int OGRErr
Type for a OGR error.
Definition: ogr_core.h:333
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition: ogr_core.h:807
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:918
@ OGRSTBrushAngle
Angle.
Definition: ogr_core.h:922
@ OGRSTBrushId
Id.
Definition: ogr_core.h:921
@ OGRSTBrushPriority
Priority.
Definition: ogr_core.h:926
@ OGRSTBrushBColor
Background color.
Definition: ogr_core.h:920
@ OGRSTBrushSize
Size.
Definition: ogr_core.h:923
@ OGRSTBrushDy
Dy.
Definition: ogr_core.h:925
@ OGRSTBrushFColor
Foreground color.
Definition: ogr_core.h:919
@ OGRSTBrushDx
Dx.
Definition: ogr_core.h:924
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6849
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6731
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:874
@ OGRSTCBrush
Brush.
Definition: ogr_core.h:877
@ OGRSTCVector
Vector.
Definition: ogr_core.h:880
@ OGRSTCNone
None.
Definition: ogr_core.h:875
@ OGRSTCLabel
Label.
Definition: ogr_core.h:879
@ OGRSTCPen
Pen.
Definition: ogr_core.h:876
@ OGRSTCSymbol
Symbol.
Definition: ogr_core.h:878
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6637
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:900
@ OGRSTPenId
Id.
Definition: ogr_core.h:904
@ OGRSTPenCap
Cap.
Definition: ogr_core.h:906
@ OGRSTPenPerOffset
Perpendicular offset.
Definition: ogr_core.h:905
@ OGRSTPenWidth
Width.
Definition: ogr_core.h:902
@ OGRSTPenColor
Color.
Definition: ogr_core.h:901
@ OGRSTPenJoin
Join.
Definition: ogr_core.h:907
@ OGRSTPenPriority
Priority.
Definition: ogr_core.h:908
@ OGRSTPenPattern
Pattern.
Definition: ogr_core.h:903
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2526
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:7039
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:342
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6662
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition: ogr_core.h:1025
@ OFDSP_DEFAULT_VALUE
Default value.
Definition: ogr_core.h:1027
@ OFDSP_DUPLICATE
Duplicate.
Definition: ogr_core.h:1029
@ 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:1031
Associates a code and a value.
Definition: ogr_core.h:995
char * pszValue
Value.
Definition: ogr_core.h:1000
char * pszCode
Code.
Definition: ogr_core.h:997
OGRFeature field attribute value union.
Definition: ogr_core.h:753