~ubuntu-branches/debian/sid/gdal/sid

« back to all changes in this revision

Viewing changes to ogr/ogrsf_frmts/mitab/mitab_mapfile.cpp

  • Committer: Package Import Robot
  • Author(s): Francesco Paolo Lovergine
  • Date: 2012-05-07 15:04:42 UTC
  • mfrom: (5.5.16 experimental)
  • Revision ID: package-import@ubuntu.com-20120507150442-2eks97loeh6rq005
Tags: 1.9.0-1
* Ready for sid, starting transition.
* All symfiles updated to latest builds.
* Added dh_numpy call in debian/rules to depend on numpy ABI.
* Policy bumped to 3.9.3, no changes required.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/**********************************************************************
2
 
 * $Id: mitab_mapfile.cpp,v 1.43 2008/02/20 21:35:30 dmorissette Exp $
 
2
 * $Id: mitab_mapfile.cpp,v 1.46 2010-07-07 19:00:15 aboudreault Exp $
3
3
 *
4
4
 * Name:     mitab_mapfile.cpp
5
5
 * Project:  MapInfo TAB Read/Write library
31
31
 **********************************************************************
32
32
 *
33
33
 * $Log: mitab_mapfile.cpp,v $
 
34
 * Revision 1.46  2010-07-07 19:00:15  aboudreault
 
35
 * Cleanup Win32 Compile Warnings (GDAL bug #2930)
 
36
 *
 
37
 * Revision 1.45  2010-01-08 22:02:51  aboudreault
 
38
 * Fixed error issued when reading empty TAB with spatial index active (bug 2136)
 
39
 *
 
40
 * Revision 1.44  2009-03-03 20:44:23  dmorissette
 
41
 * Use transparent brush in DumpSpatialIndexToMIF()
 
42
 *
34
43
 * Revision 1.43  2008/02/20 21:35:30  dmorissette
35
44
 * Added support for V800 COLLECTION of large objects (bug 1496)
36
45
 *
661
670
    {
662
671
        CPLAssert( m_poSpIndex == NULL && m_poSpIndexLeaf == NULL );
663
672
 
 
673
        /* m_nFirstIndexBlock set to 0 means that there is no feature */
 
674
        if ( m_poHeader->m_nFirstIndexBlock == 0 )
 
675
            return FALSE;
 
676
 
664
677
        if( PushBlock( m_poHeader->m_nFirstIndexBlock ) == NULL )
665
678
            return FALSE;
666
679
 
1298
1311
            return -1;
1299
1312
 
1300
1313
        m_poHeader->m_nMaxSpIndexDepth = MAX(m_poHeader->m_nMaxSpIndexDepth,
1301
 
                                             m_poSpIndex->GetCurMaxDepth()+1);
 
1314
                                      (GByte)m_poSpIndex->GetCurMaxDepth()+1);
1302
1315
    }
1303
1316
    else
1304
1317
    {
1394
1407
                                  poNewObjBlock->GetStartAddress()) != 0)
1395
1408
            return -1;
1396
1409
        m_poHeader->m_nMaxSpIndexDepth = MAX(m_poHeader->m_nMaxSpIndexDepth,
1397
 
                                             m_poSpIndex->GetCurMaxDepth()+1);
 
1410
                                      (GByte)m_poSpIndex->GetCurMaxDepth()+1);
1398
1411
 
1399
1412
        /*-------------------------------------------------------------
1400
1413
         * Delete second object block, no need to commit to file first since
1583
1596
                                        m_poCurObjBlock->GetStartAddress());
1584
1597
 
1585
1598
        m_poHeader->m_nMaxSpIndexDepth = MAX(m_poHeader->m_nMaxSpIndexDepth,
1586
 
                                             m_poSpIndex->GetCurMaxDepth()+1);
 
1599
                                      (GByte)m_poSpIndex->GetCurMaxDepth()+1);
1587
1600
    }
1588
1601
 
1589
1602
    /*-----------------------------------------------------------------
2321
2334
 
2322
2335
    m_poHeader->m_nFirstToolBlock = poBlock->GetStartAddress();
2323
2336
 
2324
 
    m_poHeader->m_numPenDefs = m_poToolDefTable->GetNumPen();
2325
 
    m_poHeader->m_numBrushDefs = m_poToolDefTable->GetNumBrushes();
2326
 
    m_poHeader->m_numFontDefs = m_poToolDefTable->GetNumFonts();
2327
 
    m_poHeader->m_numSymbolDefs = m_poToolDefTable->GetNumSymbols();
 
2337
    m_poHeader->m_numPenDefs = (GByte)m_poToolDefTable->GetNumPen();
 
2338
    m_poHeader->m_numBrushDefs = (GByte)m_poToolDefTable->GetNumBrushes();
 
2339
    m_poHeader->m_numFontDefs = (GByte)m_poToolDefTable->GetNumFonts();
 
2340
    m_poHeader->m_numSymbolDefs = (GByte)m_poToolDefTable->GetNumSymbols();
2328
2341
 
2329
2342
    /*-------------------------------------------------------------
2330
2343
     * Do the actual work and delete poBlock
2333
2346
     *------------------------------------------------------------*/
2334
2347
    nStatus = m_poToolDefTable->WriteAllToolDefs(poBlock);
2335
2348
    
2336
 
    m_poHeader->m_numMapToolBlocks = poBlock->GetNumBlocksInChain();
 
2349
    m_poHeader->m_numMapToolBlocks = (GInt16)poBlock->GetNumBlocksInChain();
2337
2350
 
2338
2351
    delete poBlock;
2339
2352
 
2663
2676
     *------------------------------------------------------------*/
2664
2677
    // Add 1 to Spatial Index Depth to account to the MapObjectBlocks
2665
2678
    m_poHeader->m_nMaxSpIndexDepth = MAX(m_poHeader->m_nMaxSpIndexDepth,
2666
 
                                         m_poSpIndex->GetCurMaxDepth()+1);
 
2679
                                  (GByte)m_poSpIndex->GetCurMaxDepth()+1);
2667
2680
 
2668
2681
    m_poSpIndex->GetMBR(m_poHeader->m_nXMin, m_poHeader->m_nYMin,
2669
2682
                        m_poHeader->m_nXMax, m_poHeader->m_nYMax);
2774
2787
    Int2Coordsys(nXMax, nYMax, dXMax, dYMax);
2775
2788
 
2776
2789
    VSIFPrintf(fpMIF, "RECT %g %g %g %g\n", dXMin, dYMin, dXMax, dYMax);
 
2790
    VSIFPrintf(fpMIF, "  Brush(1, 0)\n");  /* No fill */
2777
2791
               
2778
2792
    VSIFPrintf(fpMID, "%d,%d,%d,%d,%g,%d,%d,%d,%d\n", 
2779
2793
               poNode->GetStartAddress(),
2814
2828
                Int2Coordsys(psEntry->XMax, psEntry->YMax, dXMax, dYMax);
2815
2829
 
2816
2830
                VSIFPrintf(fpMIF, "RECT %g %g %g %g\n", dXMin, dYMin, dXMax, dYMax);
 
2831
                VSIFPrintf(fpMIF, "  Brush(1, 0)\n");  /* No fill */
2817
2832
 
2818
2833
                VSIFPrintf(fpMID, "%d,%d,%d,%d,%g,%d,%d,%d,%d\n", 
2819
2834
                           psEntry->nBlockPtr,