GDAL
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 1e082b59d067cf2edf5713e15101c0b369d37e9a 2018-12-02 22:16:23 +0300 drons $
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 #if defined(GDAL_COMPILATION)
36 #define DO_NOT_DEFINE_GDAL_RELEASE_DATE_AND_GDAL_RELEASE_NAME
37 #endif
38 #include "gdal_version.h"
39 
51 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP)
52 
53 extern "C++"
54 {
55 #include <limits>
56 
57 // cppcheck-suppress copyCtorAndEqOperator
58 class CPL_DLL OGREnvelope
59 {
60  public:
61  OGREnvelope() : MinX(std::numeric_limits<double>::infinity()),
62  MaxX(-std::numeric_limits<double>::infinity()),
63  MinY(std::numeric_limits<double>::infinity()),
64  MaxY(-std::numeric_limits<double>::infinity())
65  {
66  }
67 
68  OGREnvelope(const OGREnvelope& oOther) :
69  MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
70  {
71  }
72 
73  double MinX;
74  double MaxX;
75  double MinY;
76  double MaxY;
77 
78 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
79 #pragma GCC diagnostic push
80 #pragma GCC diagnostic ignored "-Wfloat-equal"
81 #endif
82  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
83 
84 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
85 #pragma GCC diagnostic pop
86 #endif
87 
88  void Merge( OGREnvelope const& sOther ) {
89  MinX = MIN(MinX,sOther.MinX);
90  MaxX = MAX(MaxX,sOther.MaxX);
91  MinY = MIN(MinY,sOther.MinY);
92  MaxY = MAX(MaxY,sOther.MaxY);
93  }
94 
95  void Merge( double dfX, double dfY ) {
96  MinX = MIN(MinX,dfX);
97  MaxX = MAX(MaxX,dfX);
98  MinY = MIN(MinY,dfY);
99  MaxY = MAX(MaxY,dfY);
100  }
101 
102  void Intersect( OGREnvelope const& sOther ) {
103  if(Intersects(sOther))
104  {
105  if( IsInit() )
106  {
107  MinX = MAX(MinX,sOther.MinX);
108  MaxX = MIN(MaxX,sOther.MaxX);
109  MinY = MAX(MinY,sOther.MinY);
110  MaxY = MIN(MaxY,sOther.MaxY);
111  }
112  else
113  {
114  MinX = sOther.MinX;
115  MaxX = sOther.MaxX;
116  MinY = sOther.MinY;
117  MaxY = sOther.MaxY;
118  }
119  }
120  else
121  {
122  *this = OGREnvelope();
123  }
124  }
125 
126  int Intersects(OGREnvelope const& other) const
127  {
128  return MinX <= other.MaxX && MaxX >= other.MinX &&
129  MinY <= other.MaxY && MaxY >= other.MinY;
130  }
131 
132  int Contains(OGREnvelope const& other) const
133  {
134  return MinX <= other.MinX && MinY <= other.MinY &&
135  MaxX >= other.MaxX && MaxY >= other.MaxY;
136  }
137 };
138 
139 } // extern "C++"
140 
141 #else
142 typedef struct
143 {
144  double MinX;
145  double MaxX;
146  double MinY;
147  double MaxY;
148 } OGREnvelope;
149 #endif
150 
155 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP)
156 
157 extern "C++" {
158 
159 // cppcheck-suppress copyCtorAndEqOperator
160 class CPL_DLL OGREnvelope3D : public OGREnvelope
161 {
162  public:
163  OGREnvelope3D() : OGREnvelope(),
164  MinZ(std::numeric_limits<double>::infinity()),
165  MaxZ(-std::numeric_limits<double>::infinity())
166  {
167  }
168 
169  OGREnvelope3D(const OGREnvelope3D& oOther) :
170  OGREnvelope(oOther),
171  MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
172  {
173  }
174 
175  double MinZ;
176  double MaxZ;
177 
178 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
179 #pragma GCC diagnostic push
180 #pragma GCC diagnostic ignored "-Wfloat-equal"
181 #endif
182  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
183 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
184 #pragma GCC diagnostic pop
185 #endif
186 
187  void Merge( OGREnvelope3D const& sOther ) {
188  MinX = MIN(MinX,sOther.MinX);
189  MaxX = MAX(MaxX,sOther.MaxX);
190  MinY = MIN(MinY,sOther.MinY);
191  MaxY = MAX(MaxY,sOther.MaxY);
192  MinZ = MIN(MinZ,sOther.MinZ);
193  MaxZ = MAX(MaxZ,sOther.MaxZ);
194  }
195 
196  void Merge( double dfX, double dfY, double dfZ ) {
197  MinX = MIN(MinX,dfX);
198  MaxX = MAX(MaxX,dfX);
199  MinY = MIN(MinY,dfY);
200  MaxY = MAX(MaxY,dfY);
201  MinZ = MIN(MinZ,dfZ);
202  MaxZ = MAX(MaxZ,dfZ);
203  }
204 
205  void Intersect( OGREnvelope3D const& sOther ) {
206  if(Intersects(sOther))
207  {
208  if( IsInit() )
209  {
210  MinX = MAX(MinX,sOther.MinX);
211  MaxX = MIN(MaxX,sOther.MaxX);
212  MinY = MAX(MinY,sOther.MinY);
213  MaxY = MIN(MaxY,sOther.MaxY);
214  MinZ = MAX(MinZ,sOther.MinZ);
215  MaxZ = MIN(MaxZ,sOther.MaxZ);
216  }
217  else
218  {
219  MinX = sOther.MinX;
220  MaxX = sOther.MaxX;
221  MinY = sOther.MinY;
222  MaxY = sOther.MaxY;
223  MinZ = sOther.MinZ;
224  MaxZ = sOther.MaxZ;
225  }
226  }
227  else
228  {
229  *this = OGREnvelope3D();
230  }
231  }
232 
233  int Intersects(OGREnvelope3D const& other) const
234  {
235  return MinX <= other.MaxX && MaxX >= other.MinX &&
236  MinY <= other.MaxY && MaxY >= other.MinY &&
237  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
238  }
239 
240  int Contains(OGREnvelope3D const& other) const
241  {
242  return MinX <= other.MinX && MinY <= other.MinY &&
243  MaxX >= other.MaxX && MaxY >= other.MaxY &&
244  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
245  }
246 };
247 
248 } // extern "C++"
249 
250 #else
251 typedef struct
252 {
253  double MinX;
254  double MaxX;
255  double MinY;
256  double MaxY;
257  double MinZ;
258  double MaxZ;
259 } OGREnvelope3D;
260 #endif
261 
264 
266 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
267 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
268 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
269 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
270 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
273 #ifdef STRICT_OGRERR_TYPE
274 
275 typedef enum
276 {
277  OGRERR_NONE,
287 } OGRErr;
288 #else
289 
290 typedef int OGRErr;
291 
292 #define OGRERR_NONE 0
293 #define OGRERR_NOT_ENOUGH_DATA 1
294 #define OGRERR_NOT_ENOUGH_MEMORY 2
295 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
296 #define OGRERR_UNSUPPORTED_OPERATION 4
297 #define OGRERR_CORRUPT_DATA 5
298 #define OGRERR_FAILURE 6
299 #define OGRERR_UNSUPPORTED_SRS 7
300 #define OGRERR_INVALID_HANDLE 8
301 #define OGRERR_NON_EXISTING_FEATURE 9
303 #endif
304 
306 typedef int OGRBoolean;
307 
308 /* -------------------------------------------------------------------- */
309 /* ogr_geometry.h related definitions. */
310 /* -------------------------------------------------------------------- */
311 
317 typedef enum
318 {
321  wkbPoint = 1,
341  wkbCurve = 13,
342  wkbSurface = 14,
345  wkbTIN = 16,
347  wkbTriangle = 17,
349  wkbNone = 100,
355  wkbMultiCurveZ = 1011,
357  wkbCurveZ = 1013,
358  wkbSurfaceZ = 1014,
360  wkbTINZ = 1016,
361  wkbTriangleZ = 1017,
363  wkbPointM = 2001,
364  wkbLineStringM = 2002,
365  wkbPolygonM = 2003,
366  wkbMultiPointM = 2004,
373  wkbMultiCurveM = 2011,
375  wkbCurveM = 2013,
376  wkbSurfaceM = 2014,
378  wkbTINM = 2016,
379  wkbTriangleM = 2017,
381  wkbPointZM = 3001,
383  wkbPolygonZM = 3003,
393  wkbCurveZM = 3013,
394  wkbSurfaceZM = 3014,
396  wkbTINZM = 3016,
397  wkbTriangleZM = 3017,
399  wkbPoint25D = 0x80000001,
400  wkbLineString25D = 0x80000002,
401  wkbPolygon25D = 0x80000003,
402  wkbMultiPoint25D = 0x80000004,
403  wkbMultiLineString25D = 0x80000005,
404  wkbMultiPolygon25D = 0x80000006,
408 
423 typedef enum
424 {
428 } OGRwkbVariant;
429 
430 #ifndef GDAL_COMPILATION
431 
432 #define wkb25DBit 0x80000000
433 #endif
434 
435 #ifndef __cplusplus
436 
437 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
438 #else
439 
440 #define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
441 #endif
442 
446 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
447 
451 #define wkbSetZ(x) OGR_GT_SetZ(x)
452 
456 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
457 
461 #define wkbSetM(x) OGR_GT_SetM(x)
462 
463 #ifndef DOXYGEN_SKIP
464 #define ogrZMarker 0x21125711
465 #endif
466 
467 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
469  OGRwkbGeometryType eExtra );
471  OGRwkbGeometryType eExtra,
472  int bAllowPromotingToCurves );
476 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
477 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
478 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
479 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
480  OGRwkbGeometryType eSuperType );
481 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
482 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
487 
489 typedef enum
490 {
491  wkbXDR = 0,
492  wkbNDR = 1
494 
495 #ifndef DOXYGEN_SKIP
496 
497 #ifndef NO_HACK_FOR_IBM_DB2_V72
498 # define HACK_FOR_IBM_DB2_V72
499 #endif
500 
501 #ifdef HACK_FOR_IBM_DB2_V72
502 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
503 # define DB2_V72_UNFIX_BYTE_ORDER(x) CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x))
504 #else
505 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
506 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
507 #endif
508 
509 #endif /* #ifndef DOXYGEN_SKIP */
510 
514 #define ALTER_NAME_FLAG 0x1
515 
519 #define ALTER_TYPE_FLAG 0x2
520 
524 #define ALTER_WIDTH_PRECISION_FLAG 0x4
525 
530 #define ALTER_NULLABLE_FLAG 0x8
531 
536 #define ALTER_DEFAULT_FLAG 0x10
537 
541 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG)
542 
547 #define OGR_F_VAL_NULL 0x00000001
548 
553 #define OGR_F_VAL_GEOM_TYPE 0x00000002
554 
559 #define OGR_F_VAL_WIDTH 0x00000004
560 
568 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
569 
576 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
577 
582 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
583 
584 /************************************************************************/
585 /* ogr_feature.h related definitions. */
586 /************************************************************************/
587 
594 typedef enum
610  OFTMaxType = 13
611 } OGRFieldType;
612 
622 typedef enum
623 { OFSTNone = 0,
634  OFSTJSON = 4,
635  OFSTMaxSubType = 4
637 
642 typedef enum
643 {
644  OJUndefined = 0,
645  OJLeft = 1,
646  OJRight = 2
648 
650 #define OGRNullFID -1
651 
652 /* Special value for an unknown field type. This should only be used
653  * while reading a file. At the end of file any unknown types should
654  * be set to OFTString.
655 */
657 #define OGRUnknownType static_cast<OGRFieldType>(-1)
658 
665 #define OGRUnsetMarker -21121
666 
673 #define OGRNullMarker -21122
674 
675 /************************************************************************/
676 /* OGRField */
677 /************************************************************************/
678 
683 typedef union {
685  int Integer;
686  GIntBig Integer64;
687  double Real;
688  char *String;
689 
690  struct {
691  int nCount;
692  int *paList;
693  } IntegerList;
694 
695  struct {
696  int nCount;
697  GIntBig *paList;
698  } Integer64List;
699 
700  struct {
701  int nCount;
702  double *paList;
703  } RealList;
704 
705  struct {
706  int nCount;
707  char **paList;
708  } StringList;
709 
710  struct {
711  int nCount;
712  GByte *paData;
713  } Binary;
714 
715  struct {
716  int nMarker1;
717  int nMarker2;
718  int nMarker3;
719  } Set;
720 
721  struct {
722  GInt16 Year;
723  GByte Month;
724  GByte Day;
725  GByte Hour;
726  GByte Minute;
727  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
728  100=GMT, 104=GMT+1, 80=GMT-5, etc */
729  GByte Reserved; /* must be set to 0 */
730  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
731  } Date;
733 } OGRField;
734 
735 #ifdef __cplusplus
736 
737 inline int OGR_GET_MS(float fSec) {
738  if( CPLIsNan(fSec) ) return 0;
739  if( fSec >= 999 ) return 999;
740  if( fSec <= 0 ) return 0;
741  const float fValue = (fSec - static_cast<int>(fSec)) * 1000 + 0.5f;
742  return static_cast<int>(fValue);
743 }
744 #endif // __cplusplus
745 
746 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
747  int nOptions );
748 
749 /* -------------------------------------------------------------------- */
750 /* Constants from ogrsf_frmts.h for capabilities. */
751 /* -------------------------------------------------------------------- */
752 #define OLCRandomRead "RandomRead"
753 #define OLCSequentialWrite "SequentialWrite"
754 #define OLCRandomWrite "RandomWrite"
755 #define OLCFastSpatialFilter "FastSpatialFilter"
756 #define OLCFastFeatureCount "FastFeatureCount"
757 #define OLCFastGetExtent "FastGetExtent"
758 #define OLCCreateField "CreateField"
759 #define OLCDeleteField "DeleteField"
760 #define OLCReorderFields "ReorderFields"
761 #define OLCAlterFieldDefn "AlterFieldDefn"
762 #define OLCTransactions "Transactions"
763 #define OLCDeleteFeature "DeleteFeature"
764 #define OLCFastSetNextByIndex "FastSetNextByIndex"
765 #define OLCStringsAsUTF8 "StringsAsUTF8"
766 #define OLCIgnoreFields "IgnoreFields"
767 #define OLCCreateGeomField "CreateGeomField"
768 #define OLCCurveGeometries "CurveGeometries"
769 #define OLCMeasuredGeometries "MeasuredGeometries"
771 #define ODsCCreateLayer "CreateLayer"
772 #define ODsCDeleteLayer "DeleteLayer"
773 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
774 #define ODsCCurveGeometries "CurveGeometries"
775 #define ODsCTransactions "Transactions"
776 #define ODsCEmulatedTransactions "EmulatedTransactions"
777 #define ODsCMeasuredGeometries "MeasuredGeometries"
778 #define ODsCRandomLayerRead "RandomLayerRead"
779 #define ODsCRandomLayerWrite "RandomLayerWrite "
781 #define ODrCCreateDataSource "CreateDataSource"
782 #define ODrCDeleteDataSource "DeleteDataSource"
784 /* -------------------------------------------------------------------- */
785 /* Layer metadata items. */
786 /* -------------------------------------------------------------------- */
791 #define OLMD_FID64 "OLMD_FID64"
792 
793 /************************************************************************/
794 /* ogr_featurestyle.h related definitions. */
795 /************************************************************************/
796 
802 {
804  OGRSTCPen = 1,
809 } OGRSTClassId;
810 
815 {
819  OGRSTUMM = 3,
820  OGRSTUCM = 4,
822 } OGRSTUnitId;
823 
828 {
837 #ifndef DOXYGEN_SKIP
838  OGRSTPenLast = 8
839 #endif
840 } OGRSTPenParam;
841 
846 {
855 #ifndef DOXYGEN_SKIP
856  OGRSTBrushLast = 8
857 #endif
858 
860 
865 {
878 #ifndef DOXYGEN_SKIP
879  OGRSTSymbolLast = 12
880 #endif
882 
887 {
909 #ifndef DOXYGEN_SKIP
910  OGRSTLabelLast = 21
911 #endif
913 
914 /* ------------------------------------------------------------------- */
915 /* Version checking */
916 /* -------------------------------------------------------------------- */
917 
918 #ifndef DOXYGEN_SKIP
919 
920 /* Note to developers : please keep this section in sync with gdal.h */
921 
922 #ifndef GDAL_VERSION_INFO_DEFINED
923 #define GDAL_VERSION_INFO_DEFINED
924 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
925 #endif
926 
927 #ifndef GDAL_CHECK_VERSION
928 
940 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
941  const char* pszCallingComponentName);
942 
944 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
945  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
946 
947 #endif
948 
949 #endif /* #ifndef DOXYGEN_SKIP */
950 
951 CPL_C_END
952 
953 #endif /* ndef OGR_CORE_H_INCLUDED */
ISO SQL/MM Part 3.
Definition: ogr_core.h:386
non-standard, for pure attribute records
Definition: ogr_core.h:349
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:426
Dy.
Definition: ogr_core.h:871
Outline color.
Definition: ogr_core.h:908
Id.
Definition: ogr_core.h:866
Dx.
Definition: ogr_core.h:852
Font name.
Definition: ogr_core.h:888
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
Highlight color.
Definition: ogr_core.h:907
Foreground color.
Definition: ogr_core.h:847
ISO SQL/MM Part 3.
Definition: ogr_core.h:370
ISO SQL/MM Part 3.
Definition: ogr_core.h:373
ISO SQL/MM Part 3.
Definition: ogr_core.h:364
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:622
wkbCurve with Z component.
Definition: ogr_core.h:357
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:297
Color.
Definition: ogr_core.h:829
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:886
Background color.
Definition: ogr_core.h:848
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition: ogr_core.h:737
ISO SQL/MM Part 3.
Definition: ogr_core.h:360
wkbMultiSurface with Z component.
Definition: ogr_core.h:356
Core portability definitions for CPL.
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
ISO SQL/MM Part 3.
Definition: ogr_core.h:372
ISO SQL/MM Part 3.
Definition: ogr_core.h:369
Anchor.
Definition: ogr_core.h:895
2.5D extension as per 99-402
Definition: ogr_core.h:404
No subtype.
Definition: ogr_core.h:624
Size.
Definition: ogr_core.h:869
List of 64bit integers.
Definition: ogr_core.h:609
Priority.
Definition: ogr_core.h:854
Offset.
Definition: ogr_core.h:874
2.5D extension as per 99-402
Definition: ogr_core.h:403
Angle.
Definition: ogr_core.h:891
Join.
Definition: ogr_core.h:835
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:324
Color.
Definition: ogr_core.h:868
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3...
Definition: ogr_core.h:343
wkbMultiCurve with Z component.
Definition: ogr_core.h:355
ISO SQL/MM Part 3.
Definition: ogr_core.h:366
Time.
Definition: ogr_core.h:606
Underline.
Definition: ogr_core.h:901
non-standard, just for createGeometry()
Definition: ogr_core.h:350
Date.
Definition: ogr_core.h:605
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition: gdal_misc.cpp:2305
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
ISO SQL/MM Part 3.
Definition: ogr_core.h:387
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6326
OBSOLETE; do not use.
Definition: ogr_core.h:906
short GInt16
Int16 type.
Definition: cpl_port.h:211
Dy.
Definition: ogr_core.h:853
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:306
wkbCompoundCurve with Z component.
Definition: ogr_core.h:353
2.5D extension as per 99-402
Definition: ogr_core.h:400
#define OGRERR_NONE
Success.
Definition: ogr_core.h:292
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
Bold.
Definition: ogr_core.h:899
ISO SQL/MM Part 3.
Definition: ogr_core.h:377
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:827
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
Pen.
Definition: ogr_core.h:804
Ground unit.
Definition: ogr_core.h:816
Id.
Definition: ogr_core.h:849
Cap.
Definition: ogr_core.h:834
List of doubles.
Definition: ogr_core.h:599
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:864
ISO SQL/MM Part 3.
Definition: ogr_core.h:397
geometric object that is a collection of 1 or more geometric objects, standard WKB ...
Definition: ogr_core.h:330
1-dimensional geometric object with linear interpolation between Points, standard WKB ...
Definition: ogr_core.h:322
Perpendicular.
Definition: ogr_core.h:873
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:489
Double Precision floating point.
Definition: ogr_core.h:598
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6232
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:296
unknown type, non-standard
Definition: ogr_core.h:319
Perpendicular offset.
Definition: ogr_core.h:833
2.5D extension as per 99-402
Definition: ogr_core.h:405
ISO SQL/MM Part 3.
Definition: ogr_core.h:367
Dx.
Definition: ogr_core.h:896
Surface (abstract type).
Definition: ogr_core.h:342
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:295
ISO SQL/MM Part 3.
Definition: ogr_core.h:390
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:6612
Angle.
Definition: ogr_core.h:850
ISO SQL/MM Part 3.
Definition: ogr_core.h:393
a Triangle.
Definition: ogr_core.h:347
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:2183
Size.
Definition: ogr_core.h:889
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:6353
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:327
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6303
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6281
MSB/Sun/Motoroloa: Most Significant Byte First.
Definition: ogr_core.h:491
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
Raw Binary data.
Definition: ogr_core.h:604
Outline color.
Definition: ogr_core.h:877
Single 64bit integer.
Definition: ogr_core.h:608
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:399
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6380
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:339
wkbSurface with Z component.
Definition: ogr_core.h:358
2.5D extension as per 99-402
Definition: ogr_core.h:402
Id.
Definition: ogr_core.h:832
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:317
ISO SQL/MM Part 3.
Definition: ogr_core.h:363
Points.
Definition: ogr_core.h:818
Step.
Definition: ogr_core.h:872
Priority.
Definition: ogr_core.h:875
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6634
JSON content.
Definition: ogr_core.h:634
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:294
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2645
ISO SQL/MM Part 3.
Definition: ogr_core.h:378
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition: ogr_core.h:301
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2682
ISO SQL/MM Part 3.
Definition: ogr_core.h:381
wkbCurvePolygon with Z component.
Definition: ogr_core.h:354
Signed 16-bit integer.
Definition: ogr_core.h:628
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:345
Size.
Definition: ogr_core.h:851
ISO SQL/MM Part 3.
Definition: ogr_core.h:389
Centimeter.
Definition: ogr_core.h:820
ISO SQL/MM Part 3.
Definition: ogr_core.h:376
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:300
ISO SQL/MM Part 3.
Definition: ogr_core.h:359
Boolean integer.
Definition: ogr_core.h:626
ISO SQL/MM Part 3.
Definition: ogr_core.h:368
2.5D extension as per 99-402
Definition: ogr_core.h:401
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:397
Label.
Definition: ogr_core.h:807
Pattern.
Definition: ogr_core.h:831
ISO SQL/MM Part 3.
Definition: ogr_core.h:392
Priority.
Definition: ogr_core.h:836
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:328
ISO SQL/MM Part 3.
Definition: ogr_core.h:383
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:335
OBSOLETE; do not use.
Definition: ogr_core.h:905
LSB/Intel/Vax: Least Significant Byte First.
Definition: ogr_core.h:492
OGRJustification
Display justification for field values.
Definition: ogr_core.h:642
Strike out.
Definition: ogr_core.h:903
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:814
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:427
deprecated
Definition: ogr_core.h:603
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:333
Stretch.
Definition: ogr_core.h:904
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:321
Single precision (32 bit) floating point.
Definition: ogr_core.h:630
Pixel.
Definition: ogr_core.h:817
Placement.
Definition: ogr_core.h:894
OGRFieldType
List of feature field types.
Definition: ogr_core.h:594
ISO SQL/MM Part 3.
Definition: ogr_core.h:374
ISO SQL/MM Part 3.
Definition: ogr_core.h:385
Date and Time.
Definition: ogr_core.h:607
Text string.
Definition: ogr_core.h:890
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:425
Foreground color.
Definition: ogr_core.h:892
ISO SQL/MM Part 3.
Definition: ogr_core.h:361
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6549
Dx.
Definition: ogr_core.h:870
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:423
Perpendicular.
Definition: ogr_core.h:898
wkbCircularString with Z component.
Definition: ogr_core.h:352
deprecated
Definition: ogr_core.h:602
Italic.
Definition: ogr_core.h:900
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:845
ISO SQL/MM Part 3.
Definition: ogr_core.h:394
ISO SQL/MM Part 3.
Definition: ogr_core.h:396
OGRFeature field attribute value union.
Definition: ogr_core.h:683
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition: ogr_core.h:293
ISO SQL/MM Part 3.
Definition: ogr_core.h:395
ISO SQL/MM Part 3.
Definition: ogr_core.h:384
Inch.
Definition: ogr_core.h:821
ISO SQL/MM Part 3.
Definition: ogr_core.h:365
Width.
Definition: ogr_core.h:830
ISO SQL/MM Part 3.
Definition: ogr_core.h:391
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6444
Symbol.
Definition: ogr_core.h:806
Angle.
Definition: ogr_core.h:867
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:340
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:801
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
Background color.
Definition: ogr_core.h:893
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:248
Vector.
Definition: ogr_core.h:808
ISO SQL/MM Part 3.
Definition: ogr_core.h:379
ISO SQL/MM Part 3.
Definition: ogr_core.h:382
ISO SQL/MM Part 3.
Definition: ogr_core.h:388
planar surface, defined by 1 exterior boundary and zero or more interior boundaries, that are curves.
Definition: ogr_core.h:336
Font name.
Definition: ogr_core.h:876
Brush.
Definition: ogr_core.h:805
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:298
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:299
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6500
None.
Definition: ogr_core.h:803
int OGRErr
Simple container for a bounding region.
Definition: ogr_core.h:290
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:329
Dy.
Definition: ogr_core.h:897
String of ASCII chars.
Definition: ogr_core.h:600
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6257
2.5D extension as per 99-402
Definition: ogr_core.h:399
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2422
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:996
Array of strings.
Definition: ogr_core.h:601
ISO SQL/MM Part 3.
Definition: ogr_core.h:375
List of 32bit integers.
Definition: ogr_core.h:597
ISO SQL/MM Part 3.
Definition: ogr_core.h:371
Millimeter.
Definition: ogr_core.h:819
Simple 32bit integer.
Definition: ogr_core.h:596
Priority.
Definition: ogr_core.h:902
Curve (abstract type).
Definition: ogr_core.h:341
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6591

Generated for GDAL by doxygen 1.8.13.