GDAL
ogr_core.h
Go to the documentation of this file.
1/******************************************************************************
2 * $Id: ogr_core.h c3122bfce67aa8278d0163c0d41cfe0ab05bd691 2019-03-23 21:38:44 +0100 Even 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#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
53extern "C++"
54{
55#include <limits>
56
57class CPL_DLL OGREnvelope
58{
59 public:
60 OGREnvelope() : MinX(std::numeric_limits<double>::infinity()),
61 MaxX(-std::numeric_limits<double>::infinity()),
62 MinY(std::numeric_limits<double>::infinity()),
63 MaxY(-std::numeric_limits<double>::infinity())
64 {
65 }
66
67 OGREnvelope(const OGREnvelope& oOther) :
68 MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
69 {
70 }
71 OGREnvelope& operator=(const OGREnvelope&) = default;
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
142typedef 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
157extern "C++" {
158
159class CPL_DLL OGREnvelope3D : public OGREnvelope
160{
161 public:
162 OGREnvelope3D() : OGREnvelope(),
163 MinZ(std::numeric_limits<double>::infinity()),
164 MaxZ(-std::numeric_limits<double>::infinity())
165 {
166 }
167
168 OGREnvelope3D(const OGREnvelope3D& oOther) :
169 OGREnvelope(oOther),
170 MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
171 {
172 }
173 OGREnvelope3D& operator=(const OGREnvelope3D&) = default;
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
251typedef struct
252{
253 double MinX;
254 double MaxX;
255 double MinY;
256 double MaxY;
257 double MinZ;
258 double MaxZ;
259} OGREnvelope3D;
260#endif
264
266void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
267void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
268void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
269char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
270void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
273#ifdef STRICT_OGRERR_TYPE
275typedef enum
276{
287} OGRErr;
288#else
290typedef 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
306typedef int OGRBoolean;
307
308/* -------------------------------------------------------------------- */
309/* ogr_geometry.h related definitions. */
310/* -------------------------------------------------------------------- */
311
317typedef enum
318{
322 wkbLineString = 2,
324 wkbPolygon = 3,
336 wkbCurvePolygon = 10,
341 wkbCurve = 13,
345 wkbTIN = 16,
349 wkbNone = 100,
357 wkbCurveZ = 1013,
358 wkbSurfaceZ = 1014,
360 wkbTINZ = 1016,
363 wkbPointM = 2001,
365 wkbPolygonM = 2003,
375 wkbCurveM = 2013,
376 wkbSurfaceM = 2014,
378 wkbTINM = 2016,
381 wkbPointZM = 3001,
393 wkbCurveZM = 3013,
396 wkbTINZM = 3016,
399 wkbPoint25D = 0x80000001,
400 wkbLineString25D = 0x80000002,
401 wkbPolygon25D = 0x80000003,
402 wkbMultiPoint25D = 0x80000004,
404 wkbMultiPolygon25D = 0x80000006,
405 wkbGeometryCollection25D = 0x80000007
408
423typedef enum
424{
429
430#ifndef GDAL_COMPILATION
432#define wkb25DBit 0x80000000
433#endif
434
435#ifndef __cplusplus
437#define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
438#else
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
467const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
469 OGRwkbGeometryType eExtra );
471 OGRwkbGeometryType eExtra,
472 int bAllowPromotingToCurves );
476OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
477int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
478int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
479int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
480 OGRwkbGeometryType eSuperType );
487
489typedef 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
594typedef enum
610 OFTMaxType = 13
612
622typedef enum
623{ OFSTNone = 0,
635 OFSTMaxSubType = 4
637
642typedef 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)
665#define OGRUnsetMarker -21121
666
673#define OGRNullMarker -21122
674
675/************************************************************************/
676/* OGRField */
677/************************************************************************/
678
683typedef 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
737inline 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
746int 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{
808 OGRSTCVector = 5
810
815{
821 OGRSTUInches = 5
823
828{
837#ifndef DOXYGEN_SKIP
838 OGRSTPenLast = 8
839#endif
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
924const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
925#endif
926
927#ifndef GDAL_CHECK_VERSION
928
940int 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
952
953#endif /* ndef OGR_CORE_H_INCLUDED */
Core portability definitions for CPL.
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:405
short GInt16
Int16 type.
Definition: cpl_port.h:211
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:339
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:337
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:215
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:248
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:407
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
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:2183
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2682
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:294
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6401
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:6732
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:306
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:623
@ OFSTBoolean
Boolean integer.
Definition: ogr_core.h:626
@ OFSTInt16
Signed 16-bit integer.
Definition: ogr_core.h:628
@ OFSTJSON
JSON content.
Definition: ogr_core.h:634
@ OFSTNone
No subtype.
Definition: ogr_core.h:624
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition: ogr_core.h:630
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:865
@ OGRSTSymbolDy
Dy.
Definition: ogr_core.h:871
@ OGRSTSymbolId
Id.
Definition: ogr_core.h:866
@ OGRSTSymbolSize
Size.
Definition: ogr_core.h:869
@ OGRSTSymbolFontName
Font name.
Definition: ogr_core.h:876
@ OGRSTSymbolColor
Color.
Definition: ogr_core.h:868
@ OGRSTSymbolDx
Dx.
Definition: ogr_core.h:870
@ OGRSTSymbolPerp
Perpendicular.
Definition: ogr_core.h:873
@ OGRSTSymbolAngle
Angle.
Definition: ogr_core.h:867
@ OGRSTSymbolOColor
Outline color.
Definition: ogr_core.h:877
@ OGRSTSymbolPriority
Priority.
Definition: ogr_core.h:875
@ OGRSTSymbolStep
Step.
Definition: ogr_core.h:872
@ OGRSTSymbolOffset
Offset.
Definition: ogr_core.h:874
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:490
@ wkbXDR
MSB/Sun/Motoroloa: Most Significant Byte First
Definition: ogr_core.h:491
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition: ogr_core.h:492
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:996
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:295
enum ogr_style_tool_param_pen_id OGRSTPenParam
List of parameters for use with OGRStylePen.
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6669
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6711
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6423
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:298
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:296
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:424
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:427
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:425
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:426
#define OGRERR_NONE
Success.
Definition: ogr_core.h:292
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2645
OGRJustification
Display justification for field values.
Definition: ogr_core.h:643
OGRFieldType
List of feature field types.
Definition: ogr_core.h:595
@ OFTTime
Time.
Definition: ogr_core.h:606
@ OFTInteger64List
List of 64bit integers.
Definition: ogr_core.h:609
@ OFTIntegerList
List of 32bit integers.
Definition: ogr_core.h:597
@ OFTDate
Date.
Definition: ogr_core.h:605
@ OFTWideStringList
deprecated
Definition: ogr_core.h:603
@ OFTInteger
Simple 32bit integer.
Definition: ogr_core.h:596
@ OFTString
String of ASCII chars.
Definition: ogr_core.h:600
@ OFTBinary
Raw Binary data.
Definition: ogr_core.h:604
@ OFTRealList
List of doubles.
Definition: ogr_core.h:599
@ OFTReal
Double Precision floating point.
Definition: ogr_core.h:598
@ OFTStringList
Array of strings.
Definition: ogr_core.h:601
@ OFTDateTime
Date and Time.
Definition: ogr_core.h:607
@ OFTInteger64
Single 64bit integer.
Definition: ogr_core.h:608
@ OFTWideString
deprecated
Definition: ogr_core.h:602
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6620
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:318
@ wkbPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:401
@ wkbCurve
Curve (abstract type).
Definition: ogr_core.h:341
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition: ogr_core.h:322
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:333
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:394
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:324
@ wkbTriangle
a Triangle.
Definition: ogr_core.h:347
@ wkbPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:399
@ wkbSurfaceZ
wkbSurface with Z component.
Definition: ogr_core.h:358
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:374
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:383
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:404
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:377
@ wkbTINZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:396
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:384
@ wkbPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:363
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:328
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:371
@ wkbUnknown
unknown type, non-standard
Definition: ogr_core.h:319
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:392
@ wkbTINZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:360
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:370
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:365
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:373
@ wkbLinearRing
non-standard, just for createGeometry()
Definition: ogr_core.h:350
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:364
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:345
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition: ogr_core.h:405
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:376
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:372
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition: ogr_core.h:343
@ wkbSurface
Surface (abstract type).
Definition: ogr_core.h:342
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition: ogr_core.h:355
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition: ogr_core.h:352
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:321
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:335
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:359
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition: ogr_core.h:330
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:329
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:327
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:367
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:391
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:402
@ wkbNone
non-standard, for pure attribute records
Definition: ogr_core.h:349
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:366
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:388
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition: ogr_core.h:354
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:389
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:361
@ wkbPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:381
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition: ogr_core.h:336
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:382
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:340
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:368
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:393
@ wkbLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:400
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:385
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:395
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:387
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:397
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition: ogr_core.h:369
@ wkbCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:375
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:403
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition: ogr_core.h:379
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:386
@ wkbTINM
ISO SQL/MM Part 3.
Definition: ogr_core.h:378
@ wkbCurveZ
wkbCurve with Z component.
Definition: ogr_core.h:357
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:390
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:339
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition: ogr_core.h:353
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition: ogr_core.h:356
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:6473
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:297
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:887
@ OGRSTLabelUnderline
Underline.
Definition: ogr_core.h:901
@ OGRSTLabelPriority
Priority.
Definition: ogr_core.h:902
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition: ogr_core.h:906
@ OGRSTLabelBold
Bold.
Definition: ogr_core.h:899
@ OGRSTLabelStrikeout
Strike out.
Definition: ogr_core.h:903
@ OGRSTLabelBColor
Background color.
Definition: ogr_core.h:893
@ OGRSTLabelPlacement
Placement.
Definition: ogr_core.h:894
@ OGRSTLabelPerp
Perpendicular.
Definition: ogr_core.h:898
@ OGRSTLabelOColor
Outline color.
Definition: ogr_core.h:908
@ OGRSTLabelDx
Dx.
Definition: ogr_core.h:896
@ OGRSTLabelHColor
Highlight color.
Definition: ogr_core.h:907
@ OGRSTLabelItalic
Italic.
Definition: ogr_core.h:900
@ OGRSTLabelTextString
Text string.
Definition: ogr_core.h:890
@ OGRSTLabelSize
Size.
Definition: ogr_core.h:889
@ OGRSTLabelAngle
Angle.
Definition: ogr_core.h:891
@ OGRSTLabelFColor
Foreground color.
Definition: ogr_core.h:892
@ OGRSTLabelDy
Dy.
Definition: ogr_core.h:897
@ OGRSTLabelFontName
Font name.
Definition: ogr_core.h:888
@ OGRSTLabelStretch
Stretch.
Definition: ogr_core.h:904
@ OGRSTLabelAnchor
Anchor.
Definition: ogr_core.h:895
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition: ogr_core.h:905
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:815
@ OGRSTUGround
Ground unit.
Definition: ogr_core.h:816
@ OGRSTUMM
Millimeter.
Definition: ogr_core.h:819
@ OGRSTUInches
Inch.
Definition: ogr_core.h:821
@ OGRSTUCM
Centimeter.
Definition: ogr_core.h:820
@ OGRSTUPoints
Points.
Definition: ogr_core.h:818
@ OGRSTUPixel
Pixel.
Definition: ogr_core.h:817
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6500
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition: ogr_core.h:301
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2422
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:300
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition: ogr_core.h:293
int OGRErr
Simple container for a bounding region.
Definition: ogr_core.h:290
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition: ogr_core.h:737
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:846
@ OGRSTBrushAngle
Angle.
Definition: ogr_core.h:850
@ OGRSTBrushId
Id.
Definition: ogr_core.h:849
@ OGRSTBrushPriority
Priority.
Definition: ogr_core.h:854
@ OGRSTBrushBColor
Background color.
Definition: ogr_core.h:848
@ OGRSTBrushSize
Size.
Definition: ogr_core.h:851
@ OGRSTBrushDy
Dy.
Definition: ogr_core.h:853
@ OGRSTBrushFColor
Foreground color.
Definition: ogr_core.h:847
@ OGRSTBrushDx
Dx.
Definition: ogr_core.h:852
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6564
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6446
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:802
@ OGRSTCBrush
Brush.
Definition: ogr_core.h:805
@ OGRSTCVector
Vector.
Definition: ogr_core.h:808
@ OGRSTCNone
None.
Definition: ogr_core.h:803
@ OGRSTCLabel
Label.
Definition: ogr_core.h:807
@ OGRSTCPen
Pen.
Definition: ogr_core.h:804
@ OGRSTCSymbol
Symbol.
Definition: ogr_core.h:806
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6352
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:828
@ OGRSTPenId
Id.
Definition: ogr_core.h:832
@ OGRSTPenCap
Cap.
Definition: ogr_core.h:834
@ OGRSTPenPerOffset
Perpendicular offset.
Definition: ogr_core.h:833
@ OGRSTPenWidth
Width.
Definition: ogr_core.h:830
@ OGRSTPenColor
Color.
Definition: ogr_core.h:829
@ OGRSTPenJoin
Join.
Definition: ogr_core.h:835
@ OGRSTPenPriority
Priority.
Definition: ogr_core.h:836
@ OGRSTPenPattern
Pattern.
Definition: ogr_core.h:831
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6754
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:299
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6377
OGRFeature field attribute value union.
Definition: ogr_core.h:683

Generated for GDAL by doxygen 1.9.4.