diff options
author | Constantin Riß <constantin.riss@dre.de> | 2009-12-10 20:48:49 +0100 |
---|---|---|
committer | Constantin Riß <constantin.riss@dre.de> | 2009-12-10 20:48:49 +0100 |
commit | d439daec66c28f85debc2479e95eadb5fc3c00a2 (patch) | |
tree | ef096f881be26737b4092151302033c4b1c5bb29 /Cubehole.cpp | |
parent | 8705ce3d468c3cd22159bc0fedf727e8250861ca (diff) | |
download | c3d-d439daec66c28f85debc2479e95eadb5fc3c00a2.tar c3d-d439daec66c28f85debc2479e95eadb5fc3c00a2.zip |
Cubehole angefangen zu ändern.
Diffstat (limited to 'Cubehole.cpp')
-rw-r--r-- | Cubehole.cpp | 175 |
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; -} |