
PDE Download: Test02jBSplineDebugB2000.pde
JAVA Download: Test02jBSplineDebugB2000.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
*/
Anar goo;
CSpline bsp;
Param pv;
String cadSoftware, ext;
boolean record = false;
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);
Anar.bsplineRes(20);
}
void initShape(){
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));
for (int i = 0; i<1000; i++)
baseLine.add(Anar.Pt(Anar.rnd( -50,50),Anar.rnd( -50,50),Anar.rnd( -50,50)));
pv = new Param(1/.3f);
bsp = new CSpline(baseLine,pv);
bsp.closedMode = true;
bsp.mode = CSpline.NEXT;
// obj.add(bsp);
// prnt(bsp.parentList());
Anar.camTarget(baseLine);
}
void draw(){
background(190);
if(record)
beginRaw("superCAD."+cadSoftware,"output."+ext);
// baseLine.draw();
bsp.draw();
if(record){
endRaw();
record = false;
}
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;
case 'r':
cadSoftware = "Rhino";
ext = "rvb";
break;
case 's':
cadSoftware = "SketchUP";
ext = "rb";
break;
case 'a':
cadSoftware = "AutoLISP";
ext = "lsp";
break;
case 'p':
cadSoftware = "PovRAY";
ext = "pov";
break;
}
record = true;
}
void prnt(Object s){
super.println(s);
super.println("-----------------------------");
}

|