Files
3DRubiks/cube.pde
2026-01-09 15:08:46 +01:00

97 lines
1.8 KiB
Plaintext

class Cube {
Pos pos;
Rgb up;
Rgb down;
Rgb left;
Rgb right;
Rgb front;
Rgb back;
Cube(Pos pos, Rgb up, Rgb down, Rgb left, Rgb right, Rgb front, Rgb back) {
this.pos = pos;
this.up = up;
this.down = down;
this.left = left;
this.right = right;
this.front = front;
this.back = back;
}
void setColorFace(Rgb col, int face) {
switch(face) {
case (0):
up = col;
break ;
case (1):
down = col;
break ;
case (2):
left = col;
break ;
case (3):
right = col;
break ;
case (4):
front = col;
break ;
case (5):
back = col;
break ;
}
}
Rgb getColorFace(int face) {
switch(face) {
case (0):
return up;
case (1):
return down;
case (2):
return left;
case (3):
return right;
case (4):
return front;
case (5):
return back;
}
return up;
}
void drawbox(Rgb up, Rgb down, Rgb left, Rgb right, Rgb front, Rgb back) {
fill(up.r, up.g, up.b);
rect(0, 0, 100, 100);
fill(back.r, back.g, back.b);
rotateX(PI/2);
rect(0, 0, 100, 100);
fill(right.r, right.g, right.b);
rotateY(PI/2);
rect(0, 0, 100, 100);
fill(left.r, left.g, left.b);
translate(0, 0, 100);
rect(0, 0, 100, 100);
fill(down.r, down.g, down.b);
translate(0,100,-100);
rotateX(PI/2);
rect(0, 0, 100, 100);
rotateY(PI/2);
translate(-100, 0, 100);
fill(front.r, front.g, front.b);
rect(0, 0, 100, 100);
rotateX(PI/2);
rotateY(PI/2);
translate(0, -100, 0);
}
void draw() {
translate(pos.x, pos.y, pos.z);
this.drawbox(this.up, this.down, this.left, this.right, this.front, this.back);
}
}