GDAL
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 33680 2016-03-08 09:59:03Z 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 
47 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
48 class CPL_DLL OGREnvelope
49 {
50  public:
51  OGREnvelope() : MinX(0.0), MaxX(0.0), MinY(0.0), MaxY(0.0)
52  {
53  }
54 
55  OGREnvelope(const OGREnvelope& oOther) :
56  MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
57  {
58  }
59 
60  double MinX;
61  double MaxX;
62  double MinY;
63  double MaxY;
64 
65 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
66 #pragma GCC diagnostic push
67 #pragma GCC diagnostic ignored "-Wfloat-equal"
68 #endif
69  int IsInit() const { return MinX != 0 || MinY != 0 || MaxX != 0 || MaxY != 0; }
70 
71 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
72 #pragma GCC diagnostic pop
73 #endif
74 
75  void Merge( OGREnvelope const& sOther ) {
76  if( IsInit() )
77  {
78  MinX = MIN(MinX,sOther.MinX);
79  MaxX = MAX(MaxX,sOther.MaxX);
80  MinY = MIN(MinY,sOther.MinY);
81  MaxY = MAX(MaxY,sOther.MaxY);
82  }
83  else
84  {
85  MinX = sOther.MinX;
86  MaxX = sOther.MaxX;
87  MinY = sOther.MinY;
88  MaxY = sOther.MaxY;
89  }
90  }
91  void Merge( double dfX, double dfY ) {
92  if( IsInit() )
93  {
94  MinX = MIN(MinX,dfX);
95  MaxX = MAX(MaxX,dfX);
96  MinY = MIN(MinY,dfY);
97  MaxY = MAX(MaxY,dfY);
98  }
99  else
100  {
101  MinX = MaxX = dfX;
102  MinY = MaxY = dfY;
103  }
104  }
105 
106  void Intersect( OGREnvelope const& sOther ) {
107  if(Intersects(sOther))
108  {
109  if( IsInit() )
110  {
111  MinX = MAX(MinX,sOther.MinX);
112  MaxX = MIN(MaxX,sOther.MaxX);
113  MinY = MAX(MinY,sOther.MinY);
114  MaxY = MIN(MaxY,sOther.MaxY);
115  }
116  else
117  {
118  MinX = sOther.MinX;
119  MaxX = sOther.MaxX;
120  MinY = sOther.MinY;
121  MaxY = sOther.MaxY;
122  }
123  }
124  else
125  {
126  MinX = 0;
127  MaxX = 0;
128  MinY = 0;
129  MaxY = 0;
130  }
131  }
132 
133  int Intersects(OGREnvelope const& other) const
134  {
135  return MinX <= other.MaxX && MaxX >= other.MinX &&
136  MinY <= other.MaxY && MaxY >= other.MinY;
137  }
138 
139  int Contains(OGREnvelope const& other) const
140  {
141  return MinX <= other.MinX && MinY <= other.MinY &&
142  MaxX >= other.MaxX && MaxY >= other.MaxY;
143  }
144 };
145 #else
146 typedef struct
147 {
148  double MinX;
149  double MaxX;
150  double MinY;
151  double MaxY;
152 } OGREnvelope;
153 #endif
154 
155 
160 #if defined(__cplusplus) && !defined(CPL_SURESS_CPLUSPLUS)
161 class CPL_DLL OGREnvelope3D : public OGREnvelope
162 {
163  public:
164  OGREnvelope3D() : OGREnvelope(), MinZ(0.0), MaxZ(0.0)
165  {
166  }
167 
168  OGREnvelope3D(const OGREnvelope3D& oOther) :
169  OGREnvelope(oOther),
170  MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
171  {
172  }
173 
174  double MinZ;
175  double MaxZ;
176 
177 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
178 #pragma GCC diagnostic push
179 #pragma GCC diagnostic ignored "-Wfloat-equal"
180 #endif
181  int IsInit() const { return MinX != 0 || MinY != 0 || MaxX != 0 || MaxY != 0 || MinZ != 0 || MaxZ != 0; }
182 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
183 #pragma GCC diagnostic pop
184 #endif
185 
186  void Merge( OGREnvelope3D const& sOther ) {
187  if( IsInit() )
188  {
189  MinX = MIN(MinX,sOther.MinX);
190  MaxX = MAX(MaxX,sOther.MaxX);
191  MinY = MIN(MinY,sOther.MinY);
192  MaxY = MAX(MaxY,sOther.MaxY);
193  MinZ = MIN(MinZ,sOther.MinZ);
194  MaxZ = MAX(MaxZ,sOther.MaxZ);
195  }
196  else
197  {
198  MinX = sOther.MinX;
199  MaxX = sOther.MaxX;
200  MinY = sOther.MinY;
201  MaxY = sOther.MaxY;
202  MinZ = sOther.MinZ;
203  MaxZ = sOther.MaxZ;
204  }
205  }
206  void Merge( double dfX, double dfY, double dfZ ) {
207  if( IsInit() )
208  {
209  MinX = MIN(MinX,dfX);
210  MaxX = MAX(MaxX,dfX);
211  MinY = MIN(MinY,dfY);
212  MaxY = MAX(MaxY,dfY);
213  MinZ = MIN(MinZ,dfZ);
214  MaxZ = MAX(MaxZ,dfZ);
215  }
216  else
217  {
218  MinX = MaxX = dfX;
219  MinY = MaxY = dfY;
220  MinZ = MaxZ = dfZ;
221  }
222  }
223 
224  void Intersect( OGREnvelope3D const& sOther ) {
225  if(Intersects(sOther))
226  {
227  if( IsInit() )
228  {
229  MinX = MAX(MinX,sOther.MinX);
230  MaxX = MIN(MaxX,sOther.MaxX);
231  MinY = MAX(MinY,sOther.MinY);
232  MaxY = MIN(MaxY,sOther.MaxY);
233  MinZ = MAX(MinZ,sOther.MinZ);
234  MaxZ = MIN(MaxZ,sOther.MaxZ);
235  }
236  else
237  {
238  MinX = sOther.MinX;
239  MaxX = sOther.MaxX;
240  MinY = sOther.MinY;
241  MaxY = sOther.MaxY;
242  MinZ = sOther.MinZ;
243  MaxZ = sOther.MaxZ;
244  }
245  }
246  else
247  {
248  MinX = 0;
249  MaxX = 0;
250  MinY = 0;
251  MaxY = 0;
252  MinZ = 0;
253  MaxZ = 0;
254  }
255  }
256 
257  int Intersects(OGREnvelope3D const& other) const
258  {
259  return MinX <= other.MaxX && MaxX >= other.MinX &&
260  MinY <= other.MaxY && MaxY >= other.MinY &&
261  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
262  }
263 
264  int Contains(OGREnvelope3D const& other) const
265  {
266  return MinX <= other.MinX && MinY <= other.MinY &&
267  MaxX >= other.MaxX && MaxY >= other.MaxY &&
268  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
269  }
270 };
271 #else
272 typedef struct
273 {
274  double MinX;
275  double MaxX;
276  double MinY;
277  double MaxY;
278  double MinZ;
279  double MaxZ;
280 } OGREnvelope3D;
281 #endif
282 
283 
284 CPL_C_START
285 
286 void CPL_DLL *OGRMalloc( size_t );
287 void CPL_DLL *OGRCalloc( size_t, size_t );
288 void CPL_DLL *OGRRealloc( void *, size_t );
289 char CPL_DLL *OGRStrdup( const char * );
290 void CPL_DLL OGRFree( void * );
291 
292 #ifdef STRICT_OGRERR_TYPE
293 typedef enum
294 {
295  OGRERR_NONE,
296  OGRERR_NOT_ENOUGH_DATA,
297  OGRERR_NOT_ENOUGH_MEMORY,
298  OGRERR_UNSUPPORTED_GEOMETRY_TYPE,
299  OGRERR_UNSUPPORTED_OPERATION,
300  OGRERR_CORRUPT_DATA,
301  OGRERR_FAILURE,
302  OGRERR_UNSUPPORTED_SRS,
303  OGRERR_INVALID_HANDLE,
304  OGRERR_NON_EXISTING_FEATURE
305 } OGRErr;
306 #else
307 typedef int OGRErr;
308 
309 #define OGRERR_NONE 0
310 #define OGRERR_NOT_ENOUGH_DATA 1 /* not enough data to deserialize */
311 #define OGRERR_NOT_ENOUGH_MEMORY 2
312 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
313 #define OGRERR_UNSUPPORTED_OPERATION 4
314 #define OGRERR_CORRUPT_DATA 5
315 #define OGRERR_FAILURE 6
316 #define OGRERR_UNSUPPORTED_SRS 7
317 #define OGRERR_INVALID_HANDLE 8
318 #define OGRERR_NON_EXISTING_FEATURE 9 /* added in GDAL 2.0 */
319 
320 #endif
321 
322 typedef int OGRBoolean;
323 
324 /* -------------------------------------------------------------------- */
325 /* ogr_geometry.h related definitions. */
326 /* -------------------------------------------------------------------- */
327 
333 typedef enum
334 {
337  wkbPoint = 1,
357  wkbCurve = 13,
358  wkbSurface = 14,
361  wkbTIN = 16,
363  wkbTriangle = 17,
365  wkbNone = 100,
371  wkbMultiCurveZ = 1011,
373  wkbCurveZ = 1013,
374  wkbSurfaceZ = 1014,
376  wkbTINZ = 1016,
377  wkbTriangleZ = 1017,
379  wkbPointM = 2001,
380  wkbLineStringM = 2002,
381  wkbPolygonM = 2003,
382  wkbMultiPointM = 2004,
389  wkbMultiCurveM = 2011,
391  wkbCurveM = 2013,
392  wkbSurfaceM = 2014,
394  wkbTINM = 2016,
395  wkbTriangleM = 2017,
397  wkbPointZM = 3001,
399  wkbPolygonZM = 3003,
409  wkbCurveZM = 3013,
410  wkbSurfaceZM = 3014,
412  wkbTINZM = 3016,
413  wkbTriangleZM = 3017,
415  wkbPoint25D = 0x80000001,
416  wkbLineString25D = 0x80000002,
417  wkbPolygon25D = 0x80000003,
418  wkbMultiPoint25D = 0x80000004,
419  wkbMultiLineString25D = 0x80000005,
420  wkbMultiPolygon25D = 0x80000006,
424 
439 typedef enum
440 {
444 } OGRwkbVariant;
445 
446 
448 #ifndef GDAL_COMPILATION
449 #define wkb25DBit 0x80000000
450 #endif
451 
453 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
454 
458 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
459 
463 #define wkbSetZ(x) OGR_GT_SetZ(x)
464 
468 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
469 
473 #define wkbSetM(x) OGR_GT_SetM(x)
474 
475 #define ogrZMarker 0x21125711
476 
477 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
479  OGRwkbGeometryType eExtra );
481  OGRwkbGeometryType eExtra,
482  int bAllowPromotingToCurves );
486 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
487 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
488 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
489 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
490  OGRwkbGeometryType eSuperType );
491 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
492 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
497 
498 typedef enum
499 {
500  wkbXDR = 0, /* MSB/Sun/Motoroloa: Most Significant Byte First */
501  wkbNDR = 1 /* LSB/Intel/Vax: Least Significant Byte First */
502 } OGRwkbByteOrder;
503 
504 #ifndef NO_HACK_FOR_IBM_DB2_V72
505 # define HACK_FOR_IBM_DB2_V72
506 #endif
507 
508 #ifdef HACK_FOR_IBM_DB2_V72
509 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
510 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x)))
511 #else
512 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
513 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
514 #endif
515 
519 #define ALTER_NAME_FLAG 0x1
520 
524 #define ALTER_TYPE_FLAG 0x2
525 
529 #define ALTER_WIDTH_PRECISION_FLAG 0x4
530 
535 #define ALTER_NULLABLE_FLAG 0x8
536 
541 #define ALTER_DEFAULT_FLAG 0x10
542 
546 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG)
547 
548 
553 #define OGR_F_VAL_NULL 0x00000001
554 
559 #define OGR_F_VAL_GEOM_TYPE 0x00000002
560 
565 #define OGR_F_VAL_WIDTH 0x00000004
566 
574 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
575 
582 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
583 
588 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
589 
590 /************************************************************************/
591 /* ogr_feature.h related definitions. */
592 /************************************************************************/
593 
600 typedef enum
616  OFTMaxType = 13
617 } OGRFieldType;
618 
628 typedef enum
629 { OFSTNone = 0,
637  OFSTMaxSubType = 3
639 
644 typedef enum
645 {
646  OJUndefined = 0,
647  OJLeft = 1,
648  OJRight = 2
650 
651 #define OGRNullFID -1
652 #define OGRUnsetMarker -21121
653 
654 /************************************************************************/
655 /* OGRField */
656 /************************************************************************/
657 
662 typedef union {
663  int Integer;
664  GIntBig Integer64;
665  double Real;
666  char *String;
667 
668  struct {
669  int nCount;
670  int *paList;
671  } IntegerList;
672 
673  struct {
674  int nCount;
675  GIntBig *paList;
676  } Integer64List;
677 
678  struct {
679  int nCount;
680  double *paList;
681  } RealList;
682 
683  struct {
684  int nCount;
685  char **paList;
686  } StringList;
687 
688  struct {
689  int nCount;
690  GByte *paData;
691  } Binary;
692 
693  struct {
694  int nMarker1;
695  int nMarker2;
696  } Set;
697 
698  struct {
699  GInt16 Year;
700  GByte Month;
701  GByte Day;
702  GByte Hour;
703  GByte Minute;
704  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
705  100=GMT, 104=GMT+1, 80=GMT-5, etc */
706  GByte Reserved; /* must be set to 0 */
707  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
708  } Date;
709 } OGRField;
710 
711 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5)
712 
713 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
714  int nOptions );
715 
716 /* -------------------------------------------------------------------- */
717 /* Constants from ogrsf_frmts.h for capabilities. */
718 /* -------------------------------------------------------------------- */
719 #define OLCRandomRead "RandomRead"
720 #define OLCSequentialWrite "SequentialWrite"
721 #define OLCRandomWrite "RandomWrite"
722 #define OLCFastSpatialFilter "FastSpatialFilter"
723 #define OLCFastFeatureCount "FastFeatureCount"
724 #define OLCFastGetExtent "FastGetExtent"
725 #define OLCCreateField "CreateField"
726 #define OLCDeleteField "DeleteField"
727 #define OLCReorderFields "ReorderFields"
728 #define OLCAlterFieldDefn "AlterFieldDefn"
729 #define OLCTransactions "Transactions"
730 #define OLCDeleteFeature "DeleteFeature"
731 #define OLCFastSetNextByIndex "FastSetNextByIndex"
732 #define OLCStringsAsUTF8 "StringsAsUTF8"
733 #define OLCIgnoreFields "IgnoreFields"
734 #define OLCCreateGeomField "CreateGeomField"
735 #define OLCCurveGeometries "CurveGeometries"
736 #define OLCMeasuredGeometries "MeasuredGeometries"
737 
738 #define ODsCCreateLayer "CreateLayer"
739 #define ODsCDeleteLayer "DeleteLayer"
740 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
741 #define ODsCCurveGeometries "CurveGeometries"
742 #define ODsCTransactions "Transactions"
743 #define ODsCEmulatedTransactions "EmulatedTransactions"
744 #define ODsCMeasuredGeometries "MeasuredGeometries"
745 
746 #define ODrCCreateDataSource "CreateDataSource"
747 #define ODrCDeleteDataSource "DeleteDataSource"
748 
749 /* -------------------------------------------------------------------- */
750 /* Layer metadata items. */
751 /* -------------------------------------------------------------------- */
756 #define OLMD_FID64 "OLMD_FID64"
757 
758 /************************************************************************/
759 /* ogr_featurestyle.h related definitions. */
760 /************************************************************************/
761 
767 {
768  OGRSTCNone = 0,
769  OGRSTCPen = 1,
770  OGRSTCBrush = 2,
771  OGRSTCSymbol = 3,
772  OGRSTCLabel = 4,
773  OGRSTCVector = 5
774 } OGRSTClassId;
775 
780 {
781  OGRSTUGround = 0,
782  OGRSTUPixel = 1,
783  OGRSTUPoints = 2,
784  OGRSTUMM = 3,
785  OGRSTUCM = 4,
786  OGRSTUInches = 5
787 } OGRSTUnitId;
788 
793 {
794  OGRSTPenColor = 0,
795  OGRSTPenWidth = 1,
796  OGRSTPenPattern = 2,
797  OGRSTPenId = 3,
798  OGRSTPenPerOffset = 4,
799  OGRSTPenCap = 5,
800  OGRSTPenJoin = 6,
801  OGRSTPenPriority = 7,
802  OGRSTPenLast = 8
803 
804 } OGRSTPenParam;
805 
810 {
811  OGRSTBrushFColor = 0,
812  OGRSTBrushBColor = 1,
813  OGRSTBrushId = 2,
814  OGRSTBrushAngle = 3,
815  OGRSTBrushSize = 4,
816  OGRSTBrushDx = 5,
817  OGRSTBrushDy = 6,
818  OGRSTBrushPriority = 7,
819  OGRSTBrushLast = 8
820 
822 
823 
828 {
829  OGRSTSymbolId = 0,
830  OGRSTSymbolAngle = 1,
831  OGRSTSymbolColor = 2,
832  OGRSTSymbolSize = 3,
833  OGRSTSymbolDx = 4,
834  OGRSTSymbolDy = 5,
835  OGRSTSymbolStep = 6,
836  OGRSTSymbolPerp = 7,
837  OGRSTSymbolOffset = 8,
838  OGRSTSymbolPriority = 9,
839  OGRSTSymbolFontName = 10,
840  OGRSTSymbolOColor = 11,
841  OGRSTSymbolLast = 12
842 
844 
849 {
850  OGRSTLabelFontName = 0,
851  OGRSTLabelSize = 1,
852  OGRSTLabelTextString = 2,
853  OGRSTLabelAngle = 3,
854  OGRSTLabelFColor = 4,
855  OGRSTLabelBColor = 5,
856  OGRSTLabelPlacement = 6,
857  OGRSTLabelAnchor = 7,
858  OGRSTLabelDx = 8,
859  OGRSTLabelDy = 9,
860  OGRSTLabelPerp = 10,
861  OGRSTLabelBold = 11,
862  OGRSTLabelItalic = 12,
863  OGRSTLabelUnderline = 13,
864  OGRSTLabelPriority = 14,
865  OGRSTLabelStrikeout = 15,
866  OGRSTLabelStretch = 16,
867  OGRSTLabelAdjHor = 17,
868  OGRSTLabelAdjVert = 18,
869  OGRSTLabelHColor = 19,
870  OGRSTLabelOColor = 20,
871  OGRSTLabelLast = 21
872 
874 
875 /* ------------------------------------------------------------------- */
876 /* Version checking */
877 /* -------------------------------------------------------------------- */
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 CPL_C_END
909 
910 #endif /* ndef OGR_CORE_H_INCLUDED */
ISO SQL/MM Part 3.
Definition: ogr_core.h:402
< a Triangle.
Definition: ogr_core.h:365
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:442
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
ISO SQL/MM Part 3.
Definition: ogr_core.h:386
ISO SQL/MM Part 3.
Definition: ogr_core.h:389
ISO SQL/MM Part 3.
Definition: ogr_core.h:380
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:628
wkbCurve with Z component.
Definition: ogr_core.h:373
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:848
ISO SQL/MM Part 3.
Definition: ogr_core.h:376
wkbMultiSurface with Z component.
Definition: ogr_core.h:372
Core portability definitions for CPL.
ISO SQL/MM Part 3.
Definition: ogr_core.h:388
ISO SQL/MM Part 3.
Definition: ogr_core.h:385
2.5D extension as per 99-402
Definition: ogr_core.h:420
No subtype.
Definition: ogr_core.h:630
List of 64bit integers.
Definition: ogr_core.h:615
2.5D extension as per 99-402
Definition: ogr_core.h:419
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:340
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3...
Definition: ogr_core.h:359
wkbMultiCurve with Z component.
Definition: ogr_core.h:371
ISO SQL/MM Part 3.
Definition: ogr_core.h:382
Time.
Definition: ogr_core.h:612
non-standard, just for createGeometry()
Definition: ogr_core.h:366
Date.
Definition: ogr_core.h:611
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
ISO SQL/MM Part 3.
Definition: ogr_core.h:403
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5688
wkbCompoundCurve with Z component.
Definition: ogr_core.h:369
2.5D extension as per 99-402
Definition: ogr_core.h:416
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
ISO SQL/MM Part 3.
Definition: ogr_core.h:393
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:792
List of doubles.
Definition: ogr_core.h:605
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:827
ISO SQL/MM Part 3.
Definition: ogr_core.h:413
geometric object that is a collection of 1 or more geometric objects, standard WKB ...
Definition: ogr_core.h:346
1-dimensional geometric object with linear interpolation between Points, standard WKB ...
Definition: ogr_core.h:338
Double Precision floating point.
Definition: ogr_core.h:604
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5594
unknown type, non-standard
Definition: ogr_core.h:335
2.5D extension as per 99-402
Definition: ogr_core.h:421
ISO SQL/MM Part 3.
Definition: ogr_core.h:383
Surface (abstract type).
Definition: ogr_core.h:358
ISO SQL/MM Part 3.
Definition: ogr_core.h:406
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:5959
ISO SQL/MM Part 3.
Definition: ogr_core.h:409
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:5715
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:343
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5665
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:5643
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
Raw Binary data.
Definition: ogr_core.h:610
Single 64bit integer.
Definition: ogr_core.h:614
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:5742
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:355
wkbSurface with Z component.
Definition: ogr_core.h:374
2.5D extension as per 99-402
Definition: ogr_core.h:418
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:333
ISO SQL/MM Part 3.
Definition: ogr_core.h:379
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:5981
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:1826
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2440
ISO SQL/MM Part 3.
Definition: ogr_core.h:394
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2476
ISO SQL/MM Part 3.
Definition: ogr_core.h:397
wkbCurvePolygon with Z component.
Definition: ogr_core.h:370
Signed 16-bit integer.
Definition: ogr_core.h:634
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:361
ISO SQL/MM Part 3.
Definition: ogr_core.h:405
ISO SQL/MM Part 3.
Definition: ogr_core.h:392
ISO SQL/MM Part 3.
Definition: ogr_core.h:375
Boolean integer.
Definition: ogr_core.h:632
ISO SQL/MM Part 3.
Definition: ogr_core.h:384
2.5D extension as per 99-402
Definition: ogr_core.h:417
ISO SQL/MM Part 3.
Definition: ogr_core.h:408
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:344
ISO SQL/MM Part 3.
Definition: ogr_core.h:399
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:351
OGRJustification
Display justification for field values.
Definition: ogr_core.h:644
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:779
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:443
deprecated
Definition: ogr_core.h:609
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:349
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:337
Single precision (32 bit) floating point.
Definition: ogr_core.h:636
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:1938
OGRFieldType
List of feature field types.
Definition: ogr_core.h:600
ISO SQL/MM Part 3.
Definition: ogr_core.h:390
ISO SQL/MM Part 3.
Definition: ogr_core.h:401
Date and Time.
Definition: ogr_core.h:613
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:441
Simple container for a bounding region in 3D.
Definition: ogr_core.h:161
ISO SQL/MM Part 3.
Definition: ogr_core.h:377
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5896
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:439
wkbCircularString with Z component.
Definition: ogr_core.h:368
deprecated
Definition: ogr_core.h:608
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:809
ISO SQL/MM Part 3.
Definition: ogr_core.h:410
ISO SQL/MM Part 3.
Definition: ogr_core.h:412
Simple container for a bounding region.
Definition: ogr_core.h:48
OGRFeature field attribute value union.
Definition: ogr_core.h:662
ISO SQL/MM Part 3.
Definition: ogr_core.h:411
ISO SQL/MM Part 3.
Definition: ogr_core.h:400
ISO SQL/MM Part 3.
Definition: ogr_core.h:381
ISO SQL/MM Part 3.
Definition: ogr_core.h:407
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5797
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:356
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:766
ISO SQL/MM Part 3.
Definition: ogr_core.h:395
ISO SQL/MM Part 3.
Definition: ogr_core.h:398
ISO SQL/MM Part 3.
Definition: ogr_core.h:404
planar surface, defined by 1 exterior boundary and zero or more interior boundaries, that are curves.
Definition: ogr_core.h:352
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5850
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:345
String of ASCII chars.
Definition: ogr_core.h:606
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:5619
2.5D extension as per 99-402
Definition: ogr_core.h:415
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2247
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:933
Array of strings.
Definition: ogr_core.h:607
ISO SQL/MM Part 3.
Definition: ogr_core.h:391
List of 32bit integers.
Definition: ogr_core.h:603
ISO SQL/MM Part 3.
Definition: ogr_core.h:387
Simple 32bit integer.
Definition: ogr_core.h:602
Curve (abstract type).
Definition: ogr_core.h:357
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:5938

Generated for GDAL by doxygen 1.8.11.