Code pour dessiner les AABB.

This commit is contained in:
Georges Dupéron 2011-12-21 22:33:36 +01:00
parent 70a210018b
commit 124d59f2b9
3 changed files with 56 additions and 0 deletions

View File

@ -75,4 +75,52 @@ void Chose::updateAABB() {
}
}
void Chose::displayAABB() {
updateAABB();
if (children.size() > 0) {
std::vector<Chose*>::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();

View File

@ -18,6 +18,7 @@ class Chose {
public :
void display();
void displayAABB();
virtual bool split() = 0;
virtual bool merge();
virtual void triangulation() = 0;

View File

@ -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();
}