GDAL
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 38603 2017-05-22 14:47:51Z 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 mines-paris dot org>
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 #include "gdal_version.h"
36 
48 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP)
49 
50 extern "C++"
51 {
52 #include <limits>
53 
54 // cppcheck-suppress copyCtorAndEqOperator
55 class CPL_DLL OGREnvelope
56 {
57  public:
58  OGREnvelope() : MinX(std::numeric_limits<double>::infinity()),
59  MaxX(-std::numeric_limits<double>::infinity()),
60  MinY(std::numeric_limits<double>::infinity()),
61  MaxY(-std::numeric_limits<double>::infinity())
62  {
63  }
64 
65  OGREnvelope(const OGREnvelope& oOther) :
66  MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
67  {
68  }
69 
70  double MinX;
71  double MaxX;
72  double MinY;
73  double MaxY;
74 
75 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
76 #pragma GCC diagnostic push
77 #pragma GCC diagnostic ignored "-Wfloat-equal"
78 #endif
79  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
80 
81 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
82 #pragma GCC diagnostic pop
83 #endif
84 
85  void Merge( OGREnvelope const& sOther ) {
86  MinX = MIN(MinX,sOther.MinX);
87  MaxX = MAX(MaxX,sOther.MaxX);
88  MinY = MIN(MinY,sOther.MinY);
89  MaxY = MAX(MaxY,sOther.MaxY);
90  }
91 
92  void Merge( double dfX, double dfY ) {
93  MinX = MIN(MinX,dfX);
94  MaxX = MAX(MaxX,dfX);
95  MinY = MIN(MinY,dfY);
96  MaxY = MAX(MaxY,dfY);
97  }
98 
99  void Intersect( OGREnvelope const& sOther ) {
100  if(Intersects(sOther))
101  {
102  if( IsInit() )
103  {
104  MinX = MAX(MinX,sOther.MinX);
105  MaxX = MIN(MaxX,sOther.MaxX);
106  MinY = MAX(MinY,sOther.MinY);
107  MaxY = MIN(MaxY,sOther.MaxY);
108  }
109  else
110  {
111  MinX = sOther.MinX;
112  MaxX = sOther.MaxX;
113  MinY = sOther.MinY;
114  MaxY = sOther.MaxY;
115  }
116  }
117  else
118  {
119  *this = OGREnvelope();
120  }
121  }
122 
123  int Intersects(OGREnvelope const& other) const
124  {
125  return MinX <= other.MaxX && MaxX >= other.MinX &&
126  MinY <= other.MaxY && MaxY >= other.MinY;
127  }
128 
129  int Contains(OGREnvelope const& other) const
130  {
131  return MinX <= other.MinX && MinY <= other.MinY &&
132  MaxX >= other.MaxX && MaxY >= other.MaxY;
133  }
134 };
135 
136 } // extern "C++"
137 
138 #else
139 typedef struct
140 {
141  double MinX;
142  double MaxX;
143  double MinY;
144  double MaxY;
145 } OGREnvelope;
146 #endif
147 
152 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP)
153 
154 extern "C++" {
155 
156 // cppcheck-suppress copyCtorAndEqOperator
157 class CPL_DLL OGREnvelope3D : public OGREnvelope
158 {
159  public:
160  OGREnvelope3D() : OGREnvelope(),
161  MinZ(std::numeric_limits<double>::infinity()),
162  MaxZ(-std::numeric_limits<double>::infinity())
163  {
164  }
165 
166  OGREnvelope3D(const OGREnvelope3D& oOther) :
167  OGREnvelope(oOther),
168  MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
169  {
170  }
171 
172  double MinZ;
173  double MaxZ;
174 
175 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
176 #pragma GCC diagnostic push
177 #pragma GCC diagnostic ignored "-Wfloat-equal"
178 #endif
179  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
180 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
181 #pragma GCC diagnostic pop
182 #endif
183 
184  void Merge( OGREnvelope3D const& sOther ) {
185  MinX = MIN(MinX,sOther.MinX);
186  MaxX = MAX(MaxX,sOther.MaxX);
187  MinY = MIN(MinY,sOther.MinY);
188  MaxY = MAX(MaxY,sOther.MaxY);
189  MinZ = MIN(MinZ,sOther.MinZ);
190  MaxZ = MAX(MaxZ,sOther.MaxZ);
191  }
192 
193  void Merge( double dfX, double dfY, double dfZ ) {
194  MinX = MIN(MinX,dfX);
195  MaxX = MAX(MaxX,dfX);
196  MinY = MIN(MinY,dfY);
197  MaxY = MAX(MaxY,dfY);
198  MinZ = MIN(MinZ,dfZ);
199  MaxZ = MAX(MaxZ,dfZ);
200  }
201 
202  void Intersect( OGREnvelope3D const& sOther ) {
203  if(Intersects(sOther))
204  {
205  if( IsInit() )
206  {
207  MinX = MAX(MinX,sOther.MinX);
208  MaxX = MIN(MaxX,sOther.MaxX);
209  MinY = MAX(MinY,sOther.MinY);
210  MaxY = MIN(MaxY,sOther.MaxY);
211  MinZ = MAX(MinZ,sOther.MinZ);
212  MaxZ = MIN(MaxZ,sOther.MaxZ);
213  }
214  else
215  {
216  MinX = sOther.MinX;
217  MaxX = sOther.MaxX;
218  MinY = sOther.MinY;
219  MaxY = sOther.MaxY;
220  MinZ = sOther.MinZ;
221  MaxZ = sOther.MaxZ;
222  }
223  }
224  else
225  {
226  *this = OGREnvelope3D();
227  }
228  }
229 
230  int Intersects(OGREnvelope3D const& other) const
231  {
232  return MinX <= other.MaxX && MaxX >= other.MinX &&
233  MinY <= other.MaxY && MaxY >= other.MinY &&
234  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
235  }
236 
237  int Contains(OGREnvelope3D const& other) const
238  {
239  return MinX <= other.MinX && MinY <= other.MinY &&
240  MaxX >= other.MaxX && MaxY >= other.MaxY &&
241  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
242  }
243 };
244 
245 } // extern "C++"
246 
247 #else
248 typedef struct
249 {
250  double MinX;
251  double MaxX;
252  double MinY;
253  double MaxY;
254  double MinZ;
255  double MaxZ;
256 } OGREnvelope3D;
257 #endif
258 
261 
263 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
264 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
265 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
266 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
267 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
270 #ifdef STRICT_OGRERR_TYPE
271 
272 typedef enum
273 {
274  OGRERR_NONE,
284 } OGRErr;
285 #else
286 
287 typedef int OGRErr;
288 
289 #define OGRERR_NONE 0
290 #define OGRERR_NOT_ENOUGH_DATA 1
291 #define OGRERR_NOT_ENOUGH_MEMORY 2
292 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
293 #define OGRERR_UNSUPPORTED_OPERATION 4
294 #define OGRERR_CORRUPT_DATA 5
295 #define OGRERR_FAILURE 6
296 #define OGRERR_UNSUPPORTED_SRS 7
297 #define OGRERR_INVALID_HANDLE 8
298 #define OGRERR_NON_EXISTING_FEATURE 9
300 #endif
301 
303 typedef int OGRBoolean;
304 
305 /* -------------------------------------------------------------------- */
306 /* ogr_geometry.h related definitions. */
307 /* -------------------------------------------------------------------- */
308 
314 typedef enum
315 {
318  wkbPoint = 1,
338  wkbCurve = 13,
339  wkbSurface = 14,
342  wkbTIN = 16,
344  wkbTriangle = 17,
346  wkbNone = 100,
352  wkbMultiCurveZ = 1011,
354  wkbCurveZ = 1013,
355  wkbSurfaceZ = 1014,
357  wkbTINZ = 1016,
358  wkbTriangleZ = 1017,
360  wkbPointM = 2001,
361  wkbLineStringM = 2002,
362  wkbPolygonM = 2003,
363  wkbMultiPointM = 2004,
370  wkbMultiCurveM = 2011,
372  wkbCurveM = 2013,
373  wkbSurfaceM = 2014,
375  wkbTINM = 2016,
376  wkbTriangleM = 2017,
378  wkbPointZM = 3001,
380  wkbPolygonZM = 3003,
390  wkbCurveZM = 3013,
391  wkbSurfaceZM = 3014,
393  wkbTINZM = 3016,
394  wkbTriangleZM = 3017,
396  wkbPoint25D = 0x80000001,
397  wkbLineString25D = 0x80000002,
398  wkbPolygon25D = 0x80000003,
399  wkbMultiPoint25D = 0x80000004,
400  wkbMultiLineString25D = 0x80000005,
401  wkbMultiPolygon25D = 0x80000006,
405 
420 typedef enum
421 {
425 } OGRwkbVariant;
426 
427 #ifndef GDAL_COMPILATION
428 
429 #define wkb25DBit 0x80000000
430 #endif
431 
433 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
434 
438 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
439 
443 #define wkbSetZ(x) OGR_GT_SetZ(x)
444 
448 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
449 
453 #define wkbSetM(x) OGR_GT_SetM(x)
454 
455 #ifndef DOXYGEN_SKIP
456 #define ogrZMarker 0x21125711
457 #endif
458 
459 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
461  OGRwkbGeometryType eExtra );
463  OGRwkbGeometryType eExtra,
464  int bAllowPromotingToCurves );
468 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
469 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
470 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
471 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
472  OGRwkbGeometryType eSuperType );
473 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
474 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
479 
481 typedef enum
482 {
483  wkbXDR = 0,
484  wkbNDR = 1
486 
487 #ifndef DOXYGEN_SKIP
488 
489 #ifndef NO_HACK_FOR_IBM_DB2_V72
490 # define HACK_FOR_IBM_DB2_V72
491 #endif
492 
493 #ifdef HACK_FOR_IBM_DB2_V72
494 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
495 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x)))
496 #else
497 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
498 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
499 #endif
500 
501 #endif /* #ifndef DOXYGEN_SKIP */
502 
506 #define ALTER_NAME_FLAG 0x1
507 
511 #define ALTER_TYPE_FLAG 0x2
512 
516 #define ALTER_WIDTH_PRECISION_FLAG 0x4
517 
522 #define ALTER_NULLABLE_FLAG 0x8
523 
528 #define ALTER_DEFAULT_FLAG 0x10
529 
533 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG)
534 
539 #define OGR_F_VAL_NULL 0x00000001
540 
545 #define OGR_F_VAL_GEOM_TYPE 0x00000002
546 
551 #define OGR_F_VAL_WIDTH 0x00000004
552 
560 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
561 
568 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
569 
574 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
575 
576 /************************************************************************/
577 /* ogr_feature.h related definitions. */
578 /************************************************************************/
579 
586 typedef enum
602  OFTMaxType = 13
603 } OGRFieldType;
604 
614 typedef enum
615 { OFSTNone = 0,
623  OFSTMaxSubType = 3
625 
630 typedef enum
631 {
632  OJUndefined = 0,
633  OJLeft = 1,
634  OJRight = 2
636 
638 #define OGRNullFID -1
639 
645 #define OGRUnsetMarker -21121
646 
653 #define OGRNullMarker -21122
654 
655 /************************************************************************/
656 /* OGRField */
657 /************************************************************************/
658 
663 typedef union {
665  int Integer;
666  GIntBig Integer64;
667  double Real;
668  char *String;
669 
670  struct {
671  int nCount;
672  int *paList;
673  } IntegerList;
674 
675  struct {
676  int nCount;
677  GIntBig *paList;
678  } Integer64List;
679 
680  struct {
681  int nCount;
682  double *paList;
683  } RealList;
684 
685  struct {
686  int nCount;
687  char **paList;
688  } StringList;
689 
690  struct {
691  int nCount;
692  GByte *paData;
693  } Binary;
694 
695  struct {
696  int nMarker1;
697  int nMarker2;
698  int nMarker3;
699  } Set;
700 
701  struct {
702  GInt16 Year;
703  GByte Month;
704  GByte Day;
705  GByte Hour;
706  GByte Minute;
707  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
708  100=GMT, 104=GMT+1, 80=GMT-5, etc */
709  GByte Reserved; /* must be set to 0 */
710  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
711  } Date;
713 } OGRField;
714 
716 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5)
717 
718 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
719  int nOptions );
720 
721 /* -------------------------------------------------------------------- */
722 /* Constants from ogrsf_frmts.h for capabilities. */
723 /* -------------------------------------------------------------------- */
724 #define OLCRandomRead "RandomRead"
725 #define OLCSequentialWrite "SequentialWrite"
726 #define OLCRandomWrite "RandomWrite"
727 #define OLCFastSpatialFilter "FastSpatialFilter"
728 #define OLCFastFeatureCount "FastFeatureCount"
729 #define OLCFastGetExtent "FastGetExtent"
730 #define OLCCreateField "CreateField"
731 #define OLCDeleteField "DeleteField"
732 #define OLCReorderFields "ReorderFields"
733 #define OLCAlterFieldDefn "AlterFieldDefn"
734 #define OLCTransactions "Transactions"
735 #define OLCDeleteFeature "DeleteFeature"
736 #define OLCFastSetNextByIndex "FastSetNextByIndex"
737 #define OLCStringsAsUTF8 "StringsAsUTF8"
738 #define OLCIgnoreFields "IgnoreFields"
739 #define OLCCreateGeomField "CreateGeomField"
740 #define OLCCurveGeometries "CurveGeometries"
741 #define OLCMeasuredGeometries "MeasuredGeometries"
743 #define ODsCCreateLayer "CreateLayer"
744 #define ODsCDeleteLayer "DeleteLayer"
745 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
746 #define ODsCCurveGeometries "CurveGeometries"
747 #define ODsCTransactions "Transactions"
748 #define ODsCEmulatedTransactions "EmulatedTransactions"
749 #define ODsCMeasuredGeometries "MeasuredGeometries"
750 #define ODsCRandomLayerRead "RandomLayerRead"
751 #define ODsCRandomLayerWrite "RandomLayerWrite "
753 #define ODrCCreateDataSource "CreateDataSource"
754 #define ODrCDeleteDataSource "DeleteDataSource"
756 /* -------------------------------------------------------------------- */
757 /* Layer metadata items. */
758 /* -------------------------------------------------------------------- */
763 #define OLMD_FID64 "OLMD_FID64"
764 
765 /************************************************************************/
766 /* ogr_featurestyle.h related definitions. */
767 /************************************************************************/
768 
774 {
776  OGRSTCPen = 1,
781 } OGRSTClassId;
782 
787 {
791  OGRSTUMM = 3,
792  OGRSTUCM = 4,
794 } OGRSTUnitId;
795 
800 {
809 #ifndef DOXYGEN_SKIP
810  OGRSTPenLast = 8
811 #endif
812 } OGRSTPenParam;
813 
818 {
827 #ifndef DOXYGEN_SKIP
828  OGRSTBrushLast = 8
829 #endif
830 
832 
837 {
850 #ifndef DOXYGEN_SKIP
851  OGRSTSymbolLast = 12
852 #endif
854 
859 {
881 #ifndef DOXYGEN_SKIP
882  OGRSTLabelLast = 21
883 #endif
885 
886 /* ------------------------------------------------------------------- */
887 /* Version checking */
888 /* -------------------------------------------------------------------- */
889 
890 #ifndef DOXYGEN_SKIP
891 
892 /* Note to developers : please keep this section in sync with gdal.h */
893 
894 #ifndef GDAL_VERSION_INFO_DEFINED
895 #define GDAL_VERSION_INFO_DEFINED
896 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
897 #endif
898 
899 #ifndef GDAL_CHECK_VERSION
900 
912 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
913  const char* pszCallingComponentName);
914 
916 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
917  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
918 
919 #endif
920 
921 #endif /* #ifndef DOXYGEN_SKIP */
922 
923 CPL_C_END
924 
925 #endif /* ndef OGR_CORE_H_INCLUDED */
ISO SQL/MM Part 3.
Definition: ogr_core.h:383
non-standard, for pure attribute records
Definition: ogr_core.h:346
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:423
Dy.
Definition: ogr_core.h:843
Outline color.
Definition: ogr_core.h:880
Id.
Definition: ogr_core.h:838
Dx.
Definition: ogr_core.h:824
void * CPLRealloc(void *, size_t) CPL_WARN_UNUSED_RESULT
Safe version of realloc().
Definition: cpl_conv.cpp:215
Font name.
Definition: ogr_core.h:860
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
Highlight color.
Definition: ogr_core.h:879
Foreground color.
Definition: ogr_core.h:819
ISO SQL/MM Part 3.
Definition: ogr_core.h:367
ISO SQL/MM Part 3.
Definition: ogr_core.h:370
ISO SQL/MM Part 3.
Definition: ogr_core.h:361
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:614
wkbCurve with Z component.
Definition: ogr_core.h:354
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:294
Color.
Definition: ogr_core.h:801
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:858
Background color.
Definition: ogr_core.h:820
ISO SQL/MM Part 3.
Definition: ogr_core.h:357
wkbMultiSurface with Z component.
Definition: ogr_core.h:353
Core portability definitions for CPL.
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:352
void * CPLMalloc(size_t) CPL_WARN_UNUSED_RESULT
Safe version of malloc().
Definition: cpl_conv.cpp:158
ISO SQL/MM Part 3.
Definition: ogr_core.h:369
ISO SQL/MM Part 3.
Definition: ogr_core.h:366
Anchor.
Definition: ogr_core.h:867
2.5D extension as per 99-402
Definition: ogr_core.h:401
No subtype.
Definition: ogr_core.h:616
Size.
Definition: ogr_core.h:841
List of 64bit integers.
Definition: ogr_core.h:601
Priority.
Definition: ogr_core.h:826
Offset.
Definition: ogr_core.h:846
2.5D extension as per 99-402
Definition: ogr_core.h:400
Angle.
Definition: ogr_core.h:863
Join.
Definition: ogr_core.h:807
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:321
Color.
Definition: ogr_core.h:840
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3...
Definition: ogr_core.h:340
wkbMultiCurve with Z component.
Definition: ogr_core.h:352
ISO SQL/MM Part 3.
Definition: ogr_core.h:363
Time.
Definition: ogr_core.h:598
Underline.
Definition: ogr_core.h:873
non-standard, just for createGeometry()
Definition: ogr_core.h:347
Date.
Definition: ogr_core.h:597
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:2213
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
ISO SQL/MM Part 3.
Definition: ogr_core.h:384
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6435
Vectical adjustment.
Definition: ogr_core.h:878
short GInt16
Int16 type.
Definition: cpl_port.h:203
Dy.
Definition: ogr_core.h:825
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:303
wkbCompoundCurve with Z component.
Definition: ogr_core.h:350
2.5D extension as per 99-402
Definition: ogr_core.h:397
#define OGRERR_NONE
Success.
Definition: ogr_core.h:289
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
Bold.
Definition: ogr_core.h:871
ISO SQL/MM Part 3.
Definition: ogr_core.h:374
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:799
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:207
Pen.
Definition: ogr_core.h:776
Ground unit.
Definition: ogr_core.h:788
Id.
Definition: ogr_core.h:821
Cap.
Definition: ogr_core.h:806
List of doubles.
Definition: ogr_core.h:591
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:836
ISO SQL/MM Part 3.
Definition: ogr_core.h:394
geometric object that is a collection of 1 or more geometric objects, standard WKB ...
Definition: ogr_core.h:327
1-dimensional geometric object with linear interpolation between Points, standard WKB ...
Definition: ogr_core.h:319
Perpendicular.
Definition: ogr_core.h:845
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:481
Double Precision floating point.
Definition: ogr_core.h:590
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6341
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:293
unknown type, non-standard
Definition: ogr_core.h:316
Perpendicular offset.
Definition: ogr_core.h:805
2.5D extension as per 99-402
Definition: ogr_core.h:402
ISO SQL/MM Part 3.
Definition: ogr_core.h:364
Dx.
Definition: ogr_core.h:868
Surface (abstract type).
Definition: ogr_core.h:339
char * CPLStrdup(const char *) CPL_WARN_UNUSED_RESULT CPL_RETURNS_NONNULL
Safe version of strdup() function.
Definition: cpl_conv.cpp:283
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:292
ISO SQL/MM Part 3.
Definition: ogr_core.h:387
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:6721
Angle.
Definition: ogr_core.h:822
ISO SQL/MM Part 3.
Definition: ogr_core.h:390
a Triangle.
Definition: ogr_core.h:344
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:2096
Size.
Definition: ogr_core.h:861
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:6462
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:324
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6412
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6390
MSB/Sun/Motoroloa: Most Significant Byte First.
Definition: ogr_core.h:483
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
Raw Binary data.
Definition: ogr_core.h:596
Outline color.
Definition: ogr_core.h:849
Single 64bit integer.
Definition: ogr_core.h:600
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:460
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6489
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:336
wkbSurface with Z component.
Definition: ogr_core.h:355
2.5D extension as per 99-402
Definition: ogr_core.h:399
Id.
Definition: ogr_core.h:804
enum ogr_style_tool_param_pen_id OGRSTPenParam
List of parameters for use with OGRStylePen.
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:314
ISO SQL/MM Part 3.
Definition: ogr_core.h:360
Points.
Definition: ogr_core.h:790
Step.
Definition: ogr_core.h:844
Priority.
Definition: ogr_core.h:847
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6743
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:291
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2652
ISO SQL/MM Part 3.
Definition: ogr_core.h:375
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition: ogr_core.h:298
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2689
ISO SQL/MM Part 3.
Definition: ogr_core.h:378
wkbCurvePolygon with Z component.
Definition: ogr_core.h:351
Signed 16-bit integer.
Definition: ogr_core.h:620
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:342
Size.
Definition: ogr_core.h:823
ISO SQL/MM Part 3.
Definition: ogr_core.h:386
Centimeter.
Definition: ogr_core.h:792
ISO SQL/MM Part 3.
Definition: ogr_core.h:373
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:297
ISO SQL/MM Part 3.
Definition: ogr_core.h:356
Boolean integer.
Definition: ogr_core.h:618
ISO SQL/MM Part 3.
Definition: ogr_core.h:365
2.5D extension as per 99-402
Definition: ogr_core.h:398
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:458
Label.
Definition: ogr_core.h:779
Pattern.
Definition: ogr_core.h:803
ISO SQL/MM Part 3.
Definition: ogr_core.h:389
Priority.
Definition: ogr_core.h:808
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:325
ISO SQL/MM Part 3.
Definition: ogr_core.h:380
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:332
Horizontal adjustment.
Definition: ogr_core.h:877
LSB/Intel/Vax: Least Significant Byte First.
Definition: ogr_core.h:484
OGRJustification
Display justification for field values.
Definition: ogr_core.h:630
Strike out.
Definition: ogr_core.h:875
#define CPLFree
Alias of VSIFree()
Definition: cpl_conv.h:81
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:786
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:424
deprecated
Definition: ogr_core.h:595
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:330
Stretch.
Definition: ogr_core.h:876
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:318
Single precision (32 bit) floating point.
Definition: ogr_core.h:622
Pixel.
Definition: ogr_core.h:789
Placement.
Definition: ogr_core.h:866
OGRFieldType
List of feature field types.
Definition: ogr_core.h:586
ISO SQL/MM Part 3.
Definition: ogr_core.h:371
ISO SQL/MM Part 3.
Definition: ogr_core.h:382
Date and Time.
Definition: ogr_core.h:599
Text string.
Definition: ogr_core.h:862
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:422
Foreground color.
Definition: ogr_core.h:864
ISO SQL/MM Part 3.
Definition: ogr_core.h:358
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6658
Dx.
Definition: ogr_core.h:842
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:420
Perpendicular.
Definition: ogr_core.h:870
wkbCircularString with Z component.
Definition: ogr_core.h:349
deprecated
Definition: ogr_core.h:594
Italic.
Definition: ogr_core.h:872
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:817
ISO SQL/MM Part 3.
Definition: ogr_core.h:391
ISO SQL/MM Part 3.
Definition: ogr_core.h:393
OGRFeature field attribute value union.
Definition: ogr_core.h:663
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition: ogr_core.h:290
ISO SQL/MM Part 3.
Definition: ogr_core.h:392
ISO SQL/MM Part 3.
Definition: ogr_core.h:381
Inch.
Definition: ogr_core.h:793
ISO SQL/MM Part 3.
Definition: ogr_core.h:362
Width.
Definition: ogr_core.h:802
ISO SQL/MM Part 3.
Definition: ogr_core.h:388
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6553
void * CPLCalloc(size_t, size_t) CPL_WARN_UNUSED_RESULT
Safe version of calloc().
Definition: cpl_conv.cpp:128
Symbol.
Definition: ogr_core.h:778
Angle.
Definition: ogr_core.h:839
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:337
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:773
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:354
Background color.
Definition: ogr_core.h:865
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:250
Vector.
Definition: ogr_core.h:780
ISO SQL/MM Part 3.
Definition: ogr_core.h:376
ISO SQL/MM Part 3.
Definition: ogr_core.h:379
ISO SQL/MM Part 3.
Definition: ogr_core.h:385
planar surface, defined by 1 exterior boundary and zero or more interior boundaries, that are curves.
Definition: ogr_core.h:333
Font name.
Definition: ogr_core.h:848
Brush.
Definition: ogr_core.h:777
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:295
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:296
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6609
None.
Definition: ogr_core.h:775
int OGRErr
Simple container for a bounding region.
Definition: ogr_core.h:287
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:326
Dy.
Definition: ogr_core.h:869
String of ASCII chars.
Definition: ogr_core.h:592
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6366
2.5D extension as per 99-402
Definition: ogr_core.h:396
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2429
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:984
Array of strings.
Definition: ogr_core.h:593
ISO SQL/MM Part 3.
Definition: ogr_core.h:372
List of 32bit integers.
Definition: ogr_core.h:589
ISO SQL/MM Part 3.
Definition: ogr_core.h:368
Millimeter.
Definition: ogr_core.h:791
Simple 32bit integer.
Definition: ogr_core.h:588
Priority.
Definition: ogr_core.h:874
Curve (abstract type).
Definition: ogr_core.h:338
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6700

Generated for GDAL by doxygen 1.8.8.