GDAL

ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2 * $Id$
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 spatialys.com>
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_DATE_NAME
37 #endif
38 #include "gdal_version.h"
39
46 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
47
48 extern "C++"
49 {
50 #if !defined(DOXYGEN_SKIP)
51 #include <limits>
52 #endif
53
57 class CPL_DLL OGREnvelope
58 {
59 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
69 OGREnvelope(const OGREnvelope& oOther) :
70 MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
71 {
72 }
73
75 OGREnvelope& operator=(const OGREnvelope&) = default;
76
78 double MinX;
79
81 double MaxX;
82
84 double MinY;
85
87 double MaxY;
88
89 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
90 #pragma GCC diagnostic push
91 #pragma GCC diagnostic ignored "-Wfloat-equal"
92 #endif
93
94 int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
95
96 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
97 #pragma GCC diagnostic pop
98 #endif
99
101 void Merge( OGREnvelope const& sOther ) {
102 MinX = MIN(MinX,sOther.MinX);
103 MaxX = MAX(MaxX,sOther.MaxX);
104 MinY = MIN(MinY,sOther.MinY);
105 MaxY = MAX(MaxY,sOther.MaxY);
106 }
107
109 void Merge( double dfX, double dfY ) {
110 MinX = MIN(MinX,dfX);
111 MaxX = MAX(MaxX,dfX);
112 MinY = MIN(MinY,dfY);
113 MaxY = MAX(MaxY,dfY);
114 }
115
117 void Intersect( OGREnvelope const& sOther ) {
118 if(Intersects(sOther))
119 {
120 if( IsInit() )
121 {
122 MinX = MAX(MinX,sOther.MinX);
123 MaxX = MIN(MaxX,sOther.MaxX);
124 MinY = MAX(MinY,sOther.MinY);
125 MaxY = MIN(MaxY,sOther.MaxY);
126 }
127 else
128 {
129 MinX = sOther.MinX;
130 MaxX = sOther.MaxX;
131 MinY = sOther.MinY;
132 MaxY = sOther.MaxY;
133 }
134 }
135 else
136 {
137 *this = OGREnvelope();
138 }
139 }
140
142 int Intersects(OGREnvelope const& other) const
143 {
144 return MinX <= other.MaxX && MaxX >= other.MinX &&
145 MinY <= other.MaxY && MaxY >= other.MinY;
146 }
147
149 int Contains(OGREnvelope const& other) const
150 {
151 return MinX <= other.MinX && MinY <= other.MinY &&
152 MaxX >= other.MaxX && MaxY >= other.MaxY;
153 }
154
156 bool operator== (const OGREnvelope& other) const
157 {
158 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
159 #pragma GCC diagnostic push
160 #pragma GCC diagnostic ignored "-Wfloat-equal"
161 #endif
162 return MinX == other.MinX &&
163 MinY == other.MinY &&
164 MaxX == other.MaxX &&
165 MaxY == other.MaxY;
166
167 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
168 #pragma GCC diagnostic pop
169 #endif
170 }
171
173 bool operator!= (const OGREnvelope& other) const
174 {
175 return !(*this == other);
176 }
177 };
178
179 } // extern "C++"
180
181 #else
182 typedef struct
183 {
184 double MinX;
185 double MaxX;
186 double MinY;
187 double MaxY;
188 } OGREnvelope;
189 #endif
190
191 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
192
193 extern "C++" {
194
198 class CPL_DLL OGREnvelope3D : public OGREnvelope
199 {
200 public:
202 OGREnvelope3D() : OGREnvelope(),
203 MinZ(std::numeric_limits<double>::infinity()),
204 MaxZ(-std::numeric_limits<double>::infinity())
205 {
206 }
207
209 OGREnvelope3D(const OGREnvelope3D& oOther) :
210 OGREnvelope(oOther),
211 MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
212 {
213 }
214
216 OGREnvelope3D& operator=(const OGREnvelope3D&) = default;
217
219 double MinZ;
220
222 double MaxZ;
223
224 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
225 #pragma GCC diagnostic push
226 #pragma GCC diagnostic ignored "-Wfloat-equal"
227 #endif
228
229 int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
230 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
231 #pragma GCC diagnostic pop
232 #endif
233
235 void Merge( OGREnvelope3D const& sOther ) {
236 MinX = MIN(MinX,sOther.MinX);
237 MaxX = MAX(MaxX,sOther.MaxX);
238 MinY = MIN(MinY,sOther.MinY);
239 MaxY = MAX(MaxY,sOther.MaxY);
240 MinZ = MIN(MinZ,sOther.MinZ);
241 MaxZ = MAX(MaxZ,sOther.MaxZ);
242 }
243
245 void Merge( double dfX, double dfY, double dfZ ) {
246 MinX = MIN(MinX,dfX);
247 MaxX = MAX(MaxX,dfX);
248 MinY = MIN(MinY,dfY);
249 MaxY = MAX(MaxY,dfY);
250 MinZ = MIN(MinZ,dfZ);
251 MaxZ = MAX(MaxZ,dfZ);
252 }
253
255 void Intersect( OGREnvelope3D const& sOther ) {
256 if(Intersects(sOther))
257 {
258 if( IsInit() )
259 {
260 MinX = MAX(MinX,sOther.MinX);
261 MaxX = MIN(MaxX,sOther.MaxX);
262 MinY = MAX(MinY,sOther.MinY);
263 MaxY = MIN(MaxY,sOther.MaxY);
264 MinZ = MAX(MinZ,sOther.MinZ);
265 MaxZ = MIN(MaxZ,sOther.MaxZ);
266 }
267 else
268 {
269 MinX = sOther.MinX;
270 MaxX = sOther.MaxX;
271 MinY = sOther.MinY;
272 MaxY = sOther.MaxY;
273 MinZ = sOther.MinZ;
274 MaxZ = sOther.MaxZ;
275 }
276 }
277 else
278 {
279 *this = OGREnvelope3D();
280 }
281 }
282
284 int Intersects(OGREnvelope3D const& other) const
285 {
286 return MinX <= other.MaxX && MaxX >= other.MinX &&
287 MinY <= other.MaxY && MaxY >= other.MinY &&
288 MinZ <= other.MaxZ && MaxZ >= other.MinZ;
289 }
290
292 int Contains(OGREnvelope3D const& other) const
293 {
294 return MinX <= other.MinX && MinY <= other.MinY &&
295 MaxX >= other.MaxX && MaxY >= other.MaxY &&
296 MinZ <= other.MinZ && MaxZ >= other.MaxZ;
297 }
298 };
299
300 } // extern "C++"
301
302 #else
303 typedef struct
304 {
305 double MinX;
306 double MaxX;
307 double MinY;
308 double MaxY;
309 double MinZ;
310 double MaxZ;
311 } OGREnvelope3D;
312 #endif
313
314 CPL_C_START
315
317 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
318 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
319 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
320 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
321 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
324 #ifdef STRICT_OGRERR_TYPE
325
326 typedef enum
327 {
328 OGRERR_NONE,
329 OGRERR_NOT_ENOUGH_DATA,
330 OGRERR_NOT_ENOUGH_MEMORY,
331 OGRERR_UNSUPPORTED_GEOMETRY_TYPE,
332 OGRERR_UNSUPPORTED_OPERATION,
333 OGRERR_CORRUPT_DATA,
334 OGRERR_FAILURE,
335 OGRERR_UNSUPPORTED_SRS,
336 OGRERR_INVALID_HANDLE,
337 OGRERR_NON_EXISTING_FEATURE
338 } OGRErr;
339 #else
340
341 typedef int OGRErr;
342
343 #define OGRERR_NONE 0
344 #define OGRERR_NOT_ENOUGH_DATA 1
345 #define OGRERR_NOT_ENOUGH_MEMORY 2
346 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
347 #define OGRERR_UNSUPPORTED_OPERATION 4
348 #define OGRERR_CORRUPT_DATA 5
349 #define OGRERR_FAILURE 6
350 #define OGRERR_UNSUPPORTED_SRS 7
351 #define OGRERR_INVALID_HANDLE 8
352 #define OGRERR_NON_EXISTING_FEATURE 9
354 #endif
355
357 typedef int OGRBoolean;
358
359 /* -------------------------------------------------------------------- */
360 /* ogr_geometry.h related definitions. */
361 /* -------------------------------------------------------------------- */
362
368 typedef enum
369 {
370 wkbUnknown = 0,
372 wkbPoint = 1,
373 wkbLineString = 2,
375 wkbPolygon = 3,
378 wkbMultiPoint = 4,
379 wkbMultiLineString = 5,
380 wkbMultiPolygon = 6,
381 wkbGeometryCollection = 7,
384 wkbCircularString = 8,
386 wkbCompoundCurve = 9,
387 wkbCurvePolygon = 10,
390 wkbMultiCurve = 11,
391 wkbMultiSurface = 12,
392 wkbCurve = 13,
393 wkbSurface = 14,
394 wkbPolyhedralSurface = 15,
396 wkbTIN = 16,
398 wkbTriangle = 17,
400 wkbNone = 100,
401 wkbLinearRing = 101,
403 wkbCircularStringZ = 1008,
404 wkbCompoundCurveZ = 1009,
405 wkbCurvePolygonZ = 1010,
406 wkbMultiCurveZ = 1011,
407 wkbMultiSurfaceZ = 1012,
408 wkbCurveZ = 1013,
409 wkbSurfaceZ = 1014,
410 wkbPolyhedralSurfaceZ = 1015,
411 wkbTINZ = 1016,
412 wkbTriangleZ = 1017,
414 wkbPointM = 2001,
415 wkbLineStringM = 2002,
416 wkbPolygonM = 2003,
417 wkbMultiPointM = 2004,
418 wkbMultiLineStringM = 2005,
419 wkbMultiPolygonM = 2006,
420 wkbGeometryCollectionM = 2007,
421 wkbCircularStringM = 2008,
422 wkbCompoundCurveM = 2009,
423 wkbCurvePolygonM = 2010,
424 wkbMultiCurveM = 2011,
425 wkbMultiSurfaceM = 2012,
426 wkbCurveM = 2013,
427 wkbSurfaceM = 2014,
428 wkbPolyhedralSurfaceM = 2015,
429 wkbTINM = 2016,
430 wkbTriangleM = 2017,
432 wkbPointZM = 3001,
433 wkbLineStringZM = 3002,
434 wkbPolygonZM = 3003,
435 wkbMultiPointZM = 3004,
436 wkbMultiLineStringZM = 3005,
437 wkbMultiPolygonZM = 3006,
438 wkbGeometryCollectionZM = 3007,
439 wkbCircularStringZM = 3008,
440 wkbCompoundCurveZM = 3009,
441 wkbCurvePolygonZM = 3010,
442 wkbMultiCurveZM = 3011,
443 wkbMultiSurfaceZM = 3012,
444 wkbCurveZM = 3013,
445 wkbSurfaceZM = 3014,
446 wkbPolyhedralSurfaceZM = 3015,
447 wkbTINZM = 3016,
448 wkbTriangleZM = 3017,
450 #if defined(DOXYGEN_SKIP)
451 // Sphinx doesn't like 0x8000000x constants
452 wkbPoint25D = -2147483647,
453 wkbLineString25D = -2147483646,
454 wkbPolygon25D = -2147483645,
455 wkbMultiPoint25D = -2147483644,
456 wkbMultiLineString25D = -2147483643,
457 wkbMultiPolygon25D = -2147483642,
458 wkbGeometryCollection25D = -2147483641
459 #else
460 wkbPoint25D = 0x80000001,
461 wkbLineString25D = 0x80000002,
462 wkbPolygon25D = 0x80000003,
463 wkbMultiPoint25D = 0x80000004,
464 wkbMultiLineString25D = 0x80000005,
465 wkbMultiPolygon25D = 0x80000006,
466 wkbGeometryCollection25D = 0x80000007
467 #endif
468 } OGRwkbGeometryType;
469
484 typedef enum
485 {
486 wkbVariantOldOgc,
487 wkbVariantIso,
488 wkbVariantPostGIS1
489 } OGRwkbVariant;
490
491 #ifndef GDAL_COMPILATION
492
493 #define wkb25DBit 0x80000000
494 #endif
495
496 #ifndef __cplusplus
497
498 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
499 #else
500
501 #define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
502 #endif
503
507 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
508
512 #define wkbSetZ(x) OGR_GT_SetZ(x)
513
517 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
518
522 #define wkbSetM(x) OGR_GT_SetM(x)
523
524 #ifndef DOXYGEN_SKIP
525 #define ogrZMarker 0x21125711
526 #endif
527
528 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
529 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypes( OGRwkbGeometryType eMain,
530 OGRwkbGeometryType eExtra );
531 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypesEx( OGRwkbGeometryType eMain,
532 OGRwkbGeometryType eExtra,
533 int bAllowPromotingToCurves );
534 OGRwkbGeometryType CPL_DLL OGR_GT_Flatten( OGRwkbGeometryType eType );
535 OGRwkbGeometryType CPL_DLL OGR_GT_SetZ( OGRwkbGeometryType eType );
536 OGRwkbGeometryType CPL_DLL OGR_GT_SetM( OGRwkbGeometryType eType );
537 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
538 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
539 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
540 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
541 OGRwkbGeometryType eSuperType );
542 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
543 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
544 int CPL_DLL OGR_GT_IsNonLinear( OGRwkbGeometryType );
545 OGRwkbGeometryType CPL_DLL OGR_GT_GetCollection( OGRwkbGeometryType eType );
546 OGRwkbGeometryType CPL_DLL OGR_GT_GetCurve( OGRwkbGeometryType eType );
547 OGRwkbGeometryType CPL_DLL OGR_GT_GetLinear( OGRwkbGeometryType eType );
548
550 typedef enum
551 {
552 wkbXDR = 0,
553 wkbNDR = 1
554 } OGRwkbByteOrder;
555
556 #ifndef DOXYGEN_SKIP
557
558 #ifndef NO_HACK_FOR_IBM_DB2_V72
559 # define HACK_FOR_IBM_DB2_V72
560 #endif
561
562 #ifdef HACK_FOR_IBM_DB2_V72
563 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
564 # define DB2_V72_UNFIX_BYTE_ORDER(x) CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x))
565 #else
566 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
567 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
568 #endif
569
570 #endif /* #ifndef DOXYGEN_SKIP */
571
575 #define ALTER_NAME_FLAG 0x1
576
580 #define ALTER_TYPE_FLAG 0x2
581
585 #define ALTER_WIDTH_PRECISION_FLAG 0x4
586
591 #define ALTER_NULLABLE_FLAG 0x8
592
597 #define ALTER_DEFAULT_FLAG 0x10
598
603 #define ALTER_UNIQUE_FLAG 0x20
604
609 #define ALTER_DOMAIN_FLAG 0x40
610
611
615 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | ALTER_DOMAIN_FLAG)
616
617
618
623 #define ALTER_GEOM_FIELD_DEFN_NAME_FLAG 0x1000
624
629 #define ALTER_GEOM_FIELD_DEFN_TYPE_FLAG 0x2000
630
635 #define ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG 0x4000
636
641 #define ALTER_GEOM_FIELD_DEFN_SRS_FLAG 0x8000
642
647 #define ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG 0x10000
648
649
654 #define ALTER_GEOM_FIELD_DEFN_ALL_FLAG (ALTER_GEOM_FIELD_DEFN_NAME_FLAG | ALTER_GEOM_FIELD_DEFN_TYPE_FLAG | ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG)
655
656
657
662 #define OGR_F_VAL_NULL 0x00000001
663
668 #define OGR_F_VAL_GEOM_TYPE 0x00000002
669
674 #define OGR_F_VAL_WIDTH 0x00000004
675
683 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
684
691 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
692
697 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
698
699 /************************************************************************/
700 /* ogr_feature.h related definitions. */
701 /************************************************************************/
702
709 typedef enum
710 { 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,
725 OFTMaxType = 13
726 } OGRFieldType;
727
737 typedef enum
738 { OFSTNone = 0,
741 OFSTBoolean = 1,
743 OFSTInt16 = 2,
745 OFSTFloat32 = 3,
749 OFSTJSON = 4,
753 OFSTUUID = 5,
754 OFSTMaxSubType = 5
755 } OGRFieldSubType;
756
761 typedef enum
762 {
763 OJUndefined = 0,
764 OJLeft = 1,
765 OJRight = 2
766 } OGRJustification;
767
769 #define OGRNullFID -1
770
771 /* Special value for an unknown field type. This should only be used
772 * while reading a file. At the end of file any unknown types should
773 * be set to OFTString.
774 */
776 #define OGRUnknownType static_cast<OGRFieldType>(-1)
777
784 #define OGRUnsetMarker -21121
785
792 #define OGRNullMarker -21122
793
794 /************************************************************************/
795 /* OGRField */
796 /************************************************************************/
797
802 typedef union {
804 int Integer;
805 GIntBig Integer64;
806 double Real;
807 char *String;
808
809 struct {
810 int nCount;
811 int *paList;
812 } IntegerList;
813
814 struct {
815 int nCount;
816 GIntBig *paList;
817 } Integer64List;
818
819 struct {
820 int nCount;
821 double *paList;
822 } RealList;
823
824 struct {
825 int nCount;
826 char **paList;
827 } StringList;
828
829 struct {
830 int nCount;
831 GByte *paData;
832 } Binary;
833
834 struct {
835 int nMarker1;
836 int nMarker2;
837 int nMarker3;
838 } Set;
839
840 struct {
841 GInt16 Year;
842 GByte Month;
843 GByte Day;
844 GByte Hour;
845 GByte Minute;
846 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
847 100=GMT, 104=GMT+1, 80=GMT-5, etc */
848 GByte Reserved; /* must be set to 0 */
849 float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
850 } Date;
852 } OGRField;
853
854 #ifdef __cplusplus
855
856 inline int OGR_GET_MS(float fSec) {
857 if( CPLIsNan(fSec) ) return 0;
858 if( fSec >= 999 ) return 999;
859 if( fSec <= 0 ) return 0;
860 const float fValue = (fSec - static_cast<int>(fSec)) * 1000 + 0.5f;
861 return static_cast<int>(fValue);
862 }
863 #endif // __cplusplus
864
865 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
866 int nOptions );
867
868 /* -------------------------------------------------------------------- */
869 /* Constants from ogrsf_frmts.h for capabilities. */
870 /* -------------------------------------------------------------------- */
871 #define OLCRandomRead "RandomRead"
872 #define OLCSequentialWrite "SequentialWrite"
873 #define OLCRandomWrite "RandomWrite"
874 #define OLCFastSpatialFilter "FastSpatialFilter"
875 #define OLCFastFeatureCount "FastFeatureCount"
876 #define OLCFastGetExtent "FastGetExtent"
877 #define OLCCreateField "CreateField"
878 #define OLCDeleteField "DeleteField"
879 #define OLCReorderFields "ReorderFields"
880 #define OLCAlterFieldDefn "AlterFieldDefn"
881 #define OLCAlterGeomFieldDefn "AlterGeomFieldDefn"
882 #define OLCTransactions "Transactions"
883 #define OLCDeleteFeature "DeleteFeature"
884 #define OLCUpsertFeature "UpsertFeature"
885 #define OLCFastSetNextByIndex "FastSetNextByIndex"
886 #define OLCStringsAsUTF8 "StringsAsUTF8"
887 #define OLCIgnoreFields "IgnoreFields"
888 #define OLCCreateGeomField "CreateGeomField"
889 #define OLCCurveGeometries "CurveGeometries"
890 #define OLCMeasuredGeometries "MeasuredGeometries"
891 #define OLCZGeometries "ZGeometries"
892 #define OLCRename "Rename"
893 #define OLCFastGetArrowStream "FastGetArrowStream"
895 #define ODsCCreateLayer "CreateLayer"
896 #define ODsCDeleteLayer "DeleteLayer"
897 /* Reserved: "RenameLayer" */
898 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
899 #define ODsCCurveGeometries "CurveGeometries"
900 #define ODsCTransactions "Transactions"
901 #define ODsCEmulatedTransactions "EmulatedTransactions"
902 #define ODsCMeasuredGeometries "MeasuredGeometries"
903 #define ODsCZGeometries "ZGeometries"
904 #define ODsCRandomLayerRead "RandomLayerRead"
905 /* Note the unfortunate trailing space at the end of the string */
906 #define ODsCRandomLayerWrite "RandomLayerWrite "
907 #define ODsCAddFieldDomain "AddFieldDomain"
908 #define ODsCDeleteFieldDomain "DeleteFieldDomain"
909 #define ODsCUpdateFieldDomain "UpdateFieldDomain"
911 #define ODrCCreateDataSource "CreateDataSource"
912 #define ODrCDeleteDataSource "DeleteDataSource"
914 /* -------------------------------------------------------------------- */
915 /* Layer metadata items. */
916 /* -------------------------------------------------------------------- */
921 #define OLMD_FID64 "OLMD_FID64"
922
923 /************************************************************************/
924 /* ogr_featurestyle.h related definitions. */
925 /************************************************************************/
926
931 typedef enum ogr_style_tool_class_id
932 {
933 OGRSTCNone = 0,
934 OGRSTCPen = 1,
935 OGRSTCBrush = 2,
936 OGRSTCSymbol = 3,
937 OGRSTCLabel = 4,
938 OGRSTCVector = 5
939 } OGRSTClassId;
940
944 typedef enum ogr_style_tool_units_id
945 {
946 OGRSTUGround = 0,
947 OGRSTUPixel = 1,
948 OGRSTUPoints = 2,
949 OGRSTUMM = 3,
950 OGRSTUCM = 4,
951 OGRSTUInches = 5
952 } OGRSTUnitId;
953
957 typedef enum ogr_style_tool_param_pen_id
958 {
959 OGRSTPenColor = 0,
960 OGRSTPenWidth = 1,
961 OGRSTPenPattern = 2,
962 OGRSTPenId = 3,
963 OGRSTPenPerOffset = 4,
964 OGRSTPenCap = 5,
965 OGRSTPenJoin = 6,
966 OGRSTPenPriority = 7,
967 #ifndef DOXYGEN_SKIP
968 OGRSTPenLast = 8
969 #endif
970 } OGRSTPenParam;
971
975 typedef enum ogr_style_tool_param_brush_id
976 {
977 OGRSTBrushFColor = 0,
978 OGRSTBrushBColor = 1,
979 OGRSTBrushId = 2,
980 OGRSTBrushAngle = 3,
981 OGRSTBrushSize = 4,
982 OGRSTBrushDx = 5,
983 OGRSTBrushDy = 6,
984 OGRSTBrushPriority = 7,
985 #ifndef DOXYGEN_SKIP
986 OGRSTBrushLast = 8
987 #endif
988
989 } OGRSTBrushParam;
990
994 typedef enum ogr_style_tool_param_symbol_id
995 {
996 OGRSTSymbolId = 0,
997 OGRSTSymbolAngle = 1,
998 OGRSTSymbolColor = 2,
999 OGRSTSymbolSize = 3,
1000 OGRSTSymbolDx = 4,
1001 OGRSTSymbolDy = 5,
1002 OGRSTSymbolStep = 6,
1003 OGRSTSymbolPerp = 7,
1004 OGRSTSymbolOffset = 8,
1005 OGRSTSymbolPriority = 9,
1006 OGRSTSymbolFontName = 10,
1007 OGRSTSymbolOColor = 11,
1008 #ifndef DOXYGEN_SKIP
1009 OGRSTSymbolLast = 12
1010 #endif
1011 } OGRSTSymbolParam;
1012
1016 typedef enum ogr_style_tool_param_label_id
1017 {
1018 OGRSTLabelFontName = 0,
1019 OGRSTLabelSize = 1,
1020 OGRSTLabelTextString = 2,
1021 OGRSTLabelAngle = 3,
1022 OGRSTLabelFColor = 4,
1023 OGRSTLabelBColor = 5,
1024 OGRSTLabelPlacement = 6,
1025 OGRSTLabelAnchor = 7,
1026 OGRSTLabelDx = 8,
1027 OGRSTLabelDy = 9,
1028 OGRSTLabelPerp = 10,
1029 OGRSTLabelBold = 11,
1030 OGRSTLabelItalic = 12,
1031 OGRSTLabelUnderline = 13,
1032 OGRSTLabelPriority = 14,
1033 OGRSTLabelStrikeout = 15,
1034 OGRSTLabelStretch = 16,
1035 OGRSTLabelAdjHor = 17,
1036 OGRSTLabelAdjVert = 18,
1037 OGRSTLabelHColor = 19,
1038 OGRSTLabelOColor = 20,
1039 #ifndef DOXYGEN_SKIP
1040 OGRSTLabelLast = 21
1041 #endif
1042 } OGRSTLabelParam;
1043
1044 /* -------------------------------------------------------------------- */
1045 /* Field domains */
1046 /* -------------------------------------------------------------------- */
1047
1052 typedef struct
1053 {
1055 char* pszCode;
1056
1058 char* pszValue;
1059 } OGRCodedValue;
1060
1065 typedef enum
1066 {
1068 OFDT_CODED,
1070 OFDT_RANGE,
1072 OFDT_GLOB
1073 } OGRFieldDomainType;
1074
1082 typedef enum
1083 {
1085 OFDSP_DEFAULT_VALUE,
1087 OFDSP_DUPLICATE,
1089 OFDSP_GEOMETRY_RATIO
1090 } OGRFieldDomainSplitPolicy;
1091
1099 typedef enum
1100 {
1102 OFDMP_DEFAULT_VALUE,
1104 OFDMP_SUM,
1106 OFDMP_GEOMETRY_WEIGHTED
1107 } OGRFieldDomainMergePolicy;
1108
1109 /* ------------------------------------------------------------------- */
1110 /* Version checking */
1111 /* -------------------------------------------------------------------- */
1112
1113 #ifndef DOXYGEN_SKIP
1114
1115 /* Note to developers : please keep this section in sync with gdal.h */
1116
1117 #ifndef GDAL_VERSION_INFO_DEFINED
1118 #define GDAL_VERSION_INFO_DEFINED
1119 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
1120 #endif
1121
1122 #ifndef GDAL_CHECK_VERSION
1123
1135 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
1136 const char* pszCallingComponentName);
1137
1139 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
1140 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
1141
1142 #endif
1143
1144 #endif /* #ifndef DOXYGEN_SKIP */
1145
1146 CPL_C_END
1147
1148 #endif /* ndef OGR_CORE_H_INCLUDED */
OGRSTSymbolStep
@ OGRSTSymbolStep
Step.
Definition: ogr_core.h:1002
MAX
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition: cpl_port.h:381
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:2394
OGRSTLabelStretch
@ OGRSTLabelStretch
Stretch.
Definition: ogr_core.h:1034
OGREnvelope3D::Merge
void Merge(double dfX, double dfY, double dfZ)
Update the current object by computing its union with the provided point.
Definition: ogr_core.h:245
wkbTINM
@ wkbTINM
ISO SQL/MM Part 3.
Definition: ogr_core.h:429
OGREnvelope::OGREnvelope
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition: ogr_core.h:69
GDALVersionInfo
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition: gdal_misc.cpp:2230
wkbSurfaceM
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:427
wkbPointZM
@ wkbPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:432
wkbCurvePolygonZM
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:441
OGRFieldDomainMergePolicy
OGRFieldDomainMergePolicy
Merge policy for field domains.
Definition: ogr_core.h:1099
OFDSP_DEFAULT_VALUE
@ OFDSP_DEFAULT_VALUE
Default value.
Definition: ogr_core.h:1085
OGRFieldDomainType
OGRFieldDomainType
Type of field domain.
Definition: ogr_core.h:1065
OGRSTBrushSize
@ OGRSTBrushSize
Size.
Definition: ogr_core.h:981
GByte
unsigned char GByte
Unsigned byte type.
Definition: cpl_port.h:203
OGRSTLabelStrikeout
@ OGRSTLabelStrikeout
Strike out.
Definition: ogr_core.h:1033
OFSTFloat32
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition: ogr_core.h:745
OFTWideString
@ OFTWideString
deprecated
Definition: ogr_core.h:717
OGRSTUInches
@ OGRSTUInches
Inch.
Definition: ogr_core.h:951
OGRERR_UNSUPPORTED_GEOMETRY_TYPE
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition: ogr_core.h:346
GInt16
short GInt16
Int16 type.
Definition: cpl_port.h:199
OGR_GT_GetCollection
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6970
wkbMultiCurveZM
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:442
OGRSTLabelPerp
@ OGRSTLabelPerp
Perpendicular.
Definition: ogr_core.h:1028
OGRSTUCM
@ OGRSTUCM
Centimeter.
Definition: ogr_core.h:950
OFSTInt16
@ OFSTInt16
Signed 16-bit integer.
Definition: ogr_core.h:743
wkbMultiLineStringZM
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:436
OFTBinary
@ OFTBinary
Raw Binary data.
Definition: ogr_core.h:719
OGRSTSymbolPriority
@ OGRSTSymbolPriority
Priority.
Definition: ogr_core.h:1005
wkbPoint
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition: ogr_core.h:372
OGREnvelope::MinX
double MinX
Minimum X value.
Definition: ogr_core.h:78
OGRSTLabelBColor
@ OGRSTLabelBColor
Background color.
Definition: ogr_core.h:1023
OFSTBoolean
@ OFSTBoolean
Boolean integer.
Definition: ogr_core.h:741
OGRSTLabelFColor
@ OGRSTLabelFColor
Foreground color.
Definition: ogr_core.h:1022
wkbCurvePolygonZ
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition: ogr_core.h:405
wkbMultiSurfaceZM
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:443
wkbTriangleZ
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:412
OGR_GT_IsSubClassOf
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6906
wkbCompoundCurveZM
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:440
wkbMultiSurfaceM
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:425
wkbMultiPolygon
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition: ogr_core.h:380
OGR_GT_Flatten
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6758
wkbMultiPoint25D
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:455
wkbNDR
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition: ogr_core.h:553
ogr_style_tool_param_label_id
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition: ogr_core.h:1016
OGRSTClassId
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
OGRSTBrushParam
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
wkbVariantOldOgc
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition: ogr_core.h:486
OGR_GT_IsNonLinear
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:7160
wkbCompoundCurve
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:386
OGRSTLabelItalic
@ OGRSTLabelItalic
Italic.
Definition: ogr_core.h:1030
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:7075
OGRMergeGeometryTypes
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2757
wkbPolygon25D
@ wkbPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:454
OGRSTPenWidth
@ OGRSTPenWidth
Width.
Definition: ogr_core.h:960
OFTWideStringList
@ OFTWideStringList
deprecated
Definition: ogr_core.h:718
wkbPolygonZM
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:434
OGRSTLabelParam
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
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:6879
wkbVariantPostGIS1
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition: ogr_core.h:488
OFTDateTime
@ OFTDateTime
Date and Time.
Definition: ogr_core.h:722
wkbPolygonM
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:416
wkbTriangleM
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition: ogr_core.h:430
OGREnvelope3D::Contains
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition: ogr_core.h:292
OGRSTLabelAdjHor
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition: ogr_core.h:1035
wkbCircularString
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition: ogr_core.h:384
OGRSTLabelTextString
@ OGRSTLabelTextString
Text string.
Definition: ogr_core.h:1020
OFDMP_DEFAULT_VALUE
@ OFDMP_DEFAULT_VALUE
Default value.
Definition: ogr_core.h:1102
OFDMP_GEOMETRY_WEIGHTED
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition: ogr_core.h:1106
OGRSTPenParam
enum ogr_style_tool_param_pen_id OGRSTPenParam
List of parameters for use with OGRStylePen.
wkbMultiPolygonZM
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:437
ogr_style_tool_param_symbol_id
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition: ogr_core.h:994
wkbCurveM
@ wkbCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:426
MIN
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition: cpl_port.h:379
OGRSTLabelPlacement
@ OGRSTLabelPlacement
Placement.
Definition: ogr_core.h:1024
OGREnvelope3D::MinZ
double MinZ
Minimum Z value.
Definition: ogr_core.h:219
OGRSTCSymbol
@ OGRSTCSymbol
Symbol.
Definition: ogr_core.h:936
OGRSTCLabel
@ OGRSTCLabel
Label.
Definition: ogr_core.h:937
wkbPolyhedralSurfaceZM
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:446
wkbPoint25D
@ wkbPoint25D
2.5D extension as per 99-402
Definition: ogr_core.h:452
wkbSurfaceZM
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:445
wkbCircularStringZM
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:439
OGRSTUnitId
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
wkbCircularStringZ
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition: ogr_core.h:403
OGRBoolean
int OGRBoolean
Type for a OGR boolean.
Definition: ogr_core.h:357
wkbCurve
@ wkbCurve
Curve (abstract type).
Definition: ogr_core.h:392
OGRSTCNone
@ OGRSTCNone
None.
Definition: ogr_core.h:933
wkbMultiPointZM
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:435
OGRSTUPixel
@ OGRSTUPixel
Pixel.
Definition: ogr_core.h:947
OGRSTPenPriority
@ OGRSTPenPriority
Priority.
Definition: ogr_core.h:966
OGRMergeGeometryTypesEx
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2794
OGREnvelope3D::Intersects
int Intersects(OGREnvelope3D const &other) const
Return whether the current object intersects with the other rectangle.
Definition: ogr_core.h:284
wkbTINZM
@ wkbTINZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:447
OGR_GT_IsSurface
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:7138
OGREnvelope::MaxX
double MaxX
Maximum X value.
Definition: ogr_core.h:81
OGRSTSymbolDx
@ OGRSTSymbolDx
Dx.
Definition: ogr_core.h:1000
wkbLineStringZM
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:433
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:304
OGR_GT_SetM
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6852
OGRERR_UNSUPPORTED_SRS
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition: ogr_core.h:350
ogr_style_tool_class_id
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition: ogr_core.h:931
OGRParseDate
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition: ogrutils.cpp:945
OGRSTLabelOColor
@ OGRSTLabelOColor
Outline color.
Definition: ogr_core.h:1038
OGRwkbByteOrder
OGRwkbByteOrder
Enumeration to describe byte order.
Definition: ogr_core.h:550
OGRField
OGRFeature field attribute value union.
Definition: ogr_core.h:802
OGRSTSymbolAngle
@ OGRSTSymbolAngle
Angle.
Definition: ogr_core.h:997
OGRSTSymbolFontName
@ OGRSTSymbolFontName
Font name.
Definition: ogr_core.h:1006
OGRERR_UNSUPPORTED_OPERATION
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition: ogr_core.h:347
OFDSP_GEOMETRY_RATIO
@ OFDSP_GEOMETRY_RATIO
New values are computed by the ratio of their area/length compared to the area/length of the original...
Definition: ogr_core.h:1089
OGRCodedValue
Associates a code and a value.
Definition: ogr_core.h:1052
wkbCurvePolygon
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition: ogr_core.h:387
OGREnvelope3D::IsInit
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition: ogr_core.h:229
wkbLineStringM
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:415
OGRSTPenColor
@ OGRSTPenColor
Color.
Definition: ogr_core.h:959
OGRSTLabelDy
@ OGRSTLabelDy
Dy.
Definition: ogr_core.h:1027
OGRERR_FAILURE
#define OGRERR_FAILURE
Failure.
Definition: ogr_core.h:349
OGRSTUMM
@ OGRSTUMM
Millimeter.
Definition: ogr_core.h:949
OGR_GT_GetCurve
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:7026
OFTString
@ OFTString
String of ASCII chars.
Definition: ogr_core.h:715
CPLIsNan
#define CPLIsNan(x)
Return whether a floating-pointer number is NaN.
Definition: cpl_port.h:609
wkbMultiPolygon25D
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition: ogr_core.h:457
wkbCircularStringM
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:421
OFTIntegerList
@ OFTIntegerList
List of 32bit integers.
Definition: ogr_core.h:712
wkbMultiSurface
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition: ogr_core.h:391
OGRSTCBrush
@ OGRSTCBrush
Brush.
Definition: ogr_core.h:935
OGRERR_NOT_ENOUGH_MEMORY
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition: ogr_core.h:345
OGRSTLabelFontName
@ OGRSTLabelFontName
Font name.
Definition: ogr_core.h:1018
OGRSTLabelPriority
@ OGRSTLabelPriority
Priority.
Definition: ogr_core.h:1032
wkbPolyhedralSurface
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition: ogr_core.h:394
wkbCurvePolygonM
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:423
OFSTUUID
@ OFSTUUID
UUID string representation.
Definition: ogr_core.h:753
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:306
wkbMultiPointM
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:417
OGRSTLabelUnderline
@ OGRSTLabelUnderline
Underline.
Definition: ogr_core.h:1031
wkbGeometryCollectionM
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition: ogr_core.h:420
OGRSTCVector
@ OGRSTCVector
Vector.
Definition: ogr_core.h:938
OGRSTLabelAnchor
@ OGRSTLabelAnchor
Anchor.
Definition: ogr_core.h:1025
OFTInteger
@ OFTInteger
Simple 32bit integer.
Definition: ogr_core.h:711
wkbVariantIso
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition: ogr_core.h:487
OGRSTLabelAngle
@ OGRSTLabelAngle
Angle.
Definition: ogr_core.h:1021
OGR_GT_IsCurve
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:7117
OFDMP_SUM
@ OFDMP_SUM
Sum.
Definition: ogr_core.h:1104
OGRSTSymbolDy
@ OGRSTSymbolDy
Dy.
Definition: ogr_core.h:1001
OGRSTBrushDx
@ OGRSTBrushDx
Dx.
Definition: ogr_core.h:982
wkbNone
@ wkbNone
non-standard, for pure attribute records
Definition: ogr_core.h:400
OGREnvelope::MaxY
double MaxY
Maximum Y value.
Definition: ogr_core.h:87
OFTInteger64List
@ OFTInteger64List
List of 64bit integers.
Definition: ogr_core.h:724
wkbPolygon
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition: ogr_core.h:375
OFDT_RANGE
@ OFDT_RANGE
Range (min/max)
Definition: ogr_core.h:1070
wkbMultiCurveM
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:424
OGREnvelope::Intersect
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition: ogr_core.h:117
OGRCodedValue::pszValue
char * pszValue
Value.
Definition: ogr_core.h:1058
wkbMultiLineString25D
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:456
OFDT_GLOB
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition: ogr_core.h:1072
OGRJustification
OGRJustification
Display justification for field values.
Definition: ogr_core.h:761
wkbCompoundCurveM
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition: ogr_core.h:422
wkbPolyhedralSurfaceM
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition: ogr_core.h:428
OGRSTSymbolParam
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
OGREnvelope3D::OGREnvelope3D
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition: ogr_core.h:209
OFSTNone
@ OFSTNone
No subtype.
Definition: ogr_core.h:739
OFTStringList
@ OFTStringList
Array of strings.
Definition: ogr_core.h:716
OGRSTBrushFColor
@ OGRSTBrushFColor
Foreground color.
Definition: ogr_core.h:977
wkbSurface
@ wkbSurface
Surface (abstract type).
Definition: ogr_core.h:393
OGREnvelope::Merge
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition: ogr_core.h:109
OGRSTBrushDy
@ OGRSTBrushDy
Dy.
Definition: ogr_core.h:983
wkbLinearRing
@ wkbLinearRing
non-standard, just for createGeometry()
Definition: ogr_core.h:401
OGRERR_NOT_ENOUGH_DATA
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition: ogr_core.h:344
OGRSTSymbolId
@ OGRSTSymbolId
Id.
Definition: ogr_core.h:996
OGRERR_CORRUPT_DATA
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition: ogr_core.h:348
OGRSTBrushBColor
@ OGRSTBrushBColor
Background color.
Definition: ogr_core.h:978
OFTTime
@ OFTTime
Time.
Definition: ogr_core.h:721
OGRSTUGround
@ OGRSTUGround
Ground unit.
Definition: ogr_core.h:946
OFDT_CODED
@ OFDT_CODED
Coded.
Definition: ogr_core.h:1068
OGRSTSymbolSize
@ OGRSTSymbolSize
Size.
Definition: ogr_core.h:999
OGREnvelope::MinY
double MinY
Minimum Y value.
Definition: ogr_core.h:84
OGRSTLabelHColor
@ OGRSTLabelHColor
Highlight color.
Definition: ogr_core.h:1037
OGRFieldDomainSplitPolicy
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition: ogr_core.h:1082
OGRErr
int OGRErr
Type for a OGR error.
Definition: ogr_core.h:341
wkbCompoundCurveZ
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition: ogr_core.h:404
OGRSTSymbolOffset
@ OGRSTSymbolOffset
Offset.
Definition: ogr_core.h:1004
ogr_style_tool_param_pen_id
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition: ogr_core.h:957
GIntBig
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:230
OGRSTBrushId
@ OGRSTBrushId
Id.
Definition: ogr_core.h:979
ogr_style_tool_param_brush_id
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition: ogr_core.h:975
wkbCurveZ
@ wkbCurveZ
wkbCurve with Z component.
Definition: ogr_core.h:408
OGR_GT_HasZ
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6783
OGRwkbGeometryType
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:368
OGRSTPenCap
@ OGRSTPenCap
Cap.
Definition: ogr_core.h:964
OGR_GT_HasM
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6807
wkbTINZ
@ wkbTINZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:411
OGRSTCPen
@ OGRSTCPen
Pen.
Definition: ogr_core.h:934
OGRGeometryTypeToName
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition: ogrgeometry.cpp:2534
OFTDate
@ OFTDate
Date.
Definition: ogr_core.h:720
cpl_port.h
OGRSTPenPerOffset
@ OGRSTPenPerOffset
Perpendicular offset.
Definition: ogr_core.h:963
OGRFieldSubType
OGRFieldSubType
List of field subtypes.
Definition: ogr_core.h:737
OGREnvelope3D::Intersect
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition: ogr_core.h:255
wkbTriangleZM
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:448
OGREnvelope::Contains
int Contains(OGREnvelope const &other) const
Return whether the current object contains the other rectangle.
Definition: ogr_core.h:149
OGREnvelope::OGREnvelope
OGREnvelope()
Default constructor.
Definition: ogr_core.h:61
wkbXDR
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition: ogr_core.h:552
OGREnvelope3D
Simple container for a bounding region in 3D.
Definition: ogr_core.h:198
OGRSTBrushPriority
@ OGRSTBrushPriority
Priority.
Definition: ogr_core.h:984
OFTRealList
@ OFTRealList
List of doubles.
Definition: ogr_core.h:714
OFDSP_DUPLICATE
@ OFDSP_DUPLICATE
Duplicate.
Definition: ogr_core.h:1087
OGREnvelope::IsInit
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition: ogr_core.h:94
wkbGeometryCollection25D
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition: ogr_core.h:458
OFSTJSON
@ OFSTJSON
JSON content.
Definition: ogr_core.h:749
ogr_style_tool_units_id
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition: ogr_core.h:944
wkbGeometryCollection
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition: ogr_core.h:381
OGRFieldType
OGRFieldType
List of feature field types.
Definition: ogr_core.h:709
wkbMultiCurveZ
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition: ogr_core.h:406
OGRSTPenJoin
@ OGRSTPenJoin
Join.
Definition: ogr_core.h:965
wkbPolyhedralSurfaceZ
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition: ogr_core.h:410
wkbMultiCurve
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition: ogr_core.h:390
OGRSTSymbolColor
@ OGRSTSymbolColor
Color.
Definition: ogr_core.h:998
wkbMultiPolygonM
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition: ogr_core.h:419
wkbLineString25D
@ wkbLineString25D
2.5D extension as per 99-402
Definition: ogr_core.h:453
OFTInteger64
@ OFTInteger64
Single 64bit integer.
Definition: ogr_core.h:723
wkbGeometryCollectionZM
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:438
OGREnvelope
Simple container for a bounding region (rectangle)
Definition: ogr_core.h:57
OGRSTUPoints
@ OGRSTUPoints
Points.
Definition: ogr_core.h:948
OGREnvelope3D::MaxZ
double MaxZ
Maximum Z value.
Definition: ogr_core.h:222
OGRERR_NONE
#define OGRERR_NONE
Success.
Definition: ogr_core.h:343
OGREnvelope3D::Merge
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:235
wkbMultiSurfaceZ
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition: ogr_core.h:407
OGRSTLabelAdjVert
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition: ogr_core.h:1036
OGREnvelope::operator=
OGREnvelope & operator=(const OGREnvelope &)=default
Assignment operator.
OGRSTSymbolOColor
@ OGRSTSymbolOColor
Outline color.
Definition: ogr_core.h:1007
OGRSTLabelDx
@ OGRSTLabelDx
Dx.
Definition: ogr_core.h:1026
wkbTriangle
@ wkbTriangle
a Triangle.
Definition: ogr_core.h:398
wkbLineString
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition: ogr_core.h:373
OGRSTPenId
@ OGRSTPenId
Id.
Definition: ogr_core.h:962
wkbMultiLineString
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition: ogr_core.h:379
OGRCodedValue::pszCode
char * pszCode
Code.
Definition: ogr_core.h:1055
OGREnvelope3D::OGREnvelope3D
OGREnvelope3D()
Default constructor.
Definition: ogr_core.h:202
wkbCurveZM
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition: ogr_core.h:444
OGR_GET_MS
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition: ogr_core.h:856
OFTReal
@ OFTReal
Double Precision floating point.
Definition: ogr_core.h:713
OGRSTSymbolPerp
@ OGRSTSymbolPerp
Perpendicular.
Definition: ogr_core.h:1003
OGRSTBrushAngle
@ OGRSTBrushAngle
Angle.
Definition: ogr_core.h:980
OGRERR_NON_EXISTING_FEATURE
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition: ogr_core.h:352
OGRSTPenPattern
@ OGRSTPenPattern
Pattern.
Definition: ogr_core.h:961
wkbMultiLineStringM
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition: ogr_core.h:418
OGRERR_INVALID_HANDLE
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition: ogr_core.h:351
OGR_GT_SetZ
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6829
OGREnvelope::Merge
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition: ogr_core.h:101
wkbUnknown
@ wkbUnknown
unknown type, non-standard
Definition: ogr_core.h:370
wkbTIN
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition: ogr_core.h:396
OGRSTLabelSize
@ OGRSTLabelSize
Size.
Definition: ogr_core.h:1019
OGREnvelope::Intersects
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition: ogr_core.h:142
OGRSTLabelBold
@ OGRSTLabelBold
Bold.
Definition: ogr_core.h:1029
OGRwkbVariant
OGRwkbVariant
Output variants of WKB we support.
Definition: ogr_core.h:484
wkbPointM
@ wkbPointM
ISO SQL/MM Part 3.
Definition: ogr_core.h:414
wkbMultiPoint
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition: ogr_core.h:378
wkbSurfaceZ
@ wkbSurfaceZ
wkbSurface with Z component.
Definition: ogr_core.h:409