commit 124d59f2b9910bdd57a9a898870b5fcab3b33576
parent 70a210018b1edbf46a2f629ccfcd01cbd6789fec
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Wed, 21 Dec 2011 22:33:36 +0100
Code pour dessiner les AABB.
Diffstat:
3 files changed, 56 insertions(+), 0 deletions(-)
diff --git 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<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();
diff --git 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
@@ -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();
}