GDAL
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 37821 2017-03-21 13:15:44Z 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)
49 
50 #include <limits>
51 
52 class CPL_DLL OGREnvelope
53 {
54  public:
55  OGREnvelope() : MinX(std::numeric_limits<double>::infinity()),
56  MaxX(-std::numeric_limits<double>::infinity()),
57  MinY(std::numeric_limits<double>::infinity()),
58  MaxY(-std::numeric_limits<double>::infinity())
59  {
60  }
61 
62  OGREnvelope(const OGREnvelope& oOther) :
63  MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
64  {
65  }
66 
67  double MinX;
68  double MaxX;
69  double MinY;
70  double MaxY;
71 
72 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
73 #pragma GCC diagnostic push
74 #pragma GCC diagnostic ignored "-Wfloat-equal"
75 #endif
76  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
77 
78 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
79 #pragma GCC diagnostic pop
80 #endif
81 
82  void Merge( OGREnvelope const& sOther ) {
83  MinX = MIN(MinX,sOther.MinX);
84  MaxX = MAX(MaxX,sOther.MaxX);
85  MinY = MIN(MinY,sOther.MinY);
86  MaxY = MAX(MaxY,sOther.MaxY);
87  }
88 
89  void Merge( double dfX, double dfY ) {
90  MinX = MIN(MinX,dfX);
91  MaxX = MAX(MaxX,dfX);
92  MinY = MIN(MinY,dfY);
93  MaxY = MAX(MaxY,dfY);
94  }
95 
96  void Intersect( OGREnvelope const& sOther ) {
97  if(Intersects(sOther))
98  {
99  if( IsInit() )
100  {
101  MinX = MAX(MinX,sOther.MinX);
102  MaxX = MIN(MaxX,sOther.MaxX);
103  MinY = MAX(MinY,sOther.MinY);
104  MaxY = MIN(MaxY,sOther.MaxY);
105  }
106  else
107  {
108  MinX = sOther.MinX;
109  MaxX = sOther.MaxX;
110  MinY = sOther.MinY;
111  MaxY = sOther.MaxY;
112  }
113  }
114  else
115  {
116  *this = OGREnvelope();
117  }
118  }
119 
120  int Intersects(OGREnvelope const& other) const
121  {
122  return MinX <= other.MaxX && MaxX >= other.MinX &&
123  MinY <= other.MaxY && MaxY >= other.MinY;
124  }
125 
126  int Contains(OGREnvelope const& other) const
127  {
128  return MinX <= other.MinX && MinY <= other.MinY &&
129  MaxX >= other.MaxX && MaxY >= other.MaxY;
130  }
131 };
132 #else
133 typedef struct
134 {
135  double MinX;
136  double MaxX;
137  double MinY;
138  double MaxY;
139 } OGREnvelope;
140 #endif
141 
146 #if defined(__cplusplus) && !defined(CPL_SURESS_CPLUSPLUS)
147 class CPL_DLL OGREnvelope3D : public OGREnvelope
148 {
149  public:
150  OGREnvelope3D() : OGREnvelope(),
151  MinZ(std::numeric_limits<double>::infinity()),
152  MaxZ(-std::numeric_limits<double>::infinity())
153  {
154  }
155 
156  OGREnvelope3D(const OGREnvelope3D& oOther) :
157  OGREnvelope(oOther),
158  MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
159  {
160  }
161 
162  double MinZ;
163  double MaxZ;
164 
165 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
166 #pragma GCC diagnostic push
167 #pragma GCC diagnostic ignored "-Wfloat-equal"
168 #endif
169  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
170 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
171 #pragma GCC diagnostic pop
172 #endif
173 
174  void Merge( OGREnvelope3D const& sOther ) {
175  MinX = MIN(MinX,sOther.MinX);
176  MaxX = MAX(MaxX,sOther.MaxX);
177  MinY = MIN(MinY,sOther.MinY);
178  MaxY = MAX(MaxY,sOther.MaxY);
179  MinZ = MIN(MinZ,sOther.MinZ);
180  MaxZ = MAX(MaxZ,sOther.MaxZ);
181  }
182 
183  void Merge( double dfX, double dfY, double dfZ ) {
184  MinX = MIN(MinX,dfX);
185  MaxX = MAX(MaxX,dfX);
186  MinY = MIN(MinY,dfY);
187  MaxY = MAX(MaxY,dfY);
188  MinZ = MIN(MinZ,dfZ);
189  MaxZ = MAX(MaxZ,dfZ);
190  }
191 
192  void Intersect( OGREnvelope3D const& sOther ) {
193  if(Intersects(sOther))
194  {
195  if( IsInit() )
196  {
197  MinX = MAX(MinX,sOther.MinX);
198  MaxX = MIN(MaxX,sOther.MaxX);
199  MinY = MAX(MinY,sOther.MinY);
200  MaxY = MIN(MaxY,sOther.MaxY);
201  MinZ = MAX(MinZ,sOther.MinZ);
202  MaxZ = MIN(MaxZ,sOther.MaxZ);
203  }
204  else
205  {
206  MinX = sOther.MinX;
207  MaxX = sOther.MaxX;
208  MinY = sOther.MinY;
209  MaxY = sOther.MaxY;
210  MinZ = sOther.MinZ;
211  MaxZ = sOther.MaxZ;
212  }
213  }
214  else
215  {
216  *this = OGREnvelope3D();
217  }
218  }
219 
220  int Intersects(OGREnvelope3D const& other) const
221  {
222  return MinX <= other.MaxX && MaxX >= other.MinX &&
223  MinY <= other.MaxY && MaxY >= other.MinY &&
224  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
225  }
226 
227  int Contains(OGREnvelope3D const& other) const
228  {
229  return MinX <= other.MinX && MinY <= other.MinY &&
230  MaxX >= other.MaxX && MaxY >= other.MaxY &&
231  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
232  }
233 };
234 #else
235 typedef struct
236 {
237  double MinX;
238  double MaxX;
239  double MinY;
240  double MaxY;
241  double MinZ;
242  double MaxZ;
243 } OGREnvelope3D;
244 #endif
245 
248 
250 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
251 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
252 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
253 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
254 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
257 #ifdef STRICT_OGRERR_TYPE
258 
259 typedef enum
260 {
261  OGRERR_NONE,
271 } OGRErr;
272 #else
273 
274 typedef int OGRErr;
275 
276 #define OGRERR_NONE 0
277 #define OGRERR_NOT_ENOUGH_DATA 1
278 #define OGRERR_NOT_ENOUGH_MEMORY 2
279 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
280 #define OGRERR_UNSUPPORTED_OPERATION 4
281 #define OGRERR_CORRUPT_DATA 5
282 #define OGRERR_FAILURE 6
283 #define OGRERR_UNSUPPORTED_SRS 7
284 #define OGRERR_INVALID_HANDLE 8
285 #define OGRERR_NON_EXISTING_FEATURE 9
287 #endif
288 
290 typedef int OGRBoolean;
291 
292 /* -------------------------------------------------------------------- */
293 /* ogr_geometry.h related definitions. */
294 /* -------------------------------------------------------------------- */
295 
301 typedef enum
302 {
305  wkbPoint = 1,
325  wkbCurve = 13,
326  wkbSurface = 14,
329  wkbTIN = 16,
331  wkbTriangle = 17,
333  wkbNone = 100,
339  wkbMultiCurveZ = 1011,
341  wkbCurveZ = 1013,
342  wkbSurfaceZ = 1014,
344  wkbTINZ = 1016,
345  wkbTriangleZ = 1017,
347  wkbPointM = 2001,
348  wkbLineStringM = 2002,
349  wkbPolygonM = 2003,
350  wkbMultiPointM = 2004,
357  wkbMultiCurveM = 2011,
359  wkbCurveM = 2013,
360  wkbSurfaceM = 2014,
362  wkbTINM = 2016,
363  wkbTriangleM = 2017,
365  wkbPointZM = 3001,
367  wkbPolygonZM = 3003,
377  wkbCurveZM = 3013,
378  wkbSurfaceZM = 3014,
380  wkbTINZM = 3016,
381  wkbTriangleZM = 3017,
383  wkbPoint25D = 0x80000001,
384  wkbLineString25D = 0x80000002,
385  wkbPolygon25D = 0x80000003,
386  wkbMultiPoint25D = 0x80000004,
387  wkbMultiLineString25D = 0x80000005,
388  wkbMultiPolygon25D = 0x80000006,
392 
407 typedef enum
408 {
412 } OGRwkbVariant;
413 
414 #ifndef GDAL_COMPILATION
415 
416 #define wkb25DBit 0x80000000
417 #endif
418 
420 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
421 
425 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
426 
430 #define wkbSetZ(x) OGR_GT_SetZ(x)
431 
435 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
436 
440 #define wkbSetM(x) OGR_GT_SetM(x)
441 
442 #ifndef DOXYGEN_SKIP
443 #define ogrZMarker 0x21125711
444 #endif
445 
446 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
448  OGRwkbGeometryType eExtra );
450  OGRwkbGeometryType eExtra,
451  int bAllowPromotingToCurves );
455 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
456 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
457 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
458 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
459  OGRwkbGeometryType eSuperType );
460 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
461 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
466 
468 typedef enum
469 {
470  wkbXDR = 0,
471  wkbNDR = 1
473 
474 #ifndef DOXYGEN_SKIP
475 
476 #ifndef NO_HACK_FOR_IBM_DB2_V72
477 # define HACK_FOR_IBM_DB2_V72
478 #endif
479 
480 #ifdef HACK_FOR_IBM_DB2_V72
481 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
482 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x)))
483 #else
484 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
485 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
486 #endif
487 
488 #endif /* #ifndef DOXYGEN_SKIP */
489 
493 #define ALTER_NAME_FLAG 0x1
494 
498 #define ALTER_TYPE_FLAG 0x2
499 
503 #define ALTER_WIDTH_PRECISION_FLAG 0x4
504 
509 #define ALTER_NULLABLE_FLAG 0x8
510 
515 #define ALTER_DEFAULT_FLAG 0x10
516 
520 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG)
521 
526 #define OGR_F_VAL_NULL 0x00000001
527 
532 #define OGR_F_VAL_GEOM_TYPE 0x00000002
533 
538 #define OGR_F_VAL_WIDTH 0x00000004
539 
547 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
548 
555 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
556 
561 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
562 
563 /************************************************************************/
564 /* ogr_feature.h related definitions. */
565 /************************************************************************/
566 
573 typedef enum
589  OFTMaxType = 13
590 } OGRFieldType;
591 
601 typedef enum
602 { OFSTNone = 0,
610  OFSTMaxSubType = 3
612 
617 typedef enum
618 {
619  OJUndefined = 0,
620  OJLeft = 1,
621  OJRight = 2
623 
625 #define OGRNullFID -1
626 
632 #define OGRUnsetMarker -21121
633 
640 #define OGRNullMarker -21122
641 
642 /************************************************************************/
643 /* OGRField */
644 /************************************************************************/
645 
650 typedef union {
652  int Integer;
653  GIntBig Integer64;
654  double Real;
655  char *String;
656 
657  struct {
658  int nCount;
659  int *paList;
660  } IntegerList;
661 
662  struct {
663  int nCount;
664  GIntBig *paList;
665  } Integer64List;
666 
667  struct {
668  int nCount;
669  double *paList;
670  } RealList;
671 
672  struct {
673  int nCount;
674  char **paList;
675  } StringList;
676 
677  struct {
678  int nCount;
679  GByte *paData;
680  } Binary;
681 
682  struct {
683  int nMarker1;
684  int nMarker2;
685  int nMarker3;
686  } Set;
687 
688  struct {
689  GInt16 Year;
690  GByte Month;
691  GByte Day;
692  GByte Hour;
693  GByte Minute;
694  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
695  100=GMT, 104=GMT+1, 80=GMT-5, etc */
696  GByte Reserved; /* must be set to 0 */
697  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
698  } Date;
700 } OGRField;
701 
703 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5)
704 
705 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
706  int nOptions );
707 
708 /* -------------------------------------------------------------------- */
709 /* Constants from ogrsf_frmts.h for capabilities. */
710 /* -------------------------------------------------------------------- */
711 #define OLCRandomRead "RandomRead"
712 #define OLCSequentialWrite "SequentialWrite"
713 #define OLCRandomWrite "RandomWrite"
714 #define OLCFastSpatialFilter "FastSpatialFilter"
715 #define OLCFastFeatureCount "FastFeatureCount"
716 #define OLCFastGetExtent "FastGetExtent"
717 #define OLCCreateField "CreateField"
718 #define OLCDeleteField "DeleteField"
719 #define OLCReorderFields "ReorderFields"
720 #define OLCAlterFieldDefn "AlterFieldDefn"
721 #define OLCTransactions "Transactions"
722 #define OLCDeleteFeature "DeleteFeature"
723 #define OLCFastSetNextByIndex "FastSetNextByIndex"
724 #define OLCStringsAsUTF8 "StringsAsUTF8"
725 #define OLCIgnoreFields "IgnoreFields"
726 #define OLCCreateGeomField "CreateGeomField"
727 #define OLCCurveGeometries "CurveGeometries"
728 #define OLCMeasuredGeometries "MeasuredGeometries"
730 #define ODsCCreateLayer "CreateLayer"
731 #define ODsCDeleteLayer "DeleteLayer"
732 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
733 #define ODsCCurveGeometries "CurveGeometries"
734 #define ODsCTransactions "Transactions"
735 #define ODsCEmulatedTransactions "EmulatedTransactions"
736 #define ODsCMeasuredGeometries "MeasuredGeometries"
737 #define ODsCRandomLayerRead "RandomLayerRead"
738 #define ODsCRandomLayerWrite "RandomLayerWrite "
740 #define ODrCCreateDataSource "CreateDataSource"
741 #define ODrCDeleteDataSource "DeleteDataSource"
743 /* -------------------------------------------------------------------- */
744 /* Layer metadata items. */
745 /* -------------------------------------------------------------------- */
750 #define OLMD_FID64 "OLMD_FID64"
751 
752 /************************************************************************/
753 /* ogr_featurestyle.h related definitions. */
754 /************************************************************************/
755 
761 {
763  OGRSTCPen = 1,
768 } OGRSTClassId;
769 
774 {
778  OGRSTUMM = 3,
779  OGRSTUCM = 4,
781 } OGRSTUnitId;
782 
787 {
796 #ifndef DOXYGEN_SKIP
797  OGRSTPenLast = 8
798 #endif
799 } OGRSTPenParam;
800 
805 {
814 #ifndef DOXYGEN_SKIP
815  OGRSTBrushLast = 8
816 #endif
817 
819 
824 {
837 #ifndef DOXYGEN_SKIP
838  OGRSTSymbolLast = 12
839 #endif
841 
846 {
868 #ifndef DOXYGEN_SKIP
869  OGRSTLabelLast = 21
870 #endif
872 
873 /* ------------------------------------------------------------------- */
874 /* Version checking */
875 /* -------------------------------------------------------------------- */
876 
877 #ifndef DOXYGEN_SKIP
878 
879 /* Note to developers : please keep this section in sync with gdal.h */
880 
881 #ifndef GDAL_VERSION_INFO_DEFINED
882 #define GDAL_VERSION_INFO_DEFINED
883 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
884 #endif
885 
886 #ifndef GDAL_CHECK_VERSION
887 
899 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
900  const char* pszCallingComponentName);
901 
903 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
904  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
905 
906 #endif
907 
908 #endif /* #ifndef DOXYGEN_SKIP */
909 
910 CPL_C_END
911 
912 #endif /* ndef OGR_CORE_H_INCLUDED */
ISO SQL/MM Part 3.
Definition: ogr_core.h:370
non-standard, for pure attribute records
Definition: ogr_core.h:333
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:410
Dy.
Definition: ogr_core.h:830
Outline color.
Definition: ogr_core.h:867
Id.
Definition: ogr_core.h:825
Dx.
Definition: ogr_core.h:811
void * CPLRealloc(void *, size_t) CPL_WARN_UNUSED_RESULT
Safe version of realloc().
Definition: cpl_conv.cpp:215
Font name.
Definition: ogr_core.h:847
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
Highlight color.
Definition: ogr_core.h:866
Foreground color.
Definition: ogr_core.h:806
ISO SQL/MM Part 3.
Definition: ogr_core.h:354
ISO SQL/MM Part 3.
Definition: ogr_core.h:357
ISO SQL/MM Part 3.
Definition: ogr_core.h:348
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:601
wkbCurve with Z component.
Definition: ogr_core.h:341
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:281
Color.
Definition: ogr_core.h:788
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:845
Background color.
Definition: ogr_core.h:807
ISO SQL/MM Part 3.
Definition: ogr_core.h:344
wkbMultiSurface with Z component.
Definition: ogr_core.h:340
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:356
ISO SQL/MM Part 3.
Definition: ogr_core.h:353
Anchor.
Definition: ogr_core.h:854
2.5D extension as per 99-402
Definition: ogr_core.h:388
No subtype.
Definition: ogr_core.h:603
Size.
Definition: ogr_core.h:828
List of 64bit integers.
Definition: ogr_core.h:588
Priority.
Definition: ogr_core.h:813
Offset.
Definition: ogr_core.h:833
2.5D extension as per 99-402
Definition: ogr_core.h:387
Angle.
Definition: ogr_core.h:850
Join.
Definition: ogr_core.h:794
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:308
Color.
Definition: ogr_core.h:827
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3...
Definition: ogr_core.h:327
wkbMultiCurve with Z component.
Definition: ogr_core.h:339
ISO SQL/MM Part 3.
Definition: ogr_core.h:350
Time.
Definition: ogr_core.h:585
Underline.
Definition: ogr_core.h:860
non-standard, just for createGeometry()
Definition: ogr_core.h:334
Date.
Definition: ogr_core.h:584
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:2074
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
ISO SQL/MM Part 3.
Definition: ogr_core.h:371
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6394
Vectical adjustment.
Definition: ogr_core.h:865
short GInt16
Int16 type.
Definition: cpl_port.h:203
Dy.
Definition: ogr_core.h:812
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:290
wkbCompoundCurve with Z component.
Definition: ogr_core.h:337
2.5D extension as per 99-402
Definition: ogr_core.h:384
#define OGRERR_NONE
Success.
Definition: ogr_core.h:276
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
Bold.
Definition: ogr_core.h:858
ISO SQL/MM Part 3.
Definition: ogr_core.h:361
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:786
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:207
Pen.
Definition: ogr_core.h:763
Ground unit.
Definition: ogr_core.h:775
Id.
Definition: ogr_core.h:808
Cap.
Definition: ogr_core.h:793
List of doubles.
Definition: ogr_core.h:578
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:823
ISO SQL/MM Part 3.
Definition: ogr_core.h:381
geometric object that is a collection of 1 or more geometric objects, standard WKB ...
Definition: ogr_core.h:314
1-dimensional geometric object with linear interpolation between Points, standard WKB ...
Definition: ogr_core.h:306
Perpendicular.
Definition: ogr_core.h:832
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:468
Double Precision floating point.
Definition: ogr_core.h:577
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6300
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:280
unknown type, non-standard
Definition: ogr_core.h:303
Perpendicular offset.
Definition: ogr_core.h:792
2.5D extension as per 99-402
Definition: ogr_core.h:389
ISO SQL/MM Part 3.
Definition: ogr_core.h:351
Dx.
Definition: ogr_core.h:855
Surface (abstract type).
Definition: ogr_core.h:326
char * CPLStrdup(const char *) CPL_WARN_UNUSED_RESULT CPL_RETURNS_NONNULL
Safe version of strdup() function.
Definition: cpl_conv.cpp:284
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:279
ISO SQL/MM Part 3.
Definition: ogr_core.h:374
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:6680
Angle.
Definition: ogr_core.h:809
ISO SQL/MM Part 3.
Definition: ogr_core.h:377
a Triangle.
Definition: ogr_core.h:331
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:1957
Size.
Definition: ogr_core.h:848
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:6421
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:311
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6371
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6349
MSB/Sun/Motoroloa: Most Significant Byte First.
Definition: ogr_core.h:470
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
Raw Binary data.
Definition: ogr_core.h:583
Outline color.
Definition: ogr_core.h:836
Single 64bit integer.
Definition: ogr_core.h:587
#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:6448
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:323
wkbSurface with Z component.
Definition: ogr_core.h:342
2.5D extension as per 99-402
Definition: ogr_core.h:386
Id.
Definition: ogr_core.h:791
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:301
ISO SQL/MM Part 3.
Definition: ogr_core.h:347
Points.
Definition: ogr_core.h:777
Step.
Definition: ogr_core.h:831
Priority.
Definition: ogr_core.h:834
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6702
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:278
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2614
ISO SQL/MM Part 3.
Definition: ogr_core.h:362
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition: ogr_core.h:285
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2651
ISO SQL/MM Part 3.
Definition: ogr_core.h:365
wkbCurvePolygon with Z component.
Definition: ogr_core.h:338
Signed 16-bit integer.
Definition: ogr_core.h:607
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:329
Size.
Definition: ogr_core.h:810
ISO SQL/MM Part 3.
Definition: ogr_core.h:373
Centimeter.
Definition: ogr_core.h:779
ISO SQL/MM Part 3.
Definition: ogr_core.h:360
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:284
ISO SQL/MM Part 3.
Definition: ogr_core.h:343
Boolean integer.
Definition: ogr_core.h:605
ISO SQL/MM Part 3.
Definition: ogr_core.h:352
2.5D extension as per 99-402
Definition: ogr_core.h:385
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:458
Label.
Definition: ogr_core.h:766
Pattern.
Definition: ogr_core.h:790
ISO SQL/MM Part 3.
Definition: ogr_core.h:376
Priority.
Definition: ogr_core.h:795
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:312
ISO SQL/MM Part 3.
Definition: ogr_core.h:367
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:319
Horizontal adjustment.
Definition: ogr_core.h:864
LSB/Intel/Vax: Least Significant Byte First.
Definition: ogr_core.h:471
OGRJustification
Display justification for field values.
Definition: ogr_core.h:617
Strike out.
Definition: ogr_core.h:862
#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:773
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:411
deprecated
Definition: ogr_core.h:582
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:317
Stretch.
Definition: ogr_core.h:863
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:305
Single precision (32 bit) floating point.
Definition: ogr_core.h:609
Pixel.
Definition: ogr_core.h:776
Placement.
Definition: ogr_core.h:853
OGRFieldType
List of feature field types.
Definition: ogr_core.h:573
ISO SQL/MM Part 3.
Definition: ogr_core.h:358
ISO SQL/MM Part 3.
Definition: ogr_core.h:369
Date and Time.
Definition: ogr_core.h:586
Text string.
Definition: ogr_core.h:849
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:409
Foreground color.
Definition: ogr_core.h:851
ISO SQL/MM Part 3.
Definition: ogr_core.h:345
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6617
Dx.
Definition: ogr_core.h:829
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:407
Perpendicular.
Definition: ogr_core.h:857
wkbCircularString with Z component.
Definition: ogr_core.h:336
deprecated
Definition: ogr_core.h:581
Italic.
Definition: ogr_core.h:859
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:804
ISO SQL/MM Part 3.
Definition: ogr_core.h:378
ISO SQL/MM Part 3.
Definition: ogr_core.h:380
OGRFeature field attribute value union.
Definition: ogr_core.h:650
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition: ogr_core.h:277
ISO SQL/MM Part 3.
Definition: ogr_core.h:379
ISO SQL/MM Part 3.
Definition: ogr_core.h:368
Inch.
Definition: ogr_core.h:780
ISO SQL/MM Part 3.
Definition: ogr_core.h:349
Width.
Definition: ogr_core.h:789
ISO SQL/MM Part 3.
Definition: ogr_core.h:375
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6512
void * CPLCalloc(size_t, size_t) CPL_WARN_UNUSED_RESULT
Safe version of calloc().
Definition: cpl_conv.cpp:128
Symbol.
Definition: ogr_core.h:765
Angle.
Definition: ogr_core.h:826
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:324
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:760
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:354
Background color.
Definition: ogr_core.h:852
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:250
Vector.
Definition: ogr_core.h:767
ISO SQL/MM Part 3.
Definition: ogr_core.h:363
ISO SQL/MM Part 3.
Definition: ogr_core.h:366
ISO SQL/MM Part 3.
Definition: ogr_core.h:372
planar surface, defined by 1 exterior boundary and zero or more interior boundaries, that are curves.
Definition: ogr_core.h:320
Font name.
Definition: ogr_core.h:835
Brush.
Definition: ogr_core.h:764
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:282
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:283
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6568
None.
Definition: ogr_core.h:762
int OGRErr
Simple container for a bounding region.
Definition: ogr_core.h:274
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:313
Dy.
Definition: ogr_core.h:856
String of ASCII chars.
Definition: ogr_core.h:579
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6325
2.5D extension as per 99-402
Definition: ogr_core.h:383
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2391
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:984
Array of strings.
Definition: ogr_core.h:580
ISO SQL/MM Part 3.
Definition: ogr_core.h:359
List of 32bit integers.
Definition: ogr_core.h:576
ISO SQL/MM Part 3.
Definition: ogr_core.h:355
Millimeter.
Definition: ogr_core.h:778
Simple 32bit integer.
Definition: ogr_core.h:575
Priority.
Definition: ogr_core.h:861
Curve (abstract type).
Definition: ogr_core.h:325
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6659

Generated for GDAL by doxygen 1.8.8.