GDAL
|
00001 /****************************************************************************** 00002 * $Id: ogr_core.h 28900 2015-04-14 09:40:34Z 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 00047 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) 00048 class CPL_DLL OGREnvelope 00049 { 00050 public: 00051 OGREnvelope() : MinX(0.0), MaxX(0.0), MinY(0.0), MaxY(0.0) 00052 { 00053 } 00054 00055 OGREnvelope(const OGREnvelope& oOther) : 00056 MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY) 00057 { 00058 } 00059 00060 double MinX; 00061 double MaxX; 00062 double MinY; 00063 double MaxY; 00064 00065 /* See http://trac.osgeo.org/gdal/ticket/5299 for details on this pragma */ 00066 #if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(_MSC_VER)) 00067 #pragma GCC diagnostic push 00068 #pragma GCC diagnostic ignored "-Wfloat-equal" 00069 #endif 00070 int IsInit() const { return MinX != 0 || MinY != 0 || MaxX != 0 || MaxY != 0; } 00071 00072 #if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(_MSC_VER)) 00073 #pragma GCC diagnostic pop 00074 #endif 00075 00076 void Merge( OGREnvelope const& sOther ) { 00077 if( IsInit() ) 00078 { 00079 MinX = MIN(MinX,sOther.MinX); 00080 MaxX = MAX(MaxX,sOther.MaxX); 00081 MinY = MIN(MinY,sOther.MinY); 00082 MaxY = MAX(MaxY,sOther.MaxY); 00083 } 00084 else 00085 { 00086 MinX = sOther.MinX; 00087 MaxX = sOther.MaxX; 00088 MinY = sOther.MinY; 00089 MaxY = sOther.MaxY; 00090 } 00091 } 00092 void Merge( double dfX, double dfY ) { 00093 if( IsInit() ) 00094 { 00095 MinX = MIN(MinX,dfX); 00096 MaxX = MAX(MaxX,dfX); 00097 MinY = MIN(MinY,dfY); 00098 MaxY = MAX(MaxY,dfY); 00099 } 00100 else 00101 { 00102 MinX = MaxX = dfX; 00103 MinY = MaxY = dfY; 00104 } 00105 } 00106 00107 void Intersect( OGREnvelope const& sOther ) { 00108 if(Intersects(sOther)) 00109 { 00110 if( IsInit() ) 00111 { 00112 MinX = MAX(MinX,sOther.MinX); 00113 MaxX = MIN(MaxX,sOther.MaxX); 00114 MinY = MAX(MinY,sOther.MinY); 00115 MaxY = MIN(MaxY,sOther.MaxY); 00116 } 00117 else 00118 { 00119 MinX = sOther.MinX; 00120 MaxX = sOther.MaxX; 00121 MinY = sOther.MinY; 00122 MaxY = sOther.MaxY; 00123 } 00124 } 00125 else 00126 { 00127 MinX = 0; 00128 MaxX = 0; 00129 MinY = 0; 00130 MaxY = 0; 00131 } 00132 } 00133 00134 int Intersects(OGREnvelope const& other) const 00135 { 00136 return MinX <= other.MaxX && MaxX >= other.MinX && 00137 MinY <= other.MaxY && MaxY >= other.MinY; 00138 } 00139 00140 int Contains(OGREnvelope const& other) const 00141 { 00142 return MinX <= other.MinX && MinY <= other.MinY && 00143 MaxX >= other.MaxX && MaxY >= other.MaxY; 00144 } 00145 }; 00146 #else 00147 typedef struct 00148 { 00149 double MinX; 00150 double MaxX; 00151 double MinY; 00152 double MaxY; 00153 } OGREnvelope; 00154 #endif 00155 00156 00161 #if defined(__cplusplus) && !defined(CPL_SURESS_CPLUSPLUS) 00162 class CPL_DLL OGREnvelope3D : public OGREnvelope 00163 { 00164 public: 00165 OGREnvelope3D() : OGREnvelope(), MinZ(0.0), MaxZ(0.0) 00166 { 00167 } 00168 00169 OGREnvelope3D(const OGREnvelope3D& oOther) : 00170 OGREnvelope(oOther), 00171 MinZ(oOther.MinZ), MaxZ(oOther.MaxZ) 00172 { 00173 } 00174 00175 double MinZ; 00176 double MaxZ; 00177 00178 int IsInit() const { return MinX != 0 || MinY != 0 || MaxX != 0 || MaxY != 0 || MinZ != 0 || MaxZ != 0; } 00179 void Merge( OGREnvelope3D const& sOther ) { 00180 if( IsInit() ) 00181 { 00182 MinX = MIN(MinX,sOther.MinX); 00183 MaxX = MAX(MaxX,sOther.MaxX); 00184 MinY = MIN(MinY,sOther.MinY); 00185 MaxY = MAX(MaxY,sOther.MaxY); 00186 MinZ = MIN(MinZ,sOther.MinZ); 00187 MaxZ = MAX(MaxZ,sOther.MaxZ); 00188 } 00189 else 00190 { 00191 MinX = sOther.MinX; 00192 MaxX = sOther.MaxX; 00193 MinY = sOther.MinY; 00194 MaxY = sOther.MaxY; 00195 MinZ = sOther.MinZ; 00196 MaxZ = sOther.MaxZ; 00197 } 00198 } 00199 void Merge( double dfX, double dfY, double dfZ ) { 00200 if( IsInit() ) 00201 { 00202 MinX = MIN(MinX,dfX); 00203 MaxX = MAX(MaxX,dfX); 00204 MinY = MIN(MinY,dfY); 00205 MaxY = MAX(MaxY,dfY); 00206 MinZ = MIN(MinZ,dfZ); 00207 MaxZ = MAX(MaxZ,dfZ); 00208 } 00209 else 00210 { 00211 MinX = MaxX = dfX; 00212 MinY = MaxY = dfY; 00213 MinZ = MaxZ = dfZ; 00214 } 00215 } 00216 00217 void Intersect( OGREnvelope3D const& sOther ) { 00218 if(Intersects(sOther)) 00219 { 00220 if( IsInit() ) 00221 { 00222 MinX = MAX(MinX,sOther.MinX); 00223 MaxX = MIN(MaxX,sOther.MaxX); 00224 MinY = MAX(MinY,sOther.MinY); 00225 MaxY = MIN(MaxY,sOther.MaxY); 00226 MinZ = MAX(MinZ,sOther.MinZ); 00227 MaxZ = MIN(MaxZ,sOther.MaxZ); 00228 } 00229 else 00230 { 00231 MinX = sOther.MinX; 00232 MaxX = sOther.MaxX; 00233 MinY = sOther.MinY; 00234 MaxY = sOther.MaxY; 00235 MinZ = sOther.MinZ; 00236 MaxZ = sOther.MaxZ; 00237 } 00238 } 00239 else 00240 { 00241 MinX = 0; 00242 MaxX = 0; 00243 MinY = 0; 00244 MaxY = 0; 00245 MinZ = 0; 00246 MaxZ = 0; 00247 } 00248 } 00249 00250 int Intersects(OGREnvelope3D const& other) const 00251 { 00252 return MinX <= other.MaxX && MaxX >= other.MinX && 00253 MinY <= other.MaxY && MaxY >= other.MinY && 00254 MinZ <= other.MaxZ && MaxZ >= other.MinZ; 00255 } 00256 00257 int Contains(OGREnvelope3D const& other) const 00258 { 00259 return MinX <= other.MinX && MinY <= other.MinY && 00260 MaxX >= other.MaxX && MaxY >= other.MaxY && 00261 MinZ <= other.MinZ && MaxZ >= other.MaxZ; 00262 } 00263 }; 00264 #else 00265 typedef struct 00266 { 00267 double MinX; 00268 double MaxX; 00269 double MinY; 00270 double MaxY; 00271 double MinZ; 00272 double MaxZ; 00273 } OGREnvelope3D; 00274 #endif 00275 00276 00277 CPL_C_START 00278 00279 void CPL_DLL *OGRMalloc( size_t ); 00280 void CPL_DLL *OGRCalloc( size_t, size_t ); 00281 void CPL_DLL *OGRRealloc( void *, size_t ); 00282 char CPL_DLL *OGRStrdup( const char * ); 00283 void CPL_DLL OGRFree( void * ); 00284 00285 typedef int OGRErr; 00286 00287 #define OGRERR_NONE 0 00288 #define OGRERR_NOT_ENOUGH_DATA 1 /* not enough data to deserialize */ 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 /* added in GDAL 2.0 */ 00297 00298 typedef int OGRBoolean; 00299 00300 /* -------------------------------------------------------------------- */ 00301 /* ogr_geometry.h related definitions. */ 00302 /* -------------------------------------------------------------------- */ 00303 00309 typedef enum 00310 { 00311 wkbUnknown = 0, 00313 wkbPoint = 1, 00314 wkbLineString = 2, 00316 wkbPolygon = 3, 00319 wkbMultiPoint = 4, 00320 wkbMultiLineString = 5, 00321 wkbMultiPolygon = 6, 00322 wkbGeometryCollection = 7, 00325 wkbCircularString = 8, 00327 wkbCompoundCurve = 9, 00328 wkbCurvePolygon = 10, 00331 wkbMultiCurve = 11, 00332 wkbMultiSurface = 12, 00334 wkbNone = 100, 00335 wkbLinearRing = 101, 00337 wkbCircularStringZ = 1008, 00338 wkbCompoundCurveZ = 1009, 00339 wkbCurvePolygonZ = 1010, 00340 wkbMultiCurveZ = 1011, 00341 wkbMultiSurfaceZ = 1012, 00343 wkbPoint25D = 0x80000001, 00344 wkbLineString25D = 0x80000002, 00345 wkbPolygon25D = 0x80000003, 00346 wkbMultiPoint25D = 0x80000004, 00347 wkbMultiLineString25D = 0x80000005, 00348 wkbMultiPolygon25D = 0x80000006, 00349 wkbGeometryCollection25D = 0x80000007 00351 } OGRwkbGeometryType; 00352 00353 /* Outside of OGRwkbGeometryType since they are abstract types */ 00354 #define wkbCurve ((OGRwkbGeometryType)13) 00355 #define wkbSurface ((OGRwkbGeometryType)14) 00371 typedef enum 00372 { 00373 wkbVariantOldOgc, 00374 wkbVariantIso, 00375 wkbVariantPostGIS1 00376 } OGRwkbVariant; 00377 00378 00380 #ifndef GDAL_COMPILATION 00381 #define wkb25DBit 0x80000000 00382 #endif 00383 00385 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x)) 00386 00390 #define wkbHasZ(x) OGR_GT_HasZ(x) 00391 00395 #define wkbSetZ(x) OGR_GT_SetZ(x) 00396 00397 #define ogrZMarker 0x21125711 00398 00399 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType ); 00400 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypes( OGRwkbGeometryType eMain, 00401 OGRwkbGeometryType eExtra ); 00402 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypesEx( OGRwkbGeometryType eMain, 00403 OGRwkbGeometryType eExtra, 00404 int bAllowPromotingToCurves ); 00405 OGRwkbGeometryType CPL_DLL OGR_GT_Flatten( OGRwkbGeometryType eType ); 00406 OGRwkbGeometryType CPL_DLL OGR_GT_SetZ( OGRwkbGeometryType eType ); 00407 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM ); 00408 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType ); 00409 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType, 00410 OGRwkbGeometryType eSuperType ); 00411 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType ); 00412 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType ); 00413 int CPL_DLL OGR_GT_IsNonLinear( OGRwkbGeometryType ); 00414 OGRwkbGeometryType CPL_DLL OGR_GT_GetCollection( OGRwkbGeometryType eType ); 00415 OGRwkbGeometryType CPL_DLL OGR_GT_GetCurve( OGRwkbGeometryType eType ); 00416 OGRwkbGeometryType CPL_DLL OGR_GT_GetLinear( OGRwkbGeometryType eType ); 00417 00418 typedef enum 00419 { 00420 wkbXDR = 0, /* MSB/Sun/Motoroloa: Most Significant Byte First */ 00421 wkbNDR = 1 /* LSB/Intel/Vax: Least Significant Byte First */ 00422 } OGRwkbByteOrder; 00423 00424 #ifndef NO_HACK_FOR_IBM_DB2_V72 00425 # define HACK_FOR_IBM_DB2_V72 00426 #endif 00427 00428 #ifdef HACK_FOR_IBM_DB2_V72 00429 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? (OGRwkbByteOrder) ((x) & 0x1) : (x)) 00430 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x))) 00431 #else 00432 # define DB2_V72_FIX_BYTE_ORDER(x) (x) 00433 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x) 00434 #endif 00435 00439 #define ALTER_NAME_FLAG 0x1 00440 00444 #define ALTER_TYPE_FLAG 0x2 00445 00449 #define ALTER_WIDTH_PRECISION_FLAG 0x4 00450 00455 #define ALTER_NULLABLE_FLAG 0x8 00456 00461 #define ALTER_DEFAULT_FLAG 0x10 00462 00466 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG) 00467 00468 00473 #define OGR_F_VAL_NULL 0x00000001 00474 00479 #define OGR_F_VAL_GEOM_TYPE 0x00000002 00480 00485 #define OGR_F_VAL_WIDTH 0x00000004 00486 00494 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008 00495 00500 #define OGR_F_VAL_ALL 0xFFFFFFFF 00501 00502 /************************************************************************/ 00503 /* ogr_feature.h related definitions. */ 00504 /************************************************************************/ 00505 00512 typedef enum 00513 { 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, 00528 OFTMaxType = 13 00529 } OGRFieldType; 00530 00540 typedef enum 00541 { OFSTNone = 0, 00544 OFSTBoolean = 1, 00546 OFSTInt16 = 2, 00548 OFSTFloat32 = 3, 00549 OFSTMaxSubType = 3 00550 } OGRFieldSubType; 00551 00556 typedef enum 00557 { 00558 OJUndefined = 0, 00559 OJLeft = 1, 00560 OJRight = 2 00561 } OGRJustification; 00562 00563 #define OGRNullFID -1 00564 #define OGRUnsetMarker -21121 00565 00566 /************************************************************************/ 00567 /* OGRField */ 00568 /************************************************************************/ 00569 00574 typedef union { 00575 int Integer; 00576 GIntBig Integer64; 00577 double Real; 00578 char *String; 00579 00580 struct { 00581 int nCount; 00582 int *paList; 00583 } IntegerList; 00584 00585 struct { 00586 int nCount; 00587 GIntBig *paList; 00588 } Integer64List; 00589 00590 struct { 00591 int nCount; 00592 double *paList; 00593 } RealList; 00594 00595 struct { 00596 int nCount; 00597 char **paList; 00598 } StringList; 00599 00600 struct { 00601 int nCount; 00602 GByte *paData; 00603 } Binary; 00604 00605 struct { 00606 int nMarker1; 00607 int nMarker2; 00608 } Set; 00609 00610 struct { 00611 GInt16 Year; 00612 GByte Month; 00613 GByte Day; 00614 GByte Hour; 00615 GByte Minute; 00616 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous), 00617 100=GMT, 104=GMT+1, 80=GMT-5, etc */ 00618 GByte Reserved; /* must be set to 0 */ 00619 float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */ 00620 } Date; 00621 } OGRField; 00622 00623 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5) 00624 00625 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput, 00626 int nOptions ); 00627 00628 /* -------------------------------------------------------------------- */ 00629 /* Constants from ogrsf_frmts.h for capabilities. */ 00630 /* -------------------------------------------------------------------- */ 00631 #define OLCRandomRead "RandomRead" 00632 #define OLCSequentialWrite "SequentialWrite" 00633 #define OLCRandomWrite "RandomWrite" 00634 #define OLCFastSpatialFilter "FastSpatialFilter" 00635 #define OLCFastFeatureCount "FastFeatureCount" 00636 #define OLCFastGetExtent "FastGetExtent" 00637 #define OLCCreateField "CreateField" 00638 #define OLCDeleteField "DeleteField" 00639 #define OLCReorderFields "ReorderFields" 00640 #define OLCAlterFieldDefn "AlterFieldDefn" 00641 #define OLCTransactions "Transactions" 00642 #define OLCDeleteFeature "DeleteFeature" 00643 #define OLCFastSetNextByIndex "FastSetNextByIndex" 00644 #define OLCStringsAsUTF8 "StringsAsUTF8" 00645 #define OLCIgnoreFields "IgnoreFields" 00646 #define OLCCreateGeomField "CreateGeomField" 00647 #define OLCCurveGeometries "CurveGeometries" 00648 00649 #define ODsCCreateLayer "CreateLayer" 00650 #define ODsCDeleteLayer "DeleteLayer" 00651 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer" 00652 #define ODsCCurveGeometries "CurveGeometries" 00653 #define ODsCTransactions "Transactions" 00654 #define ODsCEmulatedTransactions "EmulatedTransactions" 00655 00656 #define ODrCCreateDataSource "CreateDataSource" 00657 #define ODrCDeleteDataSource "DeleteDataSource" 00658 00659 /* -------------------------------------------------------------------- */ 00660 /* Layer metadata items. */ 00661 /* -------------------------------------------------------------------- */ 00666 #define OLMD_FID64 "OLMD_FID64" 00667 00668 /************************************************************************/ 00669 /* ogr_featurestyle.h related definitions. */ 00670 /************************************************************************/ 00671 00676 typedef enum ogr_style_tool_class_id 00677 { 00678 OGRSTCNone = 0, 00679 OGRSTCPen = 1, 00680 OGRSTCBrush = 2, 00681 OGRSTCSymbol = 3, 00682 OGRSTCLabel = 4, 00683 OGRSTCVector = 5 00684 } OGRSTClassId; 00685 00689 typedef enum ogr_style_tool_units_id 00690 { 00691 OGRSTUGround = 0, 00692 OGRSTUPixel = 1, 00693 OGRSTUPoints = 2, 00694 OGRSTUMM = 3, 00695 OGRSTUCM = 4, 00696 OGRSTUInches = 5 00697 } OGRSTUnitId; 00698 00702 typedef enum ogr_style_tool_param_pen_id 00703 { 00704 OGRSTPenColor = 0, 00705 OGRSTPenWidth = 1, 00706 OGRSTPenPattern = 2, 00707 OGRSTPenId = 3, 00708 OGRSTPenPerOffset = 4, 00709 OGRSTPenCap = 5, 00710 OGRSTPenJoin = 6, 00711 OGRSTPenPriority = 7, 00712 OGRSTPenLast = 8 00713 00714 } OGRSTPenParam; 00715 00719 typedef enum ogr_style_tool_param_brush_id 00720 { 00721 OGRSTBrushFColor = 0, 00722 OGRSTBrushBColor = 1, 00723 OGRSTBrushId = 2, 00724 OGRSTBrushAngle = 3, 00725 OGRSTBrushSize = 4, 00726 OGRSTBrushDx = 5, 00727 OGRSTBrushDy = 6, 00728 OGRSTBrushPriority = 7, 00729 OGRSTBrushLast = 8 00730 00731 } OGRSTBrushParam; 00732 00733 00737 typedef enum ogr_style_tool_param_symbol_id 00738 { 00739 OGRSTSymbolId = 0, 00740 OGRSTSymbolAngle = 1, 00741 OGRSTSymbolColor = 2, 00742 OGRSTSymbolSize = 3, 00743 OGRSTSymbolDx = 4, 00744 OGRSTSymbolDy = 5, 00745 OGRSTSymbolStep = 6, 00746 OGRSTSymbolPerp = 7, 00747 OGRSTSymbolOffset = 8, 00748 OGRSTSymbolPriority = 9, 00749 OGRSTSymbolFontName = 10, 00750 OGRSTSymbolOColor = 11, 00751 OGRSTSymbolLast = 12 00752 00753 } OGRSTSymbolParam; 00754 00758 typedef enum ogr_style_tool_param_label_id 00759 { 00760 OGRSTLabelFontName = 0, 00761 OGRSTLabelSize = 1, 00762 OGRSTLabelTextString = 2, 00763 OGRSTLabelAngle = 3, 00764 OGRSTLabelFColor = 4, 00765 OGRSTLabelBColor = 5, 00766 OGRSTLabelPlacement = 6, 00767 OGRSTLabelAnchor = 7, 00768 OGRSTLabelDx = 8, 00769 OGRSTLabelDy = 9, 00770 OGRSTLabelPerp = 10, 00771 OGRSTLabelBold = 11, 00772 OGRSTLabelItalic = 12, 00773 OGRSTLabelUnderline = 13, 00774 OGRSTLabelPriority = 14, 00775 OGRSTLabelStrikeout = 15, 00776 OGRSTLabelStretch = 16, 00777 OGRSTLabelAdjHor = 17, 00778 OGRSTLabelAdjVert = 18, 00779 OGRSTLabelHColor = 19, 00780 OGRSTLabelOColor = 20, 00781 OGRSTLabelLast = 21 00782 00783 } OGRSTLabelParam; 00784 00785 /* ------------------------------------------------------------------- */ 00786 /* Version checking */ 00787 /* -------------------------------------------------------------------- */ 00788 00789 /* Note to developers : please keep this section in sync with gdal.h */ 00790 00791 #ifndef GDAL_VERSION_INFO_DEFINED 00792 #define GDAL_VERSION_INFO_DEFINED 00793 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * ); 00794 #endif 00795 00796 #ifndef GDAL_CHECK_VERSION 00797 00809 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor, 00810 const char* pszCallingComponentName); 00811 00813 #define GDAL_CHECK_VERSION(pszCallingComponentName) \ 00814 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName) 00815 00816 #endif 00817 00818 CPL_C_END 00819 00820 #endif /* ndef OGR_CORE_H_INCLUDED */