|
GDAL
|
00001 /****************************************************************************** 00002 * $Id: ogr_core.h 37856 2017-03-28 12:10:47Z rouault $ 00003 * 00004 * Project: OpenGIS Simple Features Reference Implementation 00005 * Purpose: Define some core portability services for cross-platform OGR code. 00006 * Author: Frank Warmerdam, warmerdam@pobox.com 00007 * 00008 ****************************************************************************** 00009 * Copyright (c) 1999, Frank Warmerdam 00010 * Copyright (c) 2007-2014, Even Rouault <even dot rouault at mines-paris dot org> 00011 * 00012 * Permission is hereby granted, free of charge, to any person obtaining a 00013 * copy of this software and associated documentation files (the "Software"), 00014 * to deal in the Software without restriction, including without limitation 00015 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00016 * and/or sell copies of the Software, and to permit persons to whom the 00017 * Software is furnished to do so, subject to the following conditions: 00018 * 00019 * The above copyright notice and this permission notice shall be included 00020 * in all copies or substantial portions of the Software. 00021 * 00022 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00023 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00024 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00025 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00026 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00027 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00028 * DEALINGS IN THE SOFTWARE. 00029 ****************************************************************************/ 00030 00031 #ifndef OGR_CORE_H_INCLUDED 00032 #define OGR_CORE_H_INCLUDED 00033 00034 #include "cpl_port.h" 00035 #include "gdal_version.h" 00036 00048 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP) 00049 00050 extern "C++" 00051 { 00052 #include <limits> 00053 00054 class CPL_DLL OGREnvelope 00055 { 00056 public: 00057 OGREnvelope() : MinX(std::numeric_limits<double>::infinity()), 00058 MaxX(-std::numeric_limits<double>::infinity()), 00059 MinY(std::numeric_limits<double>::infinity()), 00060 MaxY(-std::numeric_limits<double>::infinity()) 00061 { 00062 } 00063 00064 OGREnvelope(const OGREnvelope& oOther) : 00065 MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY) 00066 { 00067 } 00068 00069 double MinX; 00070 double MaxX; 00071 double MinY; 00072 double MaxY; 00073 00074 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH 00075 #pragma GCC diagnostic push 00076 #pragma GCC diagnostic ignored "-Wfloat-equal" 00077 #endif 00078 int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); } 00079 00080 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH 00081 #pragma GCC diagnostic pop 00082 #endif 00083 00084 void Merge( OGREnvelope const& sOther ) { 00085 MinX = MIN(MinX,sOther.MinX); 00086 MaxX = MAX(MaxX,sOther.MaxX); 00087 MinY = MIN(MinY,sOther.MinY); 00088 MaxY = MAX(MaxY,sOther.MaxY); 00089 } 00090 00091 void Merge( double dfX, double dfY ) { 00092 MinX = MIN(MinX,dfX); 00093 MaxX = MAX(MaxX,dfX); 00094 MinY = MIN(MinY,dfY); 00095 MaxY = MAX(MaxY,dfY); 00096 } 00097 00098 void Intersect( OGREnvelope const& sOther ) { 00099 if(Intersects(sOther)) 00100 { 00101 if( IsInit() ) 00102 { 00103 MinX = MAX(MinX,sOther.MinX); 00104 MaxX = MIN(MaxX,sOther.MaxX); 00105 MinY = MAX(MinY,sOther.MinY); 00106 MaxY = MIN(MaxY,sOther.MaxY); 00107 } 00108 else 00109 { 00110 MinX = sOther.MinX; 00111 MaxX = sOther.MaxX; 00112 MinY = sOther.MinY; 00113 MaxY = sOther.MaxY; 00114 } 00115 } 00116 else 00117 { 00118 *this = OGREnvelope(); 00119 } 00120 } 00121 00122 int Intersects(OGREnvelope const& other) const 00123 { 00124 return MinX <= other.MaxX && MaxX >= other.MinX && 00125 MinY <= other.MaxY && MaxY >= other.MinY; 00126 } 00127 00128 int Contains(OGREnvelope const& other) const 00129 { 00130 return MinX <= other.MinX && MinY <= other.MinY && 00131 MaxX >= other.MaxX && MaxY >= other.MaxY; 00132 } 00133 }; 00134 00135 } // extern "C++" 00136 00137 #else 00138 typedef struct 00139 { 00140 double MinX; 00141 double MaxX; 00142 double MinY; 00143 double MaxY; 00144 } OGREnvelope; 00145 #endif 00146 00151 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP) 00152 00153 extern "C++" { 00154 00155 class CPL_DLL OGREnvelope3D : public OGREnvelope 00156 { 00157 public: 00158 OGREnvelope3D() : OGREnvelope(), 00159 MinZ(std::numeric_limits<double>::infinity()), 00160 MaxZ(-std::numeric_limits<double>::infinity()) 00161 { 00162 } 00163 00164 OGREnvelope3D(const OGREnvelope3D& oOther) : 00165 OGREnvelope(oOther), 00166 MinZ(oOther.MinZ), MaxZ(oOther.MaxZ) 00167 { 00168 } 00169 00170 double MinZ; 00171 double MaxZ; 00172 00173 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH 00174 #pragma GCC diagnostic push 00175 #pragma GCC diagnostic ignored "-Wfloat-equal" 00176 #endif 00177 int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); } 00178 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH 00179 #pragma GCC diagnostic pop 00180 #endif 00181 00182 void Merge( OGREnvelope3D const& sOther ) { 00183 MinX = MIN(MinX,sOther.MinX); 00184 MaxX = MAX(MaxX,sOther.MaxX); 00185 MinY = MIN(MinY,sOther.MinY); 00186 MaxY = MAX(MaxY,sOther.MaxY); 00187 MinZ = MIN(MinZ,sOther.MinZ); 00188 MaxZ = MAX(MaxZ,sOther.MaxZ); 00189 } 00190 00191 void Merge( double dfX, double dfY, double dfZ ) { 00192 MinX = MIN(MinX,dfX); 00193 MaxX = MAX(MaxX,dfX); 00194 MinY = MIN(MinY,dfY); 00195 MaxY = MAX(MaxY,dfY); 00196 MinZ = MIN(MinZ,dfZ); 00197 MaxZ = MAX(MaxZ,dfZ); 00198 } 00199 00200 void Intersect( OGREnvelope3D const& sOther ) { 00201 if(Intersects(sOther)) 00202 { 00203 if( IsInit() ) 00204 { 00205 MinX = MAX(MinX,sOther.MinX); 00206 MaxX = MIN(MaxX,sOther.MaxX); 00207 MinY = MAX(MinY,sOther.MinY); 00208 MaxY = MIN(MaxY,sOther.MaxY); 00209 MinZ = MAX(MinZ,sOther.MinZ); 00210 MaxZ = MIN(MaxZ,sOther.MaxZ); 00211 } 00212 else 00213 { 00214 MinX = sOther.MinX; 00215 MaxX = sOther.MaxX; 00216 MinY = sOther.MinY; 00217 MaxY = sOther.MaxY; 00218 MinZ = sOther.MinZ; 00219 MaxZ = sOther.MaxZ; 00220 } 00221 } 00222 else 00223 { 00224 *this = OGREnvelope3D(); 00225 } 00226 } 00227 00228 int Intersects(OGREnvelope3D const& other) const 00229 { 00230 return MinX <= other.MaxX && MaxX >= other.MinX && 00231 MinY <= other.MaxY && MaxY >= other.MinY && 00232 MinZ <= other.MaxZ && MaxZ >= other.MinZ; 00233 } 00234 00235 int Contains(OGREnvelope3D const& other) const 00236 { 00237 return MinX <= other.MinX && MinY <= other.MinY && 00238 MaxX >= other.MaxX && MaxY >= other.MaxY && 00239 MinZ <= other.MinZ && MaxZ >= other.MaxZ; 00240 } 00241 }; 00242 00243 } // extern "C++" 00244 00245 #else 00246 typedef struct 00247 { 00248 double MinX; 00249 double MaxX; 00250 double MinY; 00251 double MaxY; 00252 double MinZ; 00253 double MaxZ; 00254 } OGREnvelope3D; 00255 #endif 00256 00258 CPL_C_START 00259 00261 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead."); 00262 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead."); 00263 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead."); 00264 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead."); 00265 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead."); 00268 #ifdef STRICT_OGRERR_TYPE 00269 00270 typedef enum 00271 { 00272 OGRERR_NONE, 00273 OGRERR_NOT_ENOUGH_DATA, 00274 OGRERR_NOT_ENOUGH_MEMORY, 00275 OGRERR_UNSUPPORTED_GEOMETRY_TYPE, 00276 OGRERR_UNSUPPORTED_OPERATION, 00277 OGRERR_CORRUPT_DATA, 00278 OGRERR_FAILURE, 00279 OGRERR_UNSUPPORTED_SRS, 00280 OGRERR_INVALID_HANDLE, 00281 OGRERR_NON_EXISTING_FEATURE 00282 } OGRErr; 00283 #else 00284 00285 typedef int OGRErr; 00286 00287 #define OGRERR_NONE 0 00288 #define OGRERR_NOT_ENOUGH_DATA 1 00289 #define OGRERR_NOT_ENOUGH_MEMORY 2 00290 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3 00291 #define OGRERR_UNSUPPORTED_OPERATION 4 00292 #define OGRERR_CORRUPT_DATA 5 00293 #define OGRERR_FAILURE 6 00294 #define OGRERR_UNSUPPORTED_SRS 7 00295 #define OGRERR_INVALID_HANDLE 8 00296 #define OGRERR_NON_EXISTING_FEATURE 9 00298 #endif 00299 00301 typedef int OGRBoolean; 00302 00303 /* -------------------------------------------------------------------- */ 00304 /* ogr_geometry.h related definitions. */ 00305 /* -------------------------------------------------------------------- */ 00306 00312 typedef enum 00313 { 00314 wkbUnknown = 0, 00316 wkbPoint = 1, 00317 wkbLineString = 2, 00319 wkbPolygon = 3, 00322 wkbMultiPoint = 4, 00323 wkbMultiLineString = 5, 00324 wkbMultiPolygon = 6, 00325 wkbGeometryCollection = 7, 00328 wkbCircularString = 8, 00330 wkbCompoundCurve = 9, 00331 wkbCurvePolygon = 10, 00334 wkbMultiCurve = 11, 00335 wkbMultiSurface = 12, 00336 wkbCurve = 13, 00337 wkbSurface = 14, 00338 wkbPolyhedralSurface = 15, 00340 wkbTIN = 16, 00342 wkbTriangle = 17, 00344 wkbNone = 100, 00345 wkbLinearRing = 101, 00347 wkbCircularStringZ = 1008, 00348 wkbCompoundCurveZ = 1009, 00349 wkbCurvePolygonZ = 1010, 00350 wkbMultiCurveZ = 1011, 00351 wkbMultiSurfaceZ = 1012, 00352 wkbCurveZ = 1013, 00353 wkbSurfaceZ = 1014, 00354 wkbPolyhedralSurfaceZ = 1015, 00355 wkbTINZ = 1016, 00356 wkbTriangleZ = 1017, 00358 wkbPointM = 2001, 00359 wkbLineStringM = 2002, 00360 wkbPolygonM = 2003, 00361 wkbMultiPointM = 2004, 00362 wkbMultiLineStringM = 2005, 00363 wkbMultiPolygonM = 2006, 00364 wkbGeometryCollectionM = 2007, 00365 wkbCircularStringM = 2008, 00366 wkbCompoundCurveM = 2009, 00367 wkbCurvePolygonM = 2010, 00368 wkbMultiCurveM = 2011, 00369 wkbMultiSurfaceM = 2012, 00370 wkbCurveM = 2013, 00371 wkbSurfaceM = 2014, 00372 wkbPolyhedralSurfaceM = 2015, 00373 wkbTINM = 2016, 00374 wkbTriangleM = 2017, 00376 wkbPointZM = 3001, 00377 wkbLineStringZM = 3002, 00378 wkbPolygonZM = 3003, 00379 wkbMultiPointZM = 3004, 00380 wkbMultiLineStringZM = 3005, 00381 wkbMultiPolygonZM = 3006, 00382 wkbGeometryCollectionZM = 3007, 00383 wkbCircularStringZM = 3008, 00384 wkbCompoundCurveZM = 3009, 00385 wkbCurvePolygonZM = 3010, 00386 wkbMultiCurveZM = 3011, 00387 wkbMultiSurfaceZM = 3012, 00388 wkbCurveZM = 3013, 00389 wkbSurfaceZM = 3014, 00390 wkbPolyhedralSurfaceZM = 3015, 00391 wkbTINZM = 3016, 00392 wkbTriangleZM = 3017, 00394 wkbPoint25D = 0x80000001, 00395 wkbLineString25D = 0x80000002, 00396 wkbPolygon25D = 0x80000003, 00397 wkbMultiPoint25D = 0x80000004, 00398 wkbMultiLineString25D = 0x80000005, 00399 wkbMultiPolygon25D = 0x80000006, 00400 wkbGeometryCollection25D = 0x80000007 00402 } OGRwkbGeometryType; 00403 00418 typedef enum 00419 { 00420 wkbVariantOldOgc, 00421 wkbVariantIso, 00422 wkbVariantPostGIS1 00423 } OGRwkbVariant; 00424 00425 #ifndef GDAL_COMPILATION 00426 00427 #define wkb25DBit 0x80000000 00428 #endif 00429 00431 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x)) 00432 00436 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0) 00437 00441 #define wkbSetZ(x) OGR_GT_SetZ(x) 00442 00446 #define wkbHasM(x) (OGR_GT_HasM(x) != 0) 00447 00451 #define wkbSetM(x) OGR_GT_SetM(x) 00452 00453 #ifndef DOXYGEN_SKIP 00454 #define ogrZMarker 0x21125711 00455 #endif 00456 00457 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType ); 00458 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypes( OGRwkbGeometryType eMain, 00459 OGRwkbGeometryType eExtra ); 00460 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypesEx( OGRwkbGeometryType eMain, 00461 OGRwkbGeometryType eExtra, 00462 int bAllowPromotingToCurves ); 00463 OGRwkbGeometryType CPL_DLL OGR_GT_Flatten( OGRwkbGeometryType eType ); 00464 OGRwkbGeometryType CPL_DLL OGR_GT_SetZ( OGRwkbGeometryType eType ); 00465 OGRwkbGeometryType CPL_DLL OGR_GT_SetM( OGRwkbGeometryType eType ); 00466 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM ); 00467 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType ); 00468 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType ); 00469 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType, 00470 OGRwkbGeometryType eSuperType ); 00471 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType ); 00472 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType ); 00473 int CPL_DLL OGR_GT_IsNonLinear( OGRwkbGeometryType ); 00474 OGRwkbGeometryType CPL_DLL OGR_GT_GetCollection( OGRwkbGeometryType eType ); 00475 OGRwkbGeometryType CPL_DLL OGR_GT_GetCurve( OGRwkbGeometryType eType ); 00476 OGRwkbGeometryType CPL_DLL OGR_GT_GetLinear( OGRwkbGeometryType eType ); 00477 00479 typedef enum 00480 { 00481 wkbXDR = 0, 00482 wkbNDR = 1 00483 } OGRwkbByteOrder; 00484 00485 #ifndef DOXYGEN_SKIP 00486 00487 #ifndef NO_HACK_FOR_IBM_DB2_V72 00488 # define HACK_FOR_IBM_DB2_V72 00489 #endif 00490 00491 #ifdef HACK_FOR_IBM_DB2_V72 00492 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x)) 00493 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x))) 00494 #else 00495 # define DB2_V72_FIX_BYTE_ORDER(x) (x) 00496 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x) 00497 #endif 00498 00499 #endif /* #ifndef DOXYGEN_SKIP */ 00500 00504 #define ALTER_NAME_FLAG 0x1 00505 00509 #define ALTER_TYPE_FLAG 0x2 00510 00514 #define ALTER_WIDTH_PRECISION_FLAG 0x4 00515 00520 #define ALTER_NULLABLE_FLAG 0x8 00521 00526 #define ALTER_DEFAULT_FLAG 0x10 00527 00531 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG) 00532 00537 #define OGR_F_VAL_NULL 0x00000001 00538 00543 #define OGR_F_VAL_GEOM_TYPE 0x00000002 00544 00549 #define OGR_F_VAL_WIDTH 0x00000004 00550 00558 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008 00559 00566 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010 00567 00572 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM) 00573 00574 /************************************************************************/ 00575 /* ogr_feature.h related definitions. */ 00576 /************************************************************************/ 00577 00584 typedef enum 00585 { 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, 00600 OFTMaxType = 13 00601 } OGRFieldType; 00602 00612 typedef enum 00613 { OFSTNone = 0, 00616 OFSTBoolean = 1, 00618 OFSTInt16 = 2, 00620 OFSTFloat32 = 3, 00621 OFSTMaxSubType = 3 00622 } OGRFieldSubType; 00623 00628 typedef enum 00629 { 00630 OJUndefined = 0, 00631 OJLeft = 1, 00632 OJRight = 2 00633 } OGRJustification; 00634 00636 #define OGRNullFID -1 00637 00643 #define OGRUnsetMarker -21121 00644 00651 #define OGRNullMarker -21122 00652 00653 /************************************************************************/ 00654 /* OGRField */ 00655 /************************************************************************/ 00656 00661 typedef union { 00663 int Integer; 00664 GIntBig Integer64; 00665 double Real; 00666 char *String; 00667 00668 struct { 00669 int nCount; 00670 int *paList; 00671 } IntegerList; 00672 00673 struct { 00674 int nCount; 00675 GIntBig *paList; 00676 } Integer64List; 00677 00678 struct { 00679 int nCount; 00680 double *paList; 00681 } RealList; 00682 00683 struct { 00684 int nCount; 00685 char **paList; 00686 } StringList; 00687 00688 struct { 00689 int nCount; 00690 GByte *paData; 00691 } Binary; 00692 00693 struct { 00694 int nMarker1; 00695 int nMarker2; 00696 int nMarker3; 00697 } Set; 00698 00699 struct { 00700 GInt16 Year; 00701 GByte Month; 00702 GByte Day; 00703 GByte Hour; 00704 GByte Minute; 00705 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous), 00706 100=GMT, 104=GMT+1, 80=GMT-5, etc */ 00707 GByte Reserved; /* must be set to 0 */ 00708 float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */ 00709 } Date; 00711 } OGRField; 00712 00714 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5) 00715 00716 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput, 00717 int nOptions ); 00718 00719 /* -------------------------------------------------------------------- */ 00720 /* Constants from ogrsf_frmts.h for capabilities. */ 00721 /* -------------------------------------------------------------------- */ 00722 #define OLCRandomRead "RandomRead" 00723 #define OLCSequentialWrite "SequentialWrite" 00724 #define OLCRandomWrite "RandomWrite" 00725 #define OLCFastSpatialFilter "FastSpatialFilter" 00726 #define OLCFastFeatureCount "FastFeatureCount" 00727 #define OLCFastGetExtent "FastGetExtent" 00728 #define OLCCreateField "CreateField" 00729 #define OLCDeleteField "DeleteField" 00730 #define OLCReorderFields "ReorderFields" 00731 #define OLCAlterFieldDefn "AlterFieldDefn" 00732 #define OLCTransactions "Transactions" 00733 #define OLCDeleteFeature "DeleteFeature" 00734 #define OLCFastSetNextByIndex "FastSetNextByIndex" 00735 #define OLCStringsAsUTF8 "StringsAsUTF8" 00736 #define OLCIgnoreFields "IgnoreFields" 00737 #define OLCCreateGeomField "CreateGeomField" 00738 #define OLCCurveGeometries "CurveGeometries" 00739 #define OLCMeasuredGeometries "MeasuredGeometries" 00741 #define ODsCCreateLayer "CreateLayer" 00742 #define ODsCDeleteLayer "DeleteLayer" 00743 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer" 00744 #define ODsCCurveGeometries "CurveGeometries" 00745 #define ODsCTransactions "Transactions" 00746 #define ODsCEmulatedTransactions "EmulatedTransactions" 00747 #define ODsCMeasuredGeometries "MeasuredGeometries" 00748 #define ODsCRandomLayerRead "RandomLayerRead" 00749 #define ODsCRandomLayerWrite "RandomLayerWrite " 00751 #define ODrCCreateDataSource "CreateDataSource" 00752 #define ODrCDeleteDataSource "DeleteDataSource" 00754 /* -------------------------------------------------------------------- */ 00755 /* Layer metadata items. */ 00756 /* -------------------------------------------------------------------- */ 00761 #define OLMD_FID64 "OLMD_FID64" 00762 00763 /************************************************************************/ 00764 /* ogr_featurestyle.h related definitions. */ 00765 /************************************************************************/ 00766 00771 typedef enum ogr_style_tool_class_id 00772 { 00773 OGRSTCNone = 0, 00774 OGRSTCPen = 1, 00775 OGRSTCBrush = 2, 00776 OGRSTCSymbol = 3, 00777 OGRSTCLabel = 4, 00778 OGRSTCVector = 5 00779 } OGRSTClassId; 00780 00784 typedef enum ogr_style_tool_units_id 00785 { 00786 OGRSTUGround = 0, 00787 OGRSTUPixel = 1, 00788 OGRSTUPoints = 2, 00789 OGRSTUMM = 3, 00790 OGRSTUCM = 4, 00791 OGRSTUInches = 5 00792 } OGRSTUnitId; 00793 00797 typedef enum ogr_style_tool_param_pen_id 00798 { 00799 OGRSTPenColor = 0, 00800 OGRSTPenWidth = 1, 00801 OGRSTPenPattern = 2, 00802 OGRSTPenId = 3, 00803 OGRSTPenPerOffset = 4, 00804 OGRSTPenCap = 5, 00805 OGRSTPenJoin = 6, 00806 OGRSTPenPriority = 7, 00807 #ifndef DOXYGEN_SKIP 00808 OGRSTPenLast = 8 00809 #endif 00810 } OGRSTPenParam; 00811 00815 typedef enum ogr_style_tool_param_brush_id 00816 { 00817 OGRSTBrushFColor = 0, 00818 OGRSTBrushBColor = 1, 00819 OGRSTBrushId = 2, 00820 OGRSTBrushAngle = 3, 00821 OGRSTBrushSize = 4, 00822 OGRSTBrushDx = 5, 00823 OGRSTBrushDy = 6, 00824 OGRSTBrushPriority = 7, 00825 #ifndef DOXYGEN_SKIP 00826 OGRSTBrushLast = 8 00827 #endif 00828 00829 } OGRSTBrushParam; 00830 00834 typedef enum ogr_style_tool_param_symbol_id 00835 { 00836 OGRSTSymbolId = 0, 00837 OGRSTSymbolAngle = 1, 00838 OGRSTSymbolColor = 2, 00839 OGRSTSymbolSize = 3, 00840 OGRSTSymbolDx = 4, 00841 OGRSTSymbolDy = 5, 00842 OGRSTSymbolStep = 6, 00843 OGRSTSymbolPerp = 7, 00844 OGRSTSymbolOffset = 8, 00845 OGRSTSymbolPriority = 9, 00846 OGRSTSymbolFontName = 10, 00847 OGRSTSymbolOColor = 11, 00848 #ifndef DOXYGEN_SKIP 00849 OGRSTSymbolLast = 12 00850 #endif 00851 } OGRSTSymbolParam; 00852 00856 typedef enum ogr_style_tool_param_label_id 00857 { 00858 OGRSTLabelFontName = 0, 00859 OGRSTLabelSize = 1, 00860 OGRSTLabelTextString = 2, 00861 OGRSTLabelAngle = 3, 00862 OGRSTLabelFColor = 4, 00863 OGRSTLabelBColor = 5, 00864 OGRSTLabelPlacement = 6, 00865 OGRSTLabelAnchor = 7, 00866 OGRSTLabelDx = 8, 00867 OGRSTLabelDy = 9, 00868 OGRSTLabelPerp = 10, 00869 OGRSTLabelBold = 11, 00870 OGRSTLabelItalic = 12, 00871 OGRSTLabelUnderline = 13, 00872 OGRSTLabelPriority = 14, 00873 OGRSTLabelStrikeout = 15, 00874 OGRSTLabelStretch = 16, 00875 OGRSTLabelAdjHor = 17, 00876 OGRSTLabelAdjVert = 18, 00877 OGRSTLabelHColor = 19, 00878 OGRSTLabelOColor = 20, 00879 #ifndef DOXYGEN_SKIP 00880 OGRSTLabelLast = 21 00881 #endif 00882 } OGRSTLabelParam; 00883 00884 /* ------------------------------------------------------------------- */ 00885 /* Version checking */ 00886 /* -------------------------------------------------------------------- */ 00887 00888 #ifndef DOXYGEN_SKIP 00889 00890 /* Note to developers : please keep this section in sync with gdal.h */ 00891 00892 #ifndef GDAL_VERSION_INFO_DEFINED 00893 #define GDAL_VERSION_INFO_DEFINED 00894 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * ); 00895 #endif 00896 00897 #ifndef GDAL_CHECK_VERSION 00898 00910 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor, 00911 const char* pszCallingComponentName); 00912 00914 #define GDAL_CHECK_VERSION(pszCallingComponentName) \ 00915 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName) 00916 00917 #endif 00918 00919 #endif /* #ifndef DOXYGEN_SKIP */ 00920 00921 CPL_C_END 00922 00923 #endif /* ndef OGR_CORE_H_INCLUDED */
1.7.6.1.