GDAL
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 41282 2018-01-17 11:51:08Z 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 
640 /* Special value for an unknown field type. This should only be used
641  * while reading a file. At the end of file any unknown types should
642  * be set to OFTString.
643 */
645 #define OGRUnknownType static_cast<OGRFieldType>(-1)
646 
653 #define OGRUnsetMarker -21121
654 
661 #define OGRNullMarker -21122
662 
663 /************************************************************************/
664 /* OGRField */
665 /************************************************************************/
666 
671 typedef union {
673  int Integer;
674  GIntBig Integer64;
675  double Real;
676  char *String;
677 
678  struct {
679  int nCount;
680  int *paList;
681  } IntegerList;
682 
683  struct {
684  int nCount;
685  GIntBig *paList;
686  } Integer64List;
687 
688  struct {
689  int nCount;
690  double *paList;
691  } RealList;
692 
693  struct {
694  int nCount;
695  char **paList;
696  } StringList;
697 
698  struct {
699  int nCount;
700  GByte *paData;
701  } Binary;
702 
703  struct {
704  int nMarker1;
705  int nMarker2;
706  int nMarker3;
707  } Set;
708 
709  struct {
710  GInt16 Year;
711  GByte Month;
712  GByte Day;
713  GByte Hour;
714  GByte Minute;
715  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
716  100=GMT, 104=GMT+1, 80=GMT-5, etc */
717  GByte Reserved; /* must be set to 0 */
718  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
719  } Date;
721 } OGRField;
722 
723 #ifdef __cplusplus
724 
725 inline int OGR_GET_MS(float fSec) {
726  if( CPLIsNan(fSec) ) return 0;
727  if( fSec >= 999 ) return 999;
728  if( fSec <= 0 ) return 0;
729  const float fValue = (fSec - static_cast<int>(fSec)) * 1000 + 0.5f;
730  return static_cast<int>(fValue);
731 }
732 #endif // __cplusplus
733 
734 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
735  int nOptions );
736 
737 /* -------------------------------------------------------------------- */
738 /* Constants from ogrsf_frmts.h for capabilities. */
739 /* -------------------------------------------------------------------- */
740 #define OLCRandomRead "RandomRead"
741 #define OLCSequentialWrite "SequentialWrite"
742 #define OLCRandomWrite "RandomWrite"
743 #define OLCFastSpatialFilter "FastSpatialFilter"
744 #define OLCFastFeatureCount "FastFeatureCount"
745 #define OLCFastGetExtent "FastGetExtent"
746 #define OLCCreateField "CreateField"
747 #define OLCDeleteField "DeleteField"
748 #define OLCReorderFields "ReorderFields"
749 #define OLCAlterFieldDefn "AlterFieldDefn"
750 #define OLCTransactions "Transactions"
751 #define OLCDeleteFeature "DeleteFeature"
752 #define OLCFastSetNextByIndex "FastSetNextByIndex"
753 #define OLCStringsAsUTF8 "StringsAsUTF8"
754 #define OLCIgnoreFields "IgnoreFields"
755 #define OLCCreateGeomField "CreateGeomField"
756 #define OLCCurveGeometries "CurveGeometries"
757 #define OLCMeasuredGeometries "MeasuredGeometries"
759 #define ODsCCreateLayer "CreateLayer"
760 #define ODsCDeleteLayer "DeleteLayer"
761 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
762 #define ODsCCurveGeometries "CurveGeometries"
763 #define ODsCTransactions "Transactions"
764 #define ODsCEmulatedTransactions "EmulatedTransactions"
765 #define ODsCMeasuredGeometries "MeasuredGeometries"
766 #define ODsCRandomLayerRead "RandomLayerRead"
767 #define ODsCRandomLayerWrite "RandomLayerWrite "
769 #define ODrCCreateDataSource "CreateDataSource"
770 #define ODrCDeleteDataSource "DeleteDataSource"
772 /* -------------------------------------------------------------------- */
773 /* Layer metadata items. */
774 /* -------------------------------------------------------------------- */
779 #define OLMD_FID64 "OLMD_FID64"
780 
781 /************************************************************************/
782 /* ogr_featurestyle.h related definitions. */
783 /************************************************************************/
784 
790 {
792  OGRSTCPen = 1,
797 } OGRSTClassId;
798 
803 {
807  OGRSTUMM = 3,
808  OGRSTUCM = 4,
810 } OGRSTUnitId;
811 
816 {
825 #ifndef DOXYGEN_SKIP
826  OGRSTPenLast = 8
827 #endif
828 } OGRSTPenParam;
829 
834 {
843 #ifndef DOXYGEN_SKIP
844  OGRSTBrushLast = 8
845 #endif
846 
848 
853 {
866 #ifndef DOXYGEN_SKIP
867  OGRSTSymbolLast = 12
868 #endif
870 
875 {
897 #ifndef DOXYGEN_SKIP
898  OGRSTLabelLast = 21
899 #endif
901 
902 /* ------------------------------------------------------------------- */
903 /* Version checking */
904 /* -------------------------------------------------------------------- */
905 
906 #ifndef DOXYGEN_SKIP
907 
908 /* Note to developers : please keep this section in sync with gdal.h */
909 
910 #ifndef GDAL_VERSION_INFO_DEFINED
911 #define GDAL_VERSION_INFO_DEFINED
912 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
913 #endif
914 
915 #ifndef GDAL_CHECK_VERSION
916 
928 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
929  const char* pszCallingComponentName);
930 
932 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
933  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
934 
935 #endif
936 
937 #endif /* #ifndef DOXYGEN_SKIP */
938 
939 CPL_C_END
940 
941 #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:859
Outline color.
Definition: ogr_core.h:896
Id.
Definition: ogr_core.h:854
Dx.
Definition: ogr_core.h:840
void * CPLRealloc(void *, size_t) CPL_WARN_UNUSED_RESULT
Safe version of realloc().
Definition: cpl_conv.cpp:224
Font name.
Definition: ogr_core.h:876
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
Highlight color.
Definition: ogr_core.h:895
Foreground color.
Definition: ogr_core.h:835
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:817
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:874
Background color.
Definition: ogr_core.h:836
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition: ogr_core.h:725
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:331
void * CPLMalloc(size_t) CPL_WARN_UNUSED_RESULT
Safe version of malloc().
Definition: cpl_conv.cpp:167
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:883
2.5D extension as per 99-402
Definition: ogr_core.h:401
No subtype.
Definition: ogr_core.h:616
Size.
Definition: ogr_core.h:857
List of 64bit integers.
Definition: ogr_core.h:601
Priority.
Definition: ogr_core.h:842
Offset.
Definition: ogr_core.h:862
2.5D extension as per 99-402
Definition: ogr_core.h:400
Angle.
Definition: ogr_core.h:879
Join.
Definition: ogr_core.h:823
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:856
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:889
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:2254
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:6449
OBSOLETE; do not use.
Definition: ogr_core.h:894
short GInt16
Int16 type.
Definition: cpl_port.h:209
Dy.
Definition: ogr_core.h:841
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:887
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:815
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:213
Pen.
Definition: ogr_core.h:792
Ground unit.
Definition: ogr_core.h:804
Id.
Definition: ogr_core.h:837
Cap.
Definition: ogr_core.h:822
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:852
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:861
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:6355
#define CPLIsNan(x)
Return whether a floating-pointer number is NaN.
Definition: cpl_port.h:621
#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:821
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:884
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:292
#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:6735
Angle.
Definition: ogr_core.h:838
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:2132
Size.
Definition: ogr_core.h:877
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:6476
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:6426
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6404
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:865
Single 64bit integer.
Definition: ogr_core.h:600
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:393
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6503
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:820
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:806
Step.
Definition: ogr_core.h:860
Priority.
Definition: ogr_core.h:863
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6757
#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:2674
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:2711
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:839
ISO SQL/MM Part 3.
Definition: ogr_core.h:386
Centimeter.
Definition: ogr_core.h:808
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:391
Label.
Definition: ogr_core.h:795
Pattern.
Definition: ogr_core.h:819
ISO SQL/MM Part 3.
Definition: ogr_core.h:389
Priority.
Definition: ogr_core.h:824
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
OBSOLETE; do not use.
Definition: ogr_core.h:893
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:891
#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:802
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:892
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:805
Placement.
Definition: ogr_core.h:882
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:878
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:422
Foreground color.
Definition: ogr_core.h:880
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:6672
Dx.
Definition: ogr_core.h:858
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:420
Perpendicular.
Definition: ogr_core.h:886
wkbCircularString with Z component.
Definition: ogr_core.h:349
deprecated
Definition: ogr_core.h:594
Italic.
Definition: ogr_core.h:888
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:833
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:671
#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:809
ISO SQL/MM Part 3.
Definition: ogr_core.h:362
Width.
Definition: ogr_core.h:818
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:6567
void * CPLCalloc(size_t, size_t) CPL_WARN_UNUSED_RESULT
Safe version of calloc().
Definition: cpl_conv.cpp:137
Symbol.
Definition: ogr_core.h:794
Angle.
Definition: ogr_core.h:855
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:789
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:333
Background color.
Definition: ogr_core.h:881
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:236
Vector.
Definition: ogr_core.h:796
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
OBSOLETE; do not use.
Definition: ogr_core.h:864
Brush.
Definition: ogr_core.h:793
#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:6623
None.
Definition: ogr_core.h:791
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:885
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:6380
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:2451
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:995
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:807
Simple 32bit integer.
Definition: ogr_core.h:588
Priority.
Definition: ogr_core.h:890
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:6714

Generated for GDAL by doxygen 1.8.8.