Changeset 933

Show
Ignore:
Timestamp:
09/05/08 15:05:42
Author:
robert
Message:

Added output of SwitchLayer's when optional layers are selected.

Files:

Legend:

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

    r932 r933  
    15381538        if (imageSet._layerSetImageDataMap.empty()) continue; 
    15391539         
    1540         ImageData& imageData = imageSet._layerSetImageDataMap.begin()->second; 
    1541         if (imageData._imageDestination.valid() && imageData._imageDestination->_image.valid()) 
    1542         {         
    1543             osg::Image* image = imageData._imageDestination->_image.get(); 
    1544  
    1545             osgTerrain::ImageLayer* imageLayer = new osgTerrain::ImageLayer; 
    1546             imageLayer->setImage(image); 
    1547             imageLayer->setLocator(locator); 
    1548  
    1549             terrainTile->setColorLayer(layerNum, imageLayer); 
     1540        if (imageSet._layerSetImageDataMap.size()>1 ||  
     1541            !(imageSet._layerSetImageDataMap.begin()->first.empty())) 
     1542        { 
     1543            log(osg::NOTICE,"Have optional layers = %i",imageSet._layerSetImageDataMap.size()); 
     1544            osgTerrain::SwitchLayer* switchLayer = new osgTerrain::SwitchLayer; 
     1545            for(ImageSet::LayerSetImageDataMap::iterator litr = imageSet._layerSetImageDataMap.begin(); 
     1546                litr != imageSet._layerSetImageDataMap.end(); 
     1547                ++litr) 
     1548            { 
     1549                ImageData& imageData = litr->second; 
     1550                if (imageData._imageDestination.valid() && imageData._imageDestination->_image.valid()) 
     1551                {         
     1552                    osg::Image* image = imageData._imageDestination->_image.get(); 
     1553 
     1554                    osgTerrain::ImageLayer* imageLayer = new osgTerrain::ImageLayer; 
     1555                    imageLayer->setImage(image); 
     1556                    imageLayer->setSetName(litr->first); 
     1557                    imageLayer->setLocator(locator); 
     1558 
     1559                    switchLayer->addLayer(imageLayer); 
     1560 
     1561                } 
     1562            } 
     1563            terrainTile->setColorLayer(layerNum, switchLayer); 
     1564        } 
     1565        else 
     1566        { 
     1567            ImageData& imageData = imageSet._layerSetImageDataMap.begin()->second; 
     1568            if (imageData._imageDestination.valid() && imageData._imageDestination->_image.valid()) 
     1569            {         
     1570                osg::Image* image = imageData._imageDestination->_image.get(); 
     1571 
     1572                osgTerrain::ImageLayer* imageLayer = new osgTerrain::ImageLayer; 
     1573                imageLayer->setImage(image); 
     1574                imageLayer->setLocator(locator); 
     1575 
     1576                terrainTile->setColorLayer(layerNum, imageLayer); 
     1577            } 
    15501578        } 
    15511579    }