import wblut.geom.*;
import wblut.hemesh.*;
import wblut.core.*;
import wblut.math.*;
import wblut.nurbs.*;
import wblut.processing.*;
import peasy.*;
import peasy.org.apache.commons.math.*;
import peasy.org.apache.commons.math.geometry.*;
import controlP5.*;
HE_Mesh mesh, oldMesh;
WB_Render3D render;
PeasyCam cam;
ControlP5 cp5;
float declease_rate=0;
void setup() {
size(960, 540, P3D);
colorMode(HSB, 360, 100, 100);
createMesh();
render = new WB_Render3D(this);
textAlign(CENTER);
cam = new PeasyCam(this, 500);
cp5 = new ControlP5(this);
cp5.setAutoDraw(false);
cp5.addSlider("declease_rate").setRange(0.5,0.99).setValue(0.9).setPosition(20,20);
cp5.addButton("button").setLabel("decrease").setPosition(20,40);
}
void createMesh() {
HEC_Creator creator = new HEC_Beethoven().setScale(10).setZAxis(0, -1, 0);
;
mesh = new HE_Mesh(creator);
oldMesh = mesh.get();
}
void draw() {
background(0, 0, 0);
cam.beginHUD();
directionalLight(0, 0, 100, 1, 1, -1);
directionalLight(0, 0, 50, -1, -1, 1);
cp5.draw();
cam.endHUD();
noStroke();
fill(0, 0, 100);
render.drawFaces(mesh);
}
void controlEvent(ControlEvent event){
println(declease_rate);
}
void button() {
println("button");
mesh.simplify(new HES_TriDec().setGoal(declease_rate));
}