summaryrefslogtreecommitdiffstats
path: root/Cubehole.h
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.h
parent8705ce3d468c3cd22159bc0fedf727e8250861ca (diff)
downloadc3d-d439daec66c28f85debc2479e95eadb5fc3c00a2.tar
c3d-d439daec66c28f85debc2479e95eadb5fc3c00a2.zip
Cubehole angefangen zu ändern.
Diffstat (limited to 'Cubehole.h')
-rw-r--r--Cubehole.h67
1 files changed, 42 insertions, 25 deletions
diff --git a/Cubehole.h b/Cubehole.h
index 3f8f689..83ef382 100644
--- a/Cubehole.h
+++ b/Cubehole.h
@@ -1,6 +1,7 @@
#ifndef _CUBEHOLE_H_
#define _CUBEHOLE_H_
+#include "Trapezocube.h"
#include "Triangle.h"
#include "Matrix.h"
@@ -9,44 +10,60 @@
class Cubehole
{
public:
- Cubehole(): width(0), height(0), depth(0), x(0), y(0), z(0), innerwidth(0), innerdepth(0) {}
- Cubehole(float width, float height, float depth): x(0), y(0), z(0), innerwidth(0), innerdepth(0){
- setSize(width, height, depth);
- }
- Cubehole(float width, float height, float depth, float x, float y, float z): innerwidth(0), innerdepth(0) {
- setSize(width, height, depth);
- setPos(x, y, z);
- }
- Cubehole(float width, float height, float depth, float x, float y, float z, float innerwidth, float innerdepth) {
- setSize(width, height, depth);
- setPos(x, y, z);
- setInnerSize(innerwidth, innerdepth);
+ Cubehole(): width(0), height(0), depth(0), x(0), y(0), z(0), innerwidth(0), innerdepth(0),
+ colorfront(0), colorback(0), colorleft(0), colorright(0) {
}
+ Cubehole(float width0, float height0, float depth0, float x0, float y0, float z0,
+ float innerwidth0, float innerdepth0,
+ Color colorfront0, Color colorright0, Color colorback0, Color colorleft0) {
+ setSize(width0, height0, depth0, innerwidth0, innerdepth0);
+ setPos(x0, y0, z0);
+ setColor(colorfront0, colorright0, colorback0, colorleft0);
+ front.setRotate(0);
+ right.setRotate(90);
+ back.setRotate(180);
+ left.setRotate(270);
+ }
float getHeight();
float getWidth();
float getDepth();
float getPosX();
float getPosY();
float getPosZ();
- float getInnerWidth()
- {
- return innerwidth;
- }
- float getInnerDepth()
- {
- return innerdepth;
- }
- void setInnerSize(float iw, float id)
- {
+ float getInnerWidth() {return innerwidth;}
+ float getInnerDepth() {return innerdepth;}
+ void setSize(float w, float h, float d, float iw, float id){
+ width = w;
+ height = h;
+ depth = d;
innerwidth = iw;
innerdepth = id;
+ front.setSize(width, innerwidth, height, (depth-innerdepth)/2);
+ right.setSize(width, innerdepth, height, (width-innerwidth)/2);
+ back.setSize(width, innerwidth, height, (depth-innerdepth)/2);
+ left.setSize(width, innerdepth, height, (width-innerwidth)/2);
+ }
+ void setPos(float x0, float y0, float z0) {
+ x = x0;
+ y = y0;
+ z = z0;
+ front.setPos(x, y, depth-(depth-innerdepth)/2);
+ right.setPos(x, y, width-(width-innerwidth)/2);
+ back.setPos(x, y, depth-(depth-innerdepth)/2);
+ left.setPos(x, y, width-(width-innerwidth)/2);
+ }
+ void setColor(Color cf, Color cr, Color cb, Color cl){
+ front.setColor(cf);
+ right.setColor(cr);
+ back.setColor(cb);
+ left.setColor(cl);
}
- void setSize(float w, float h, float d);
- void setPos(float x, float y, float z);
- std::list<Triangle> getTriangles(const Matrix &modelview);
+ std::list<Triangle> getTriangles(/*const Matrix &modelview*/);
private:
float x, y, z, width, height, depth, innerwidth, innerdepth;
+ Color colorfront, colorleft, colorback, colorright;
+ Trapezocube front, right, back, left;
};