source: experimental/TerrainTest/rampedEllipsoidTechnique.cpp @ 264

Last change on this file since 264 was 264, checked in by Torben Dannhauer, 13 years ago
File size: 1.4 KB
Line 
1#include "rampedEllipsoidTechnique.h"
2
3
4
5rampedEllipsoidTechnique::rampedEllipsoidTechnique()
6{
7        _height = 0.0;
8        _rampWidth_percent = 10.0;
9}
10
11rampedEllipsoidTechnique::~rampedEllipsoidTechnique()
12{
13}
14
15void rampedEllipsoidTechnique::modifyHeightfield(osg::Vec4d& modificationROI, osg::HeightField* h, osg::Vec4d tileExtends)
16{
17        //OSG_NOTIFY( osg::ALWAYS ) << "ellipsoidTechnique::modifyHeightfield()" << std::endl;
18        //OSG_NOTIFY( osg::ALWAYS ) << "LAT: " << tileExtends[0] << " | " << tileExtends[1] << std::endl;
19        //OSG_NOTIFY( osg::ALWAYS ) << "LON: " << tileExtends[2] << " | " << tileExtends[3] << std::endl;
20
21        // calculate colum start/end and row start/end of affected vertices
22        int startX=0, startY=0, endX=h->getNumColumns(), endY=h->getNumRows();
23
24       
25        // Dertermine loop variables..
26        if(tileExtends[0]<modificationROI[0])
27                startY = (modificationROI[0] - tileExtends[0]) / h->getYInterval();
28        if(tileExtends[1]>modificationROI[1])
29                endY = (modificationROI[1] - tileExtends[0]) / h->getYInterval();
30
31        if(tileExtends[2]<modificationROI[2])
32                startX = (modificationROI[2] - tileExtends[2]) / h->getXInterval();
33        if(tileExtends[3]>modificationROI[3])
34                endX = (modificationROI[3] - tileExtends[2]) / h->getXInterval();
35
36
37        // Modify height value of affected vertices
38        for(int x=startX;x<endX;x++)
39        {
40                for(int y=startY;y<endY;y++)
41                {
42                        h->setHeight( x, y, _height);
43                }
44        }
45}
46
Note: See TracBrowser for help on using the repository browser.