summaryrefslogtreecommitdiffstats
path: root/Cubehole.cpp
diff options
context:
space:
mode:
authorConstantin Riß <constantin.riss@dre.de>2009-12-10 20:48:49 +0100
committerConstantin Riß <constantin.riss@dre.de>2009-12-10 20:48:49 +0100
commitd439daec66c28f85debc2479e95eadb5fc3c00a2 (patch)
treeef096f881be26737b4092151302033c4b1c5bb29 /Cubehole.cpp
parent8705ce3d468c3cd22159bc0fedf727e8250861ca (diff)
downloadc3d-d439daec66c28f85debc2479e95eadb5fc3c00a2.tar
c3d-d439daec66c28f85debc2479e95eadb5fc3c00a2.zip
Cubehole angefangen zu ändern.
Diffstat (limited to 'Cubehole.cpp')
-rw-r--r--Cubehole.cpp175
1 files changed, 9 insertions, 166 deletions
diff --git a/Cubehole.cpp b/Cubehole.cpp
index e755e45..ed54e83 100644
--- a/Cubehole.cpp
+++ b/Cubehole.cpp
@@ -1,162 +1,19 @@
#include "Cubehole.h"
#include "gl.h"
-std::list<Triangle> Cubehole::getTriangles(const Matrix &modelview)
+std::list<Triangle> Cubehole::getTriangles(/*const Matrix &modelview*/)
{
std::list<Triangle> triangles;
// width, height, depth
- // Front face
- Color c(0.0, 0.0, 1.0, 0.5);
- triangles.push_back(Triangle(Vertex(x-width/2, y+height/2, z+depth/2),
- Vertex(x+width/2, y+height/2, z+depth/2),
- Vertex(x-width/2, y-height/2, z+depth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-width/2, y-height/2, z+depth/2),
- Vertex(x+width/2, y+height/2, z+depth/2),
- Vertex(x+width/2, y-height/2, z+depth/2), c));
-
- // Back face
- c = Color(1.0, 1.0, 0.0, 0.5);
-
- triangles.push_back(Triangle(Vertex(x-width/2, y+height/2, z-depth/2),
- Vertex(x-width/2, y-height/2, z-depth/2),
- Vertex(x+width/2, y+height/2, z-depth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-width/2, y-height/2, z-depth/2),
- Vertex(x+width/2, y+height/2, z-depth/2),
- Vertex(x+width/2, y-height/2, z-depth/2), c));
-
- // Left face
- c = Color(0.0, 1.0, 0.0, 0.5);
-
- triangles.push_back(Triangle(Vertex(x-width/2, y+height/2, z+depth/2),
- Vertex(x-width/2, y-height/2, z+depth/2),
- Vertex(x-width/2, y+height/2, z-depth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-width/2, y-height/2, z-depth/2),
- Vertex(x-width/2, y+height/2, z-depth/2),
- Vertex(x-width/2, y-height/2, z+depth/2), c));
-
- // Right face
-
- triangles.push_back(Triangle(Vertex(x+width/2, y+height/2, z+depth/2),
- Vertex(x+width/2, y-height/2, z+depth/2),
- Vertex(x+width/2, y+height/2, z-depth/2), c));
-
- triangles.push_back(Triangle(Vertex(x+width/2, y-height/2, z-depth/2),
- Vertex(x+width/2, y+height/2, z-depth/2),
- Vertex(x+width/2, y-height/2, z+depth/2), c));
-
- // Top face
- c = Color(1.0, 0.0, 0.0, 0.5);
-
- triangles.push_back(Triangle(Vertex(x-width/2, y+height/2, z+depth/2),
- Vertex(x+width/2, y+height/2, z+depth/2),
- Vertex(x-width/2, y+height/2, z+innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x+width/2, y+height/2, z+depth/2),
- Vertex(x+width/2, y+height/2, z+innerdepth/2),
- Vertex(x-width/2, y+height/2, z+innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-width/2, y+height/2, z-depth/2),
- Vertex(x+width/2, y+height/2, z-depth/2),
- Vertex(x-width/2, y+height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x+width/2, y+height/2, z-depth/2),
- Vertex(x+width/2, y+height/2, z-innerdepth/2),
- Vertex(x-width/2, y+height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x- width/2, y+height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y+height/2, z-innerdepth/2), c));
- triangles.push_back(Triangle(Vertex(x- width/2, y+height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y+height/2, z-innerdepth/2),
- Vertex(x- width/2, y+height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x+ width/2, y+height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z-innerdepth/2), c));
- triangles.push_back(Triangle(Vertex(x+ width/2, y+height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z-innerdepth/2),
- Vertex(x+ width/2, y+height/2, z-innerdepth/2), c));
-
- // Bottom face
-
- triangles.push_back(Triangle(Vertex(x-width/2, y-height/2, z+depth/2),
- Vertex(x+width/2, y-height/2, z+depth/2),
- Vertex(x-width/2, y-height/2, z+innerdepth/2), c));
- triangles.push_back(Triangle(Vertex(x+width/2, y-height/2, z+depth/2),
- Vertex(x+width/2, y-height/2, z+innerdepth/2),
- Vertex(x-width/2, y-height/2, z+innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-width/2, y-height/2, z-depth/2),
- Vertex(x+width/2, y-height/2, z-depth/2),
- Vertex(x-width/2, y-height/2, z-innerdepth/2), c));
- triangles.push_back(Triangle(Vertex(x+width/2, y-height/2, z-depth/2),
- Vertex(x+width/2, y-height/2, z-innerdepth/2),
- Vertex(x-width/2, y-height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x- width/2, y-height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z-innerdepth/2), c));
- triangles.push_back(Triangle(Vertex(x- width/2, y-height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z-innerdepth/2),
- Vertex(x- width/2, y-height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x+ width/2, y-height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z-innerdepth/2), c));
- triangles.push_back(Triangle(Vertex(x+ width/2, y-height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z-innerdepth/2),
- Vertex(x+ width/2, y-height/2, z-innerdepth/2), c));
-
- // FrontInner face
- c = Color(1.0, 1.0, 1.0, 0.5);
-
- triangles.push_back(Triangle(Vertex(x-innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z+innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-innerwidth/2, y-height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z+innerdepth/2), c));
-
- // BackInner face
- c = Color(1.0, 0.5, 0.0, 0.5);
-
- triangles.push_back(Triangle(Vertex(x-innerwidth/2, y+height/2, z-innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z-innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-innerwidth/2, y-height/2, z-innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z-innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z-innerdepth/2), c));
-
- // LeftInner face
- c = Color(0.0, 1.0, 0.0, 0.5);
-
- triangles.push_back(Triangle(Vertex(x-innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z+innerdepth/2),
- Vertex(x-innerwidth/2, y+height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x-innerwidth/2, y-height/2, z-innerdepth/2),
- Vertex(x-innerwidth/2, y+height/2, z-innerdepth/2),
- Vertex(x-innerwidth/2, y-height/2, z+innerdepth/2), c));
-
- // RightInner face
-
- triangles.push_back(Triangle(Vertex(x+innerwidth/2, y+height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z+innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z-innerdepth/2), c));
-
- triangles.push_back(Triangle(Vertex(x+innerwidth/2, y-height/2, z-innerdepth/2),
- Vertex(x+innerwidth/2, y+height/2, z-innerdepth/2),
- Vertex(x+innerwidth/2, y-height/2, z+innerdepth/2), c));
-
- for(std::list<Triangle>::iterator t = triangles.begin(); t != triangles.end(); ++t) {
- t->transform(modelview);
- }
+ std::list<Triangle> tf = front.getTriangles();
+ triangles.splice(triangles.end(), tf);
+ std::list<Triangle> tr = right.getTriangles();
+ triangles.splice(triangles.end(), tr);
+ std::list<Triangle> tb = back.getTriangles();
+ triangles.splice(triangles.end(), tb);
+ std::list<Triangle> tl = left.getTriangles();
+ triangles.splice(triangles.end(), tl);
return triangles;
}
@@ -190,17 +47,3 @@ float Cubehole::getPosZ()
{
return z;
}
-
-void Cubehole::setSize(float w, float h, float d)
-{
- width = w;
- height = h;
- depth = d;
-}
-
-void Cubehole::setPos(float x, float y, float z)
-{
- this->x = x;
- this->y = y;
- this->z = z;
-}