Changeset 14329

Show
Ignore:
Timestamp:
04/19/08 14:03:44 (3 months ago)
Author:
rouault
Message:

Fix OGRGeometryCollection::getCoordinateDimension() (#2334)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.5/gdal/ogr/ogr_geometry.h

    r13316 r14329  
    457457    OGRGeometry **papoGeoms; 
    458458 
     459    /* This field is deprecated and will be removed in GDAL 1.6.0 */ 
    459460    int         nCoordinateDimension; 
    460461     
  • branches/1.5/gdal/ogr/ogrgeometrycollection.cpp

    r12428 r14329  
    4646    nGeomCount = 0; 
    4747    papoGeoms = NULL; 
    48     nCoordinateDimension = 2; 
     48    nCoordinateDimension = 2; /* deprecated */ 
    4949} 
    5050 
     
    5757{ 
    5858    empty(); 
    59     nCoordinateDimension = 2; 
    6059} 
    6160 
     
    7877    nGeomCount = 0; 
    7978    papoGeoms = NULL; 
     79    nCoordDimension = 2; 
    8080} 
    8181 
     
    134134        papoGeoms[i]->flattenTo2D(); 
    135135 
    136     nCoordinateDimension = 2; 
     136    nCoordDimension = 2; 
    137137} 
    138138 
     
    278278 
    279279    if( poNewGeom->getCoordinateDimension() == 3 ) 
    280         nCoordinateDimension = 3; 
     280        nCoordDimension = 3; 
    281281 
    282282    return OGRERR_NONE; 
     
    400400 
    401401/* -------------------------------------------------------------------- */ 
    402 /*      Do we already have some existing geometry objects?              */ 
    403 /* -------------------------------------------------------------------- */ 
    404     if( nGeomCount != 0 ) 
    405     { 
    406         for( int iGeom = 0; iGeom < nGeomCount; iGeom++ ) 
    407             delete papoGeoms[iGeom]; 
    408  
    409         OGRFree( papoGeoms ); 
    410         papoGeoms = NULL; 
    411     } 
     402/*      Clear existing Geoms.                                           */ 
     403/* -------------------------------------------------------------------- */ 
     404    empty(); 
    412405     
    413406/* -------------------------------------------------------------------- */ 
     
    424417    if( nSize != -1 ) 
    425418        nSize -= nDataOffset; 
    426  
    427     nCoordinateDimension = 0; // unknown 
    428419 
    429420/* -------------------------------------------------------------------- */ 
     
    444435        } 
    445436 
     437        if (papoGeoms[iGeom]->getCoordinateDimension() == 3) 
     438            nCoordDimension = 3; 
     439 
    446440        if( nSize != -1 ) 
    447441            nSize -= papoGeoms[iGeom]->WkbSize(); 
     
    528522/*      Clear existing Geoms.                                           */ 
    529523/* -------------------------------------------------------------------- */ 
    530     if( nGeomCount > 0 ) 
    531     { 
    532         for( iGeom = 0; iGeom < nGeomCount; iGeom++ ) 
    533             delete papoGeoms[iGeom]; 
    534          
    535         nGeomCount = 0; 
    536         CPLFree( papoGeoms ); 
    537     } 
     524    empty(); 
    538525 
    539526/* -------------------------------------------------------------------- */