Changeset 879

Show
Ignore:
Timestamp:
03/02/08 19:25:40
Author:
robert
Message:

Fixed generation of subtile task that are non ops.

Added support for layers.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/vpb/DataSet.cpp

    r874 r879  
    22792279    { 
    22802280        if (cd._level<_level) traverse(cd); 
    2281         else if (cd._level==_level) _subtileList.push_back(&cd); 
     2281        else if (cd._level==_level)  
     2282        { 
     2283            if (!cd._children.empty()) 
     2284            { 
     2285                _subtileList.push_back(&cd); 
     2286            } 
     2287        } 
    22822288    } 
    22832289 
  • trunk/src/vpb/Destination.cpp

    r878 r879  
    12131213        // create a dummy height field to file in the gap 
    12141214        _terrain->_heightField = new osg::HeightField; 
    1215         _terrain->_heightField->allocate(2,2); 
     1215        _terrain->_heightField->allocate(8,8); 
    12161216        _terrain->_heightField->setOrigin(osg::Vec3(_extents.xMin(),_extents.yMin(),0.0f)); 
    12171217        _terrain->_heightField->setXInterval(_extents.xMax()-_extents.xMin()); 
     
    14261426    } 
    14271427     
     1428 
     1429    osgTerrain::ImageLayer* baseLayer = 0; 
    14281430     
    14291431    // assign the imagery 
     
    14331435    { 
    14341436        ImageData& imageData = _imagery[layerNum]; 
    1435         if (!imageData._imagery.valid() || !imageData._imagery->_image.valid()) continue; 
    1436          
    1437         osg::Image* image = imageData._imagery->_image.get(); 
    1438  
    1439         osgTerrain::ImageLayer* imageLayer = new osgTerrain::ImageLayer; 
    1440         imageLayer->setImage(image); 
    1441         imageLayer->setLocator(locator); 
    1442          
    1443         terrain->setColorLayer(layerNum, imageLayer); 
     1437        if (imageData._imagery.valid() && imageData._imagery->_image.valid()) 
     1438        {         
     1439            osg::Image* image = imageData._imagery->_image.get(); 
     1440 
     1441            osgTerrain::ImageLayer* imageLayer = new osgTerrain::ImageLayer; 
     1442            imageLayer->setImage(image); 
     1443            imageLayer->setLocator(locator); 
     1444 
     1445            terrain->setColorLayer(layerNum, imageLayer); 
     1446 
     1447            if (!baseLayer) 
     1448            { 
     1449                log(osg::NOTICE,"Recording base layer for layer %i",layerNum); 
     1450                baseLayer = imageLayer; 
     1451            } 
     1452        } 
     1453    } 
     1454 
     1455    // copy layer into any blanks 
     1456    if (baseLayer) 
     1457    { 
     1458        for(unsigned int layerNum=0; 
     1459            layerNum<_dataSet->getNumOfTextureLevels(); 
     1460            ++layerNum) 
     1461        { 
     1462            if (terrain->getColorLayer(layerNum)==0) 
     1463            { 
     1464                terrain->setColorLayer(layerNum, baseLayer); 
     1465            } 
     1466        }     
    14441467    } 
    14451468