GDAL
ogr_core.h
Go to the documentation of this file.
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 */

Generated for GDAL by doxygen 1.7.6.1.