diff --git a/include/osgTerrain/DataSet b/include/osgTerrain/DataSet index f182fd8a1..adca5c0c9 100644 --- a/include/osgTerrain/DataSet +++ b/include/osgTerrain/DataSet @@ -686,7 +686,7 @@ class DataSet : public osg::Referenced void equalizeBoundaries(); - void setTileComplete(bool complete) { _complete = complete; } + void setTileComplete(bool complete); bool getTileComplete() const { return _complete; } void optimizeResolution(); @@ -710,8 +710,8 @@ class DataSet : public osg::Referenced osg::ref_ptr _terrain; osg::ref_ptr _models; - DestinationTile* _neighbour[8]; - bool _equalized[8]; + DestinationTile* _neighbour[NUMBER_OF_POSITIONS]; + bool _equalized[NUMBER_OF_POSITIONS]; unsigned int _imagery_maxNumColumns; diff --git a/src/osgTerrain/DataSet.cpp b/src/osgTerrain/DataSet.cpp index eca378c09..2a2a7cb4d 100644 --- a/src/osgTerrain/DataSet.cpp +++ b/src/osgTerrain/DataSet.cpp @@ -1326,7 +1326,7 @@ void DataSet::DestinationTile::checkNeighbouringTiles() void DataSet::DestinationTile::equalizeCorner(Position position) { // don't need to equalize if already done. - //if (_equalized[position]) return; + if (_equalized[position]) return; typedef std::pair TileCornerPair; typedef std::vector TileCornerList; @@ -1525,10 +1525,16 @@ const char* edgeString(DataSet::DestinationTile::Position position) } } +void DataSet::DestinationTile::setTileComplete(bool complete) +{ + _complete = complete; + std::cout<<"setTileComplete("<_equalized[position2]=true; - osg::Image* image1 = _imagery.valid()?_imagery->_image.get():0; - osg::Image* image2 = tile2->_imagery.valid()?tile2->_imagery->_image.get():0; + osg::Image* image1 = _imagery.valid()?_imagery->_image.get() : 0; + osg::Image* image2 = tile2->_imagery.valid()?tile2->_imagery->_image.get() : 0; - std::cout<<"Equalizing edge "<_level<<"\t"<_tileX<<"\t"<_tileY<getPixelFormat()==image2->getPixelFormat() && @@ -1552,7 +1562,8 @@ void DataSet::DestinationTile::equalizeEdge(Position position) image1->getDataType()==GL_UNSIGNED_BYTE) { - std::cout<<" Equalizing image"<data()<<" with data2 = 0x"<<(int)image2->data()<data(image2->s()-1,1); // RIGHT hand side delta2 = image2->getRowSizeInBytes(); num = (image1->t()==image2->t())?image2->t()-2:0; // note miss out corners. - std::cout<<" left "<data(1,0); // BELOW hand side @@ -1576,7 +1587,7 @@ void DataSet::DestinationTile::equalizeEdge(Position position) data2 = image2->data(1,image2->t()-1); // ABOVE hand side delta2 = 3; num = (image1->s()==image2->s())?image2->s()-2:0; // note miss out corners. - std::cout<<" below "<data(image1->s()-1,1); // LEFT hand side @@ -1584,7 +1595,7 @@ void DataSet::DestinationTile::equalizeEdge(Position position) data2 = image2->data(0,1); // RIGHT hand side delta2 = image2->getRowSizeInBytes(); num = (image1->t()==image2->t())?image2->t()-2:0; // note miss out corners. - std::cout<<" right "<data(1,image1->t()-1); // ABOVE hand side @@ -1592,10 +1603,10 @@ void DataSet::DestinationTile::equalizeEdge(Position position) data2 = image2->data(1,0); // BELOW hand side delta2 = 3; num = (image1->s()==image2->s())?image2->s()-2:0; // note miss out corners. - std::cout<<" above "<getTileComplete()) return false; + for(TileList::iterator itr=(*citr)->_tiles.begin(); + itr!=(*citr)->_tiles.end(); + ++itr) + { + std::cout<<" subtile "<<(*itr)->_level<<"\t"<<(*itr)->_tileX<<"\t"<<(*itr)->_tileY<getTileComplete()) + { + std::cout<<" false!"<