GDAL

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

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 {
335 wkbUnknown = 0,
337 wkbPoint = 1,
338 wkbLineString = 2,
340 wkbPolygon = 3,
343 wkbMultiPoint = 4,
344 wkbMultiLineString = 5,
345 wkbMultiPolygon = 6,
346 wkbGeometryCollection = 7,
349 wkbCircularString = 8,
351 wkbCompoundCurve = 9,
352 wkbCurvePolygon = 10,
355 wkbMultiCurve = 11,
356 wkbMultiSurface = 12,
357 wkbCurve = 13,
358 wkbSurface = 14,
359 wkbPolyhedralSurface = 15,
361 wkbTIN = 16,
363 wkbTriangle = 17,
365 wkbNone = 100,
366 wkbLinearRing = 101,
368 wkbCircularStringZ = 1008,
369 wkbCompoundCurveZ = 1009,
370 wkbCurvePolygonZ = 1010,
371 wkbMultiCurveZ = 1011,
372 wkbMultiSurfaceZ = 1012,
373 wkbCurveZ = 1013,
374 wkbSurfaceZ = 1014,
375 wkbPolyhedralSurfaceZ = 1015,
376 wkbTINZ = 1016,
377 wkbTriangleZ = 1017,
379 wkbPointM = 2001,
380 wkbLineStringM = 2002,
381 wkbPolygonM = 2003,
382 wkbMultiPointM = 2004,
383 wkbMultiLineStringM = 2005,
384 wkbMultiPolygonM = 2006,
385 wkbGeometryCollectionM = 2007,
386 wkbCircularStringM = 2008,
387 wkbCompoundCurveM = 2009,
388 wkbCurvePolygonM = 2010,
389 wkbMultiCurveM = 2011,
390 wkbMultiSurfaceM = 2012,
391 wkbCurveM = 2013,
392 wkbSurfaceM = 2014,
393 wkbPolyhedralSurfaceM = 2015,
394 wkbTINM = 2016,
395 wkbTriangleM = 2017,
397 wkbPointZM = 3001,
398 wkbLineStringZM = 3002,
399 wkbPolygonZM = 3003,
400 wkbMultiPointZM = 3004,
401 wkbMultiLineStringZM = 3005,
402 wkbMultiPolygonZM = 3006,
403 wkbGeometryCollectionZM = 3007,
404 wkbCircularStringZM = 3008,
405 wkbCompoundCurveZM = 3009,
406 wkbCurvePolygonZM = 3010,
407 wkbMultiCurveZM = 3011,
408 wkbMultiSurfaceZM = 3012,
409 wkbCurveZM = 3013,
410 wkbSurfaceZM = 3014,
411 wkbPolyhedralSurfaceZM = 3015,
412 wkbTINZM = 3016,
413 wkbTriangleZM = 3017,
415 wkbPoint25D = 0x80000001,
416 wkbLineString25D = 0x80000002,
417 wkbPolygon25D = 0x80000003,
418 wkbMultiPoint25D = 0x80000004,
419 wkbMultiLineString25D = 0x80000005,
420 wkbMultiPolygon25D = 0x80000006,
421 wkbGeometryCollection25D = 0x80000007
423 } OGRwkbGeometryType;
424
439 typedef enum
440 {
441 wkbVariantOldOgc,
442 wkbVariantIso,
443 wkbVariantPostGIS1
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 );
478 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypes( OGRwkbGeometryType eMain,
479 OGRwkbGeometryType eExtra );
480 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypesEx( OGRwkbGeometryType eMain,
481 OGRwkbGeometryType eExtra,
482 int bAllowPromotingToCurves );
483 OGRwkbGeometryType CPL_DLL OGR_GT_Flatten( OGRwkbGeometryType eType );
484 OGRwkbGeometryType CPL_DLL OGR_GT_SetZ( OGRwkbGeometryType eType );
485 OGRwkbGeometryType CPL_DLL OGR_GT_SetM( OGRwkbGeometryType eType );
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 );
493 int CPL_DLL OGR_GT_IsNonLinear( OGRwkbGeometryType );
494 OGRwkbGeometryType CPL_DLL OGR_GT_GetCollection( OGRwkbGeometryType eType );
495 OGRwkbGeometryType CPL_DLL OGR_GT_GetCurve( OGRwkbGeometryType eType );
496 OGRwkbGeometryType CPL_DLL OGR_GT_GetLinear( OGRwkbGeometryType eType );
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
601 { OFTInteger = 0, OFTIntegerList = 1, OFTReal = 2, OFTRealList = 3, OFTString = 4, OFTStringList = 5, OFTWideString = 6, OFTWideStringList = 7, OFTBinary = 8, OFTDate = 9, OFTTime = 10, OFTDateTime = 11, OFTInteger64 = 12, OFTInteger64List = 13,
616 OFTMaxType = 13
617 } OGRFieldType;
618
628 typedef enum
629 { OFSTNone = 0,
632 OFSTBoolean = 1,
634 OFSTInt16 = 2,
636 OFSTFloat32 = 3,
637 OFSTMaxSubType = 3
638 } OGRFieldSubType;
639
644 typedef enum
645 {
646 OJUndefined = 0,
647 OJLeft = 1,
648 OJRight = 2
649 } OGRJustification;
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
766 typedef enum ogr_style_tool_class_id
767 {
768 OGRSTCNone = 0,
769 OGRSTCPen = 1,
770 OGRSTCBrush = 2,
771 OGRSTCSymbol = 3,
772 OGRSTCLabel = 4,
773 OGRSTCVector = 5
774 } OGRSTClassId;
775
779 typedef enum ogr_style_tool_units_id
780 {
781 OGRSTUGround = 0,
782 OGRSTUPixel = 1,
783 OGRSTUPoints = 2,
784 OGRSTUMM = 3,
785 OGRSTUCM = 4,
786 OGRSTUInches = 5
787 } OGRSTUnitId;
788
792 typedef enum ogr_style_tool_param_pen_id
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
809 typedef enum ogr_style_tool_param_brush_id
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
821 } OGRSTBrushParam;
822
823
827 typedef enum ogr_style_tool_param_symbol_id
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
843 } OGRSTSymbolParam;
844
848 typedef enum ogr_style_tool_param_label_id
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
873 } OGRSTLabelParam;
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 */
wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:402
wkbNone
< a Triangle.
Definition: ogr_core.h:365
wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:442
OGRSTSymbolParam
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
wkbCircularStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:386
wkbMultiCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:389
wkbLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:380
OGRFieldSubType
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:628
wkbCurveZ
wkbCurve with Z component.
Definition: ogr_core.h:373
ogr_style_tool_param_label_id
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:848
wkbTINZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:376
wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition: ogr_core.h:372
cpl_port.h
Core portability definitions for CPL.
wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:388
wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition: ogr_core.h:385
wkbMultiPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:420
OFSTNone
No subtype.
Definition: ogr_core.h:630
OFTInteger64List
List of 64bit integers.
Definition: ogr_core.h:615
wkbMultiLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:419
wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:340
wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3...
Definition: ogr_core.h:359
wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition: ogr_core.h:371
wkbMultiPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:382
OFTTime
Time.
Definition: ogr_core.h:612
wkbLinearRing
non-standard, just for createGeometry()
Definition: ogr_core.h:366
OFTDate
Date.
Definition: ogr_core.h:611
OGRSTBrushParam
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:403
OGR_GT_SetM
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5688
wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition: ogr_core.h:369
wkbLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:416
OGRSTLabelParam
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:393
ogr_style_tool_param_pen_id
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:792
OFTRealList
List of doubles.
Definition: ogr_core.h:605
ogr_style_tool_param_symbol_id
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:827
wkbTriangleZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:413
wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB ...
Definition: ogr_core.h:346
wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB ...
Definition: ogr_core.h:338
OFTReal
Double Precision floating point.
Definition: ogr_core.h:604
OGR_GT_Flatten
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5594
wkbUnknown
unknown type, non-standard
Definition: ogr_core.h:335
wkbGeometryCollection25D
2.5D extension as per 99-402
Definition: ogr_core.h:421
wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:383
wkbSurface
Surface (abstract type).
Definition: ogr_core.h:358
wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:406
OGR_GT_IsSurface
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:5959
wkbCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:409
OGR_GT_SetModifier
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
wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:343
OGR_GT_SetZ
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:5665
OGR_GT_HasM
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:5643
OGRSTClassId
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
OFTBinary
Raw Binary data.
Definition: ogr_core.h:610
OFTInteger64
Single 64bit integer.
Definition: ogr_core.h:614
OGR_GT_IsSubClassOf
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:5742
wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:355
wkbSurfaceZ
wkbSurface with Z component.
Definition: ogr_core.h:374
wkbMultiPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:418
OGRSTPenParam
enum ogr_style_tool_param_pen_id OGRSTPenParam
List of parameters for use with OGRStylePen.
OGRSTUnitId
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
OGRwkbGeometryType
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:333
wkbPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:379
OGR_GT_IsNonLinear
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:5980
GDALVersionInfo
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:1826
OGRMergeGeometryTypes
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2440
wkbTINM
ISO SQL/MM Part 3.
Definition: ogr_core.h:394
OGRMergeGeometryTypesEx
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2476
wkbPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:397
wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition: ogr_core.h:370
OFSTInt16
Signed 16-bit integer.
Definition: ogr_core.h:634
wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:361
wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:405
wkbSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:392
wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:375
OFSTBoolean
Boolean integer.
Definition: ogr_core.h:632
wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:384
wkbPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:417
wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:408
wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:344
wkbPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:399
wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:351
OGRJustification
OGRJustification
Display justification for field values.
Definition: ogr_core.h:644
ogr_style_tool_units_id
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:779
wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:443
OFTWideStringList
deprecated
Definition: ogr_core.h:609
wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:349
wkbPoint
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:337
OFSTFloat32
Single precision (32 bit) floating point.
Definition: ogr_core.h:636
GDALCheckVersion
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
OGRFieldType
List of feature field types.
Definition: ogr_core.h:600
wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:390
wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:401
OFTDateTime
Date and Time.
Definition: ogr_core.h:613
wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:441
OGREnvelope3D
Simple container for a bounding region in 3D.
Definition: ogr_core.h:161
wkbTriangleZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:377
OGR_GT_GetLinear
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5896
OGRwkbVariant
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:439
wkbCircularStringZ
wkbCircularString with Z component.
Definition: ogr_core.h:368
OFTWideString
deprecated
Definition: ogr_core.h:608
ogr_style_tool_param_brush_id
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:809
wkbSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:410
wkbTINZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:412
OGREnvelope
Simple container for a bounding region.
Definition: ogr_core.h:48
OGRField
OGRFeature field attribute value union.
Definition: ogr_core.h:662
wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:411
wkbMultiPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:400
wkbPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:381
wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:407
OGR_GT_GetCollection
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5797
wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:356
ogr_style_tool_class_id
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:766
wkbTriangleM
ISO SQL/MM Part 3.
Definition: ogr_core.h:395
wkbLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:398
wkbCircularStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:404
wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries, that are curves.
Definition: ogr_core.h:352
OGR_GT_GetCurve
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:5850
wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:345
OFTString
String of ASCII chars.
Definition: ogr_core.h:606
OGR_GT_HasZ
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:5619
wkbPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:415
OGRGeometryTypeToName
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2247
OGRParseDate
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:933
OFTStringList
Array of strings.
Definition: ogr_core.h:607
wkbCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:391
OFTIntegerList
List of 32bit integers.
Definition: ogr_core.h:603
wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:387
OFTInteger
Simple 32bit integer.
Definition: ogr_core.h:602
wkbCurve
Curve (abstract type).
Definition: ogr_core.h:357
OGR_GT_IsCurve
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:5938

Generated for GDAL by 1.8.8.