
PDE Download: Test02jBSplineDebugB.pde
JAVA Download: Test02jBSplineDebugB.java
Click on anar+ terms to get the documentation.
import processing.opengl.*;
import anar.*;
/*
* Example for Anar library by Guillaume LaBelle + Julien Nembrini
* http://anar.ch
*/
Obj myObj;
Param pv;
void setup(){
size(800,400,OPENGL);
frameRate(200);
Anar.init(this);
Anar.drawAxis(true);
initShape();
Pts.globalRender = new RenderPtsAll();
Pt.globalRender = new RenderPtShapeOriented(new AColor(100),new AColor(255,0,0,150),Anar.scene);
}
void initShape(){
myObj = new Obj();
Pts baseLine = new Pts();
baseLine.add(Anar.Pt( -50,0,0));
baseLine.add(Anar.Pt(0,50,50));
baseLine.add(Anar.Pt(50,0,0));
baseLine.add(Anar.Pt( -150, -60,40));
println(baseLine.toObjExporter());
pv = new Param(1/.3f);
CSpline bsp = new CSpline(baseLine,pv);
bsp.closedMode = true;
bsp.mode = CSpline.NEXT;
myObj.add(bsp);
println(bsp.toObjExporter());
Pts curveWithPoints = bsp.discretization(30);
curveWithPoints.translate(10,10,10);
myObj.add(curveWithPoints);
Anar.camTarget(baseLine);
}
void draw(){
background(190);
// baseLine.draw();
myObj.draw();
if(key=='k'){
pv.set(mouseX/(float)width/2f);
CSpline.globalRender.splineRes.set(mouseY/(float)height*60+1);
}
}
private boolean drawConstruction = true;
void keyPressed(){
switch(key){
case ' ':
if(drawConstruction)
drawConstruction = false;
else
drawConstruction = true;
break;
}
}
void prnt(Object s){
super.println(s);
super.println("-----------------------------");
}

|