From 4842cb28522a89c0a6d800139b934001484fadbe Mon Sep 17 00:00:00 2001 From: Wolfgang Draxinger Date: Fri, 26 Jul 2013 11:14:54 +0200 Subject: ... --- samples/OpenGL/qt_terr/terrain.cpp | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'samples/OpenGL/qt_terr/terrain.cpp') diff --git a/samples/OpenGL/qt_terr/terrain.cpp b/samples/OpenGL/qt_terr/terrain.cpp index d08d345..e18efe4 100644 --- a/samples/OpenGL/qt_terr/terrain.cpp +++ b/samples/OpenGL/qt_terr/terrain.cpp @@ -1,10 +1,5 @@ #include "terrain.h" -Terrain::Terrain() -{ - z_mean=0.0; -} - void Terrain::split() { if(is_split()) @@ -15,29 +10,27 @@ void Terrain::split() quads[1][0] = new Terrain(V); quads[1][1] = new Terrain(V); - quads[0][0]->set_range(x1, x_mid, y1, y_mid); - quads[0][1]->set_range(x_mid, x2, y1, y_mid); - quads[1][0]->set_range(x1, x_mid, y_mid, y2); - quads[1][1]->set_range(x_mid, x2, y_mid, y2); + quads[0][0]->set_range(*x1(), *x_mid(), *y1(), *y_mid()); + quads[0][1]->set_range(*x_mid(), *x2(), *y1(), *y_mid()); + quads[1][0]->set_range(*x1(), *x_mid(), *y_mid(), *y2()); + quads[1][1]->set_range(*x_mid(), *x2(), *y_mid(), *y2()); } void Terrain::track_down(double x, double y, double nz, int levels) { - if(levels>0) - { - int a=(x 0 ) { + int a = ( x < *x_mid() ) ? 0 : 1; + int b = ( y < *y_mid() ) ? 0 : 1; - if(!is_split()) + if( !is_split() ) split(); - quads[b][a]->track_down(x, y, nz, levels-1); + dynamic_cast(quads[b][a])->track_down(x, y, nz, levels-1); } - else - { + else { z[0][0]= z[0][1]= z[1][1]= - z[1][0]=z_mean=nz; + z[1][0] = z_mean_ = nz; } } -- cgit v1.2.3