Changeset 931

Show
Ignore:
Timestamp:
09/02/08 16:02:50
Author:
robert
Message:

Introduce DestinationTile?::requiresDivision() method to encapsulate the access to the _imagery member

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/vpb/Destination

    r930 r931  
    128128    bool computeTerrainResolution(unsigned int& numColumns, unsigned int& numRows, double& resX, double& resY); 
    129129 
     130    void requiresDivision(float resolutionSensitivityScale, bool& needToDivideX, bool& needToDivideY); 
     131 
    130132    void allocate(); 
    131133 
     
    207209 
    208210    std::vector<ImageData>                      _imagery; 
    209     std::vector<ImageSet>                       _imagerySet; 
     211    std::vector<ImageSet>                       _imageLayerSet; 
    210212 
    211213    inline ImageData& getImageData(unsigned int layer) 
     
    217219    inline ImageSet& getImageSet(unsigned int layer) 
    218220    { 
    219         if (layer>=_imagerySet.size()) _imagerySet.resize(layer+1); 
    220         return _imagerySet[layer]; 
     221        if (layer>=_imageLayerSet.size()) _imageLayerSet.resize(layer+1); 
     222        return _imageLayerSet[layer]; 
    221223    } 
    222224 
  • trunk/src/vpb/DataSet.cpp

    r930 r931  
    796796        // note, resolutionSensitivityScale should probably be customizable.. will consider this option for later inclusion. 
    797797        double resolutionSensitivityScale = 0.9; 
    798         for(unsigned int layerNum=0; 
    799             layerNum<tile->_imagery.size(); 
    800             ++layerNum) 
    801         { 
    802             unsigned int texture_numColumns; 
    803             unsigned int texture_numRows; 
    804             double texture_dx; 
    805             double texture_dy; 
    806             if (tile->computeImageResolution(layerNum,texture_numColumns,texture_numRows,texture_dx,texture_dy)) 
    807             { 
    808                 if (texture_dx*resolutionSensitivityScale>tile->_imagery[layerNum]._image_maxSourceResolutionX) needToDivideX = true; 
    809                 if (texture_dy*resolutionSensitivityScale>tile->_imagery[layerNum]._image_maxSourceResolutionY) needToDivideY = true; 
    810             } 
    811         } 
    812                  
    813         unsigned int dem_numColumns; 
    814         unsigned int dem_numRows; 
    815         double dem_dx; 
    816         double dem_dy; 
    817         if (tile->computeTerrainResolution(dem_numColumns,dem_numRows,dem_dx,dem_dy)) 
    818         { 
    819             if (dem_dx*resolutionSensitivityScale>tile->_terrain_maxSourceResolutionX) needToDivideX = true; 
    820             if (dem_dy*resolutionSensitivityScale>tile->_terrain_maxSourceResolutionY) needToDivideY = true; 
    821         } 
     798 
     799        tile->requiresDivision(resolutionSensitivityScale, needToDivideX, needToDivideY); 
    822800         
    823801        float xCenter = (extents.xMin()+extents.xMax())*0.5f; 
  • trunk/src/vpb/Destination.cpp

    r930 r931  
    9797} 
    9898 
     99 
     100void DestinationTile::requiresDivision(float resolutionSensitivityScale, bool& needToDivideX, bool& needToDivideY) 
     101{ 
     102    for(unsigned int layerNum=0; 
     103        layerNum<_imagery.size(); 
     104        ++layerNum) 
     105    { 
     106        unsigned int texture_numColumns; 
     107        unsigned int texture_numRows; 
     108        double texture_dx; 
     109        double texture_dy; 
     110        if (computeImageResolution(layerNum,texture_numColumns,texture_numRows,texture_dx,texture_dy)) 
     111        { 
     112            if (texture_dx*resolutionSensitivityScale > _imagery[layerNum]._image_maxSourceResolutionX) needToDivideX = true; 
     113            if (texture_dy*resolutionSensitivityScale > _imagery[layerNum]._image_maxSourceResolutionY) needToDivideY = true; 
     114        } 
     115    } 
     116 
     117    unsigned int dem_numColumns; 
     118    unsigned int dem_numRows; 
     119    double dem_dx; 
     120    double dem_dy; 
     121    if (computeTerrainResolution(dem_numColumns,dem_numRows,dem_dx,dem_dy)) 
     122    { 
     123        if (dem_dx*resolutionSensitivityScale > _terrain_maxSourceResolutionX) needToDivideX = true; 
     124        if (dem_dy*resolutionSensitivityScale > _terrain_maxSourceResolutionY) needToDivideY = true; 
     125    } 
     126 
     127} 
    99128 
    100129void DestinationTile::computeMaximumSourceResolution(Source* source) 
     
    23662395{ 
    23672396    _imagery.clear(); 
     2397    _imageLayerSet.clear(); 
    23682398    _terrain = 0; 
    23692399    _models = 0;