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); } }