diff --git a/rules/chose.cpp b/rules/chose.cpp index a2fa9e2..9d40e02 100644 --- a/rules/chose.cpp +++ b/rules/chose.cpp @@ -75,4 +75,52 @@ void Chose::updateAABB() { } } +void Chose::displayAABB() { + updateAABB(); + if (children.size() > 0) { + std::vector::iterator it; + for (it = children.begin(); it != children.end(); ++it) { + (*it)->displayAABB(); + } + } else { + // Affiche la AABB. + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[0],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[5]); + glVertex3d(lod.aabb[1],lod.aabb[2],lod.aabb[4]); + glVertex3d(lod.aabb[1],lod.aabb[3],lod.aabb[4]); + } +} + unsigned int Chose::initialSeed = 779313522;//random_seed(); diff --git a/rules/chose.hh b/rules/chose.hh index 528da22..46188de 100644 --- a/rules/chose.hh +++ b/rules/chose.hh @@ -18,6 +18,7 @@ class Chose { public : void display(); + void displayAABB(); virtual bool split() = 0; virtual bool merge(); virtual void triangulation() = 0; diff --git a/view.cpp b/view.cpp index 0ef6539..75566ba 100644 --- a/view.cpp +++ b/view.cpp @@ -97,6 +97,13 @@ void View::renderScene(int lastTime, int currentTime) { root->display(); glEnd(); + // DEBUG : display AABB + // glDisable(GL_LIGHTING); + // glDisable(GL_TEXTURE_2D); + // glBegin(GL_TRIANGLES); + // root->displayAABB(); + // glEnd(); + glFlush(); SDL_GL_SwapBuffers(); }