OGR
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 28900 2015-04-14 09:40:34Z 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 /* See http://trac.osgeo.org/gdal/ticket/5299 for details on this pragma */
66 #if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(_MSC_VER))
67 #pragma GCC diagnostic push
68 #pragma GCC diagnostic ignored "-Wfloat-equal"
69 #endif
70  int IsInit() const { return MinX != 0 || MinY != 0 || MaxX != 0 || MaxY != 0; }
71 
72 #if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(_MSC_VER))
73 #pragma GCC diagnostic pop
74 #endif
75 
76  void Merge( OGREnvelope const& sOther ) {
77  if( IsInit() )
78  {
79  MinX = MIN(MinX,sOther.MinX);
80  MaxX = MAX(MaxX,sOther.MaxX);
81  MinY = MIN(MinY,sOther.MinY);
82  MaxY = MAX(MaxY,sOther.MaxY);
83  }
84  else
85  {
86  MinX = sOther.MinX;
87  MaxX = sOther.MaxX;
88  MinY = sOther.MinY;
89  MaxY = sOther.MaxY;
90  }
91  }
92  void Merge( double dfX, double dfY ) {
93  if( IsInit() )
94  {
95  MinX = MIN(MinX,dfX);
96  MaxX = MAX(MaxX,dfX);
97  MinY = MIN(MinY,dfY);
98  MaxY = MAX(MaxY,dfY);
99  }
100  else
101  {
102  MinX = MaxX = dfX;
103  MinY = MaxY = dfY;
104  }
105  }
106 
107  void Intersect( OGREnvelope const& sOther ) {
108  if(Intersects(sOther))
109  {
110  if( IsInit() )
111  {
112  MinX = MAX(MinX,sOther.MinX);
113  MaxX = MIN(MaxX,sOther.MaxX);
114  MinY = MAX(MinY,sOther.MinY);
115  MaxY = MIN(MaxY,sOther.MaxY);
116  }
117  else
118  {
119  MinX = sOther.MinX;
120  MaxX = sOther.MaxX;
121  MinY = sOther.MinY;
122  MaxY = sOther.MaxY;
123  }
124  }
125  else
126  {
127  MinX = 0;
128  MaxX = 0;
129  MinY = 0;
130  MaxY = 0;
131  }
132  }
133 
134  int Intersects(OGREnvelope const& other) const
135  {
136  return MinX <= other.MaxX && MaxX >= other.MinX &&
137  MinY <= other.MaxY && MaxY >= other.MinY;
138  }
139 
140  int Contains(OGREnvelope const& other) const
141  {
142  return MinX <= other.MinX && MinY <= other.MinY &&
143  MaxX >= other.MaxX && MaxY >= other.MaxY;
144  }
145 };
146 #else
147 typedef struct
148 {
149  double MinX;
150  double MaxX;
151  double MinY;
152  double MaxY;
153 } OGREnvelope;
154 #endif
155 
156 
161 #if defined(__cplusplus) && !defined(CPL_SURESS_CPLUSPLUS)
162 class CPL_DLL OGREnvelope3D : public OGREnvelope
163 {
164  public:
165  OGREnvelope3D() : OGREnvelope(), MinZ(0.0), MaxZ(0.0)
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  int IsInit() const { return MinX != 0 || MinY != 0 || MaxX != 0 || MaxY != 0 || MinZ != 0 || MaxZ != 0; }
179  void Merge( OGREnvelope3D const& sOther ) {
180  if( IsInit() )
181  {
182  MinX = MIN(MinX,sOther.MinX);
183  MaxX = MAX(MaxX,sOther.MaxX);
184  MinY = MIN(MinY,sOther.MinY);
185  MaxY = MAX(MaxY,sOther.MaxY);
186  MinZ = MIN(MinZ,sOther.MinZ);
187  MaxZ = MAX(MaxZ,sOther.MaxZ);
188  }
189  else
190  {
191  MinX = sOther.MinX;
192  MaxX = sOther.MaxX;
193  MinY = sOther.MinY;
194  MaxY = sOther.MaxY;
195  MinZ = sOther.MinZ;
196  MaxZ = sOther.MaxZ;
197  }
198  }
199  void Merge( double dfX, double dfY, double dfZ ) {
200  if( IsInit() )
201  {
202  MinX = MIN(MinX,dfX);
203  MaxX = MAX(MaxX,dfX);
204  MinY = MIN(MinY,dfY);
205  MaxY = MAX(MaxY,dfY);
206  MinZ = MIN(MinZ,dfZ);
207  MaxZ = MAX(MaxZ,dfZ);
208  }
209  else
210  {
211  MinX = MaxX = dfX;
212  MinY = MaxY = dfY;
213  MinZ = MaxZ = dfZ;
214  }
215  }
216 
217  void Intersect( OGREnvelope3D const& sOther ) {
218  if(Intersects(sOther))
219  {
220  if( IsInit() )
221  {
222  MinX = MAX(MinX,sOther.MinX);
223  MaxX = MIN(MaxX,sOther.MaxX);
224  MinY = MAX(MinY,sOther.MinY);
225  MaxY = MIN(MaxY,sOther.MaxY);
226  MinZ = MAX(MinZ,sOther.MinZ);
227  MaxZ = MIN(MaxZ,sOther.MaxZ);
228  }
229  else
230  {
231  MinX = sOther.MinX;
232  MaxX = sOther.MaxX;
233  MinY = sOther.MinY;
234  MaxY = sOther.MaxY;
235  MinZ = sOther.MinZ;
236  MaxZ = sOther.MaxZ;
237  }
238  }
239  else
240  {
241  MinX = 0;
242  MaxX = 0;
243  MinY = 0;
244  MaxY = 0;
245  MinZ = 0;
246  MaxZ = 0;
247  }
248  }
249 
250  int Intersects(OGREnvelope3D const& other) const
251  {
252  return MinX <= other.MaxX && MaxX >= other.MinX &&
253  MinY <= other.MaxY && MaxY >= other.MinY &&
254  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
255  }
256 
257  int Contains(OGREnvelope3D const& other) const
258  {
259  return MinX <= other.MinX && MinY <= other.MinY &&
260  MaxX >= other.MaxX && MaxY >= other.MaxY &&
261  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
262  }
263 };
264 #else
265 typedef struct
266 {
267  double MinX;
268  double MaxX;
269  double MinY;
270  double MaxY;
271  double MinZ;
272  double MaxZ;
273 } OGREnvelope3D;
274 #endif
275 
276 
277 CPL_C_START
278 
279 void CPL_DLL *OGRMalloc( size_t );
280 void CPL_DLL *OGRCalloc( size_t, size_t );
281 void CPL_DLL *OGRRealloc( void *, size_t );
282 char CPL_DLL *OGRStrdup( const char * );
283 void CPL_DLL OGRFree( void * );
284 
285 typedef int OGRErr;
286 
287 #define OGRERR_NONE 0
288 #define OGRERR_NOT_ENOUGH_DATA 1 /* not enough data to deserialize */
289 #define OGRERR_NOT_ENOUGH_MEMORY 2
290 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
291 #define OGRERR_UNSUPPORTED_OPERATION 4
292 #define OGRERR_CORRUPT_DATA 5
293 #define OGRERR_FAILURE 6
294 #define OGRERR_UNSUPPORTED_SRS 7
295 #define OGRERR_INVALID_HANDLE 8
296 #define OGRERR_NON_EXISTING_FEATURE 9 /* added in GDAL 2.0 */
297 
298 typedef int OGRBoolean;
299 
300 /* -------------------------------------------------------------------- */
301 /* ogr_geometry.h related definitions. */
302 /* -------------------------------------------------------------------- */
303 
309 typedef enum
310 {
313  wkbPoint = 1,
334  wkbNone = 100,
340  wkbMultiCurveZ = 1011,
343  wkbPoint25D = 0x80000001,
344  wkbLineString25D = 0x80000002,
345  wkbPolygon25D = 0x80000003,
346  wkbMultiPoint25D = 0x80000004,
347  wkbMultiLineString25D = 0x80000005,
348  wkbMultiPolygon25D = 0x80000006,
352 
353 /* Outside of OGRwkbGeometryType since they are abstract types */
354 #define wkbCurve ((OGRwkbGeometryType)13)
355 #define wkbSurface ((OGRwkbGeometryType)14)
371 typedef enum
372 {
376 } OGRwkbVariant;
377 
378 
380 #ifndef GDAL_COMPILATION
381 #define wkb25DBit 0x80000000
382 #endif
383 
385 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
386 
390 #define wkbHasZ(x) OGR_GT_HasZ(x)
391 
395 #define wkbSetZ(x) OGR_GT_SetZ(x)
396 
397 #define ogrZMarker 0x21125711
398 
399 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
401  OGRwkbGeometryType eExtra );
403  OGRwkbGeometryType eExtra,
404  int bAllowPromotingToCurves );
407 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
408 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
409 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
410  OGRwkbGeometryType eSuperType );
411 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
412 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
417 
418 typedef enum
419 {
420  wkbXDR = 0, /* MSB/Sun/Motoroloa: Most Significant Byte First */
421  wkbNDR = 1 /* LSB/Intel/Vax: Least Significant Byte First */
422 } OGRwkbByteOrder;
423 
424 #ifndef NO_HACK_FOR_IBM_DB2_V72
425 # define HACK_FOR_IBM_DB2_V72
426 #endif
427 
428 #ifdef HACK_FOR_IBM_DB2_V72
429 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? (OGRwkbByteOrder) ((x) & 0x1) : (x))
430 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x)))
431 #else
432 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
433 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
434 #endif
435 
439 #define ALTER_NAME_FLAG 0x1
440 
444 #define ALTER_TYPE_FLAG 0x2
445 
449 #define ALTER_WIDTH_PRECISION_FLAG 0x4
450 
455 #define ALTER_NULLABLE_FLAG 0x8
456 
461 #define ALTER_DEFAULT_FLAG 0x10
462 
466 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG)
467 
468 
473 #define OGR_F_VAL_NULL 0x00000001
474 
479 #define OGR_F_VAL_GEOM_TYPE 0x00000002
480 
485 #define OGR_F_VAL_WIDTH 0x00000004
486 
494 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
495 
500 #define OGR_F_VAL_ALL 0xFFFFFFFF
501 
502 /************************************************************************/
503 /* ogr_feature.h related definitions. */
504 /************************************************************************/
505 
512 typedef enum
528  OFTMaxType = 13
529 } OGRFieldType;
530 
540 typedef enum
541 { OFSTNone = 0,
549  OFSTMaxSubType = 3
551 
556 typedef enum
557 {
558  OJUndefined = 0,
559  OJLeft = 1,
560  OJRight = 2
562 
563 #define OGRNullFID -1
564 #define OGRUnsetMarker -21121
565 
566 /************************************************************************/
567 /* OGRField */
568 /************************************************************************/
569 
574 typedef union {
575  int Integer;
576  GIntBig Integer64;
577  double Real;
578  char *String;
579 
580  struct {
581  int nCount;
582  int *paList;
583  } IntegerList;
584 
585  struct {
586  int nCount;
587  GIntBig *paList;
588  } Integer64List;
589 
590  struct {
591  int nCount;
592  double *paList;
593  } RealList;
594 
595  struct {
596  int nCount;
597  char **paList;
598  } StringList;
599 
600  struct {
601  int nCount;
602  GByte *paData;
603  } Binary;
604 
605  struct {
606  int nMarker1;
607  int nMarker2;
608  } Set;
609 
610  struct {
611  GInt16 Year;
612  GByte Month;
613  GByte Day;
614  GByte Hour;
615  GByte Minute;
616  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
617  100=GMT, 104=GMT+1, 80=GMT-5, etc */
618  GByte Reserved; /* must be set to 0 */
619  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
620  } Date;
621 } OGRField;
622 
623 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5)
624 
625 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
626  int nOptions );
627 
628 /* -------------------------------------------------------------------- */
629 /* Constants from ogrsf_frmts.h for capabilities. */
630 /* -------------------------------------------------------------------- */
631 #define OLCRandomRead "RandomRead"
632 #define OLCSequentialWrite "SequentialWrite"
633 #define OLCRandomWrite "RandomWrite"
634 #define OLCFastSpatialFilter "FastSpatialFilter"
635 #define OLCFastFeatureCount "FastFeatureCount"
636 #define OLCFastGetExtent "FastGetExtent"
637 #define OLCCreateField "CreateField"
638 #define OLCDeleteField "DeleteField"
639 #define OLCReorderFields "ReorderFields"
640 #define OLCAlterFieldDefn "AlterFieldDefn"
641 #define OLCTransactions "Transactions"
642 #define OLCDeleteFeature "DeleteFeature"
643 #define OLCFastSetNextByIndex "FastSetNextByIndex"
644 #define OLCStringsAsUTF8 "StringsAsUTF8"
645 #define OLCIgnoreFields "IgnoreFields"
646 #define OLCCreateGeomField "CreateGeomField"
647 #define OLCCurveGeometries "CurveGeometries"
648 
649 #define ODsCCreateLayer "CreateLayer"
650 #define ODsCDeleteLayer "DeleteLayer"
651 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
652 #define ODsCCurveGeometries "CurveGeometries"
653 #define ODsCTransactions "Transactions"
654 #define ODsCEmulatedTransactions "EmulatedTransactions"
655 
656 #define ODrCCreateDataSource "CreateDataSource"
657 #define ODrCDeleteDataSource "DeleteDataSource"
658 
659 /* -------------------------------------------------------------------- */
660 /* Layer metadata items. */
661 /* -------------------------------------------------------------------- */
666 #define OLMD_FID64 "OLMD_FID64"
667 
668 /************************************************************************/
669 /* ogr_featurestyle.h related definitions. */
670 /************************************************************************/
671 
677 {
678  OGRSTCNone = 0,
679  OGRSTCPen = 1,
680  OGRSTCBrush = 2,
681  OGRSTCSymbol = 3,
682  OGRSTCLabel = 4,
683  OGRSTCVector = 5
684 } OGRSTClassId;
685 
690 {
691  OGRSTUGround = 0,
692  OGRSTUPixel = 1,
693  OGRSTUPoints = 2,
694  OGRSTUMM = 3,
695  OGRSTUCM = 4,
696  OGRSTUInches = 5
697 } OGRSTUnitId;
698 
703 {
704  OGRSTPenColor = 0,
705  OGRSTPenWidth = 1,
706  OGRSTPenPattern = 2,
707  OGRSTPenId = 3,
708  OGRSTPenPerOffset = 4,
709  OGRSTPenCap = 5,
710  OGRSTPenJoin = 6,
711  OGRSTPenPriority = 7,
712  OGRSTPenLast = 8
713 
714 } OGRSTPenParam;
715 
720 {
721  OGRSTBrushFColor = 0,
722  OGRSTBrushBColor = 1,
723  OGRSTBrushId = 2,
724  OGRSTBrushAngle = 3,
725  OGRSTBrushSize = 4,
726  OGRSTBrushDx = 5,
727  OGRSTBrushDy = 6,
728  OGRSTBrushPriority = 7,
729  OGRSTBrushLast = 8
730 
732 
733 
738 {
739  OGRSTSymbolId = 0,
740  OGRSTSymbolAngle = 1,
741  OGRSTSymbolColor = 2,
742  OGRSTSymbolSize = 3,
743  OGRSTSymbolDx = 4,
744  OGRSTSymbolDy = 5,
745  OGRSTSymbolStep = 6,
746  OGRSTSymbolPerp = 7,
747  OGRSTSymbolOffset = 8,
748  OGRSTSymbolPriority = 9,
749  OGRSTSymbolFontName = 10,
750  OGRSTSymbolOColor = 11,
751  OGRSTSymbolLast = 12
752 
754 
759 {
760  OGRSTLabelFontName = 0,
761  OGRSTLabelSize = 1,
762  OGRSTLabelTextString = 2,
763  OGRSTLabelAngle = 3,
764  OGRSTLabelFColor = 4,
765  OGRSTLabelBColor = 5,
766  OGRSTLabelPlacement = 6,
767  OGRSTLabelAnchor = 7,
768  OGRSTLabelDx = 8,
769  OGRSTLabelDy = 9,
770  OGRSTLabelPerp = 10,
771  OGRSTLabelBold = 11,
772  OGRSTLabelItalic = 12,
773  OGRSTLabelUnderline = 13,
774  OGRSTLabelPriority = 14,
775  OGRSTLabelStrikeout = 15,
776  OGRSTLabelStretch = 16,
777  OGRSTLabelAdjHor = 17,
778  OGRSTLabelAdjVert = 18,
779  OGRSTLabelHColor = 19,
780  OGRSTLabelOColor = 20,
781  OGRSTLabelLast = 21
782 
784 
785 /* ------------------------------------------------------------------- */
786 /* Version checking */
787 /* -------------------------------------------------------------------- */
788 
789 /* Note to developers : please keep this section in sync with gdal.h */
790 
791 #ifndef GDAL_VERSION_INFO_DEFINED
792 #define GDAL_VERSION_INFO_DEFINED
793 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
794 #endif
795 
796 #ifndef GDAL_CHECK_VERSION
797 
809 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
810  const char* pszCallingComponentName);
811 
813 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
814  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
815 
816 #endif
817 
818 CPL_C_END
819 
820 #endif /* ndef OGR_CORE_H_INCLUDED */
Definition: ogr_core.h:334
Definition: ogr_core.h:374
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
OGRFieldSubType
Definition: ogr_core.h:540
ogr_style_tool_param_label_id
Definition: ogr_core.h:758
Definition: ogr_core.h:341
Definition: ogr_core.h:348
Definition: ogr_core.h:542
Definition: ogr_core.h:527
Definition: ogr_core.h:347
Definition: ogr_core.h:316
Definition: ogr_core.h:340
Definition: ogr_core.h:524
Definition: ogr_core.h:335
Definition: ogr_core.h:523
enum ogr_style_tool_param_brush_id OGRSTBrushParam
Definition: ogr_core.h:338
Definition: ogr_core.h:344
enum ogr_style_tool_param_label_id OGRSTLabelParam
ogr_style_tool_param_pen_id
Definition: ogr_core.h:702
Definition: ogr_core.h:517
ogr_style_tool_param_symbol_id
Definition: ogr_core.h:737
Definition: ogr_core.h:322
Definition: ogr_core.h:314
Definition: ogr_core.h:516
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5033
Definition: ogr_core.h:311
Definition: ogr_core.h:349
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:5332
Definition: ogr_core.h:319
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5080
enum ogr_style_tool_class_id OGRSTClassId
Definition: ogr_core.h:522
Definition: ogr_core.h:526
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:5128
Definition: ogr_core.h:331
Definition: ogr_core.h:346
enum ogr_style_tool_param_pen_id OGRSTPenParam
enum ogr_style_tool_units_id OGRSTUnitId
OGRwkbGeometryType
Definition: ogr_core.h:309
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:5353
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2031
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2067
Definition: ogr_core.h:339
Definition: ogr_core.h:546
Definition: ogr_core.h:544
Definition: ogr_core.h:345
Definition: ogr_core.h:320
Definition: ogr_core.h:327
OGRJustification
Definition: ogr_core.h:556
ogr_style_tool_units_id
Definition: ogr_core.h:689
Definition: ogr_core.h:375
Definition: ogr_core.h:521
Definition: ogr_core.h:325
Definition: ogr_core.h:313
Definition: ogr_core.h:548
OGRFieldType
Definition: ogr_core.h:512
Definition: ogr_core.h:525
Definition: ogr_core.h:373
Definition: ogr_core.h:162
int CPL_STDCALL GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5273
OGRwkbVariant
Definition: ogr_core.h:371
Definition: ogr_core.h:337
Definition: ogr_core.h:520
ogr_style_tool_param_brush_id
Definition: ogr_core.h:719
Definition: ogr_core.h:48
Definition: ogr_core.h:574
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5182
Definition: ogr_core.h:332
ogr_style_tool_class_id
Definition: ogr_core.h:676
Definition: ogr_core.h:328
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5231
Definition: ogr_core.h:321
Definition: ogr_core.h:518
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:5058
Definition: ogr_core.h:343
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value. The returned value should n...
Definition: ogrgeometry.cpp:1905
Definition: ogr_core.h:519
Definition: ogr_core.h:515
Definition: ogr_core.h:514
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:5311

Generated for GDAL by doxygen 1.8.10.