mirror of
https://github.com/processing/processing4.git
synced 2026-02-04 06:09:17 +01:00
60 lines
1.3 KiB
Plaintext
60 lines
1.3 KiB
Plaintext
// QTVR style cube.
|
|
|
|
class VRCube{
|
|
int totalSides = 6;
|
|
int dim;
|
|
int cDim;
|
|
PImage[] sides;
|
|
PImage mainImage;
|
|
|
|
VRCube (String sentFileName){
|
|
noStroke();
|
|
imageMode(CORNER);
|
|
mainImage = loadImage(sentFileName);
|
|
dim = mainImage.width/3;
|
|
cDim = dim/2;
|
|
|
|
sides = new PImage[totalSides];
|
|
sides[0] = mainImage.get(dim, 0, dim,dim);
|
|
sides[1] = mainImage.get(0, dim, dim,dim);
|
|
sides[2] = mainImage.get(dim, dim, dim,dim);
|
|
sides[3] = mainImage.get(dim*2, dim, dim,dim);
|
|
sides[4] = mainImage.get(dim, dim*2, dim,dim);
|
|
sides[5] = mainImage.get(dim, dim*3, dim,dim);
|
|
}
|
|
|
|
void exist(){
|
|
renderCube();
|
|
}
|
|
|
|
void renderCube(){
|
|
pushMatrix();
|
|
drawFace(sides[1]);
|
|
rotateY(-HALF_PI);
|
|
drawFace(sides[2]);
|
|
rotateY(-HALF_PI);
|
|
drawFace(sides[3]);
|
|
rotateY(-HALF_PI);
|
|
rotateZ(PI);
|
|
drawFace(sides[5]);
|
|
rotateX(HALF_PI);
|
|
drawFace(sides[0]);
|
|
rotateX(PI);
|
|
drawFace(sides[4]);
|
|
popMatrix();
|
|
}
|
|
|
|
void drawFace(PImage sentImage){
|
|
pushMatrix();
|
|
translate(0,0,-cDim+.5);
|
|
beginShape();
|
|
texture(sentImage);
|
|
vertex(-cDim,-cDim,0,0,0);
|
|
vertex(-cDim,cDim,0,0,dim);
|
|
vertex(cDim,cDim,0,dim,dim);
|
|
vertex(cDim,-cDim,0,dim,0);
|
|
endShape();
|
|
popMatrix();
|
|
}
|
|
}
|