
PDE Download: Test02jBSplineDebugClosed.pde
JAVA Download: Test02jBSplineDebugClosed.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
*/
CSpline bsp;
Param pv;
Obj myObj = new Obj();
Pts baseLine = new Pts();
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,100,100,150),Anar.scene);
}
void initShape(){
baseLine.add(Anar.Pt( -50,0,0));
baseLine.add(Anar.Pt(0,50,0));
baseLine.add(Anar.Pt(50,0,0));
pv = new Param(1/.3f);
bsp = new CSpline(baseLine,pv);
bsp.closedMode = true;
bsp.mode = CSpline.NEXT;
Pts converted = bsp.discretization(60);
converted.stroke(255,0,0);
converted.scale(1.2f,1.2f,1.2f);
for (int i = 0; i<converted.numOfPts(); i++)
myObj.add(converted.pt(i));
myObj.add(converted);
Anar.camTarget(baseLine);
}
void draw(){
background(190);
baseLine.draw();
myObj.draw();
if(drawConstruction)
bsp.draw();
else
bsp.drawConstructionLines();
if(key=='k'){
pv.set(mouseX/(float)width/2f);
RenderSpline.splineRes.set(mouseY/(float)height*60+1);
}
}
private boolean drawConstruction = true;
void keyPressed(){
switch(key){
case ' ':
if(drawConstruction)
drawConstruction = false;
else
drawConstruction = true;
break;
}
if(key=='r'){
myObj.add(bsp);
RhinoScript.export(myObj,"curveTest");
}
}
void prnt(Object s){
super.println(s);
super.println("-----------------------------");
}

|