|
source
PDE Download: Test02jBSplineDebug3DSurface.pde
JAVA Download: Test02jBSplineDebug3DSurface.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
*/
Pts bsp;
Pts bsp2;
Param pv;
Pts baseLine = new Pts();
Pts baseLine2 = new Pts();
Obj obj;
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(){
baseLine.add(Anar.Pt( -50,0,0));
baseLine.add(Anar.Pt(0,50,50));
baseLine.add(Anar.Pt(0,0,0));
baseLine.add(Anar.Pt(0,0,100));
baseLine.add(Anar.Pt(50,0,0));
baseLine2.add(Anar.Pt( -51,0,10));
baseLine2.add(Anar.Pt(80,60,40));
baseLine2.add(Anar.Pt(0, -10,20));
baseLine2.add(Anar.Pt(0,0,80));
baseLine2.add(Anar.Pt(40,0,0));
pv = new Param(3f);
bsp = new CSpline(baseLine,pv);
bsp2 = new CSpline(baseLine2,pv);
obj = new ObjFacesFromTwoLines(bsp.discretization(30),bsp2.discretization(30));
println(obj.parentList());
Anar.camTarget(baseLine);
}
void draw(){
background(190);
// baseLine.draw();
// if(frameCount%2==0)
obj.draw();
if(frameCount%2==0)
if(drawConstruction){
bsp.draw();
bsp2.draw();
}
else{
((CSpline)bsp).drawConstructionLines();
((CSpline)bsp2).drawConstructionLines();
}
if(key=='k'){
pv.set(mouseX/(float)width/2f);
}
}
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("-----------------------------");
}
screenshots
|