import processing.opengl.*; import wblut.hemesh.*; import wblut.geom.*; HE_Mesh mesh; int c=0; void setup(){ size(800,800,OPENGL); hint(ENABLE_OPENGL_4X_SMOOTH); frameRate(25); createMesh(); strokeWeight(2); } void draw(){ background(200); lights(); translate(width/2,height/2,0); rotateY(mouseX*1.0f/width*TWO_PI); rotateX(mouseY*1.0f/height*TWO_PI); stroke(0); mesh.drawEdges(); fill(255); noStroke(); mesh.drawFaces(); c++; if(c%150==0) createMesh(); } void split(){ int type=(int)random(3.99999); switch(type){ case 0: mesh.triSplitFaces(); break; case 1: mesh.quadSplitFaces(); break; case 2: mesh.midSplitFaces(); break; case 3: mesh.modify(new HEM_Extrude().setDistance(0).setChamfer(0.5)); break; } } void createMesh(){ mesh=new HE_Mesh(new HEC_Cube(this).setEdge(400)); for(int r=0;r<5;r++){ split(); } c=0; } void mousePressed(){ createMesh(); }