mirror of
https://github.com/processing/processing4.git
synced 2026-01-29 03:11:08 +01:00
74 lines
2.1 KiB
Plaintext
Executable File
74 lines
2.1 KiB
Plaintext
Executable File
|
|
class Cube {
|
|
|
|
// Properties
|
|
int w, h, d;
|
|
int shiftX, shiftY, shiftZ;
|
|
|
|
// Constructor
|
|
Cube(int w, int h, int d, int shiftX, int shiftY, int shiftZ){
|
|
this.w = w;
|
|
this.h = h;
|
|
this.d = d;
|
|
this.shiftX = shiftX;
|
|
this.shiftY = shiftY;
|
|
this.shiftZ = shiftZ;
|
|
}
|
|
|
|
// Main cube drawing method, which looks
|
|
// more confusing than it really is. It's
|
|
// just a bunch of rectangles drawn for
|
|
// each cube face
|
|
void drawCube(){
|
|
beginShape(QUADS);
|
|
// Front face
|
|
normal(0, 0, 1);
|
|
vertex(-w/2 + shiftX, -h/2 + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, -h/2 + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, h + shiftY, -d/2 + shiftZ);
|
|
vertex(-w/2 + shiftX, h + shiftY, -d/2 + shiftZ);
|
|
|
|
// Back face
|
|
normal(0, 0, -1);
|
|
vertex(-w/2 + shiftX, -h/2 + shiftY, d + shiftZ);
|
|
vertex(w + shiftX, -h/2 + shiftY, d + shiftZ);
|
|
vertex(w + shiftX, h + shiftY, d + shiftZ);
|
|
vertex(-w/2 + shiftX, h + shiftY, d + shiftZ);
|
|
|
|
// Left face
|
|
normal(1, 0, 0);
|
|
vertex(-w/2 + shiftX, -h/2 + shiftY, -d/2 + shiftZ);
|
|
vertex(-w/2 + shiftX, -h/2 + shiftY, d + shiftZ);
|
|
vertex(-w/2 + shiftX, h + shiftY, d + shiftZ);
|
|
vertex(-w/2 + shiftX, h + shiftY, -d/2 + shiftZ);
|
|
|
|
// Right face
|
|
normal(-1, 0, 0);
|
|
vertex(w + shiftX, -h/2 + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, -h/2 + shiftY, d + shiftZ);
|
|
vertex(w + shiftX, h + shiftY, d + shiftZ);
|
|
vertex(w + shiftX, h + shiftY, -d/2 + shiftZ);
|
|
|
|
// Top face
|
|
normal(0, 1, 0);
|
|
vertex(-w/2 + shiftX, -h/2 + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, -h/2 + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, -h/2 + shiftY, d + shiftZ);
|
|
vertex(-w/2 + shiftX, -h/2 + shiftY, d + shiftZ);
|
|
|
|
// Bottom face
|
|
normal(0, -1, 0);
|
|
vertex(-w/2 + shiftX, h + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, h + shiftY, -d/2 + shiftZ);
|
|
vertex(w + shiftX, h + shiftY, d + shiftZ);
|
|
vertex(-w/2 + shiftX, h + shiftY, d + shiftZ);
|
|
|
|
endShape();
|
|
|
|
// Add some rotation to each box for pizazz.
|
|
rotateY(radians(1));
|
|
rotateX(radians(1));
|
|
rotateZ(radians(1));
|
|
}
|
|
}
|