From ed9501fea8b1515d9ff12ac5691428a6d672c219 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 22 Apr 2004 21:51:57 +0000 Subject: [PATCH] Added a guard on the simplification of already low res tiles so that they won't be over simplified. --- src/osgTerrain/DataSet.cpp | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/osgTerrain/DataSet.cpp b/src/osgTerrain/DataSet.cpp index a6dbc16ee..e496afe81 100644 --- a/src/osgTerrain/DataSet.cpp +++ b/src/osgTerrain/DataSet.cpp @@ -720,6 +720,26 @@ void DataSet::Source::assignCoordinateSystemAndGeoTransformAccordingToParameterP std::cout<<"assigning GeoTransform from Source to Data."<<_geoTransform<_numValuesX - 1); + double div_y = 1.0/(double)(_sourceData->_numValuesY - 1); + + _geoTransform(0,0) *= div_x; + _geoTransform(1,0) *= div_x; + _geoTransform(2,0) *= div_x; + + _geoTransform(0,1) *= div_y; + _geoTransform(1,1) *= div_y; + _geoTransform(2,1) *= div_y; + + _sourceData->_geoTransform = _geoTransform; + + std::cout<<"assigning GeoTransform from Source to Data."<<_geoTransform<setColorArray(colours); geometry->setColorBinding(osg::Geometry::BIND_OVERALL); } + + unsigned int targetMaxNumVertices = 2048; + float sample_ratio = (numVertices <= targetMaxNumVertices) ? 1.0f : (float)targetMaxNumVertices/(float)numVertices; - osgUtil::Simplifier simplifier(0.5f,geometry->getBound().radius()/2000.0f); + osgUtil::Simplifier simplifier(sample_ratio,geometry->getBound().radius()/2000.0f); simplifier.simplify(*geometry, pointsToProtectDuringSimplification); // this will replace the normal vector with a new one @@ -2439,7 +2462,7 @@ osg::Node* DataSet::CompositeDestination::createScene() if (childNum==0) { // by deafult make the first child have a very visible distance so its always seen - maxVisibleDistance = 1e8; + maxVisibleDistance = 1e10; } else {