
PDE Download: Test02MSurf.pde
JAVA Download: Test02MSurf.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 bspA;
CSpline bspB;
CSpline bspC;
// ParametricValue pv;
SplineSurf mySurf;
SplineSurf2 mySurf2;
Sliders mySliders;
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(){
Pts baseLine = new Pts();
Pts controlMesh = new Pts();
Param pv = new Param(3,0,5);
baseLine.add(Anar.Pt( -50, -50,10));
baseLine.add(Anar.Pt( -50,0,50));
baseLine.add(Anar.Pt( -50,50,20));
baseLine.add(Anar.Pt( -50,100,30));
bspA = new CSpline(baseLine,pv);
controlMesh.ptList.addAll(baseLine.ptList);
// bsp.closedMode = true;
// bsp.mode = CSpline.NEXT;
baseLine = new Pts();
baseLine.add(Anar.Pt(0, -50,20));
baseLine.add(Anar.Pt(0,0,50));
baseLine.add(Anar.Pt(0,50, -10));
baseLine.add(Anar.Pt(0,100, -50));
bspB = new CSpline(baseLine,pv);
controlMesh.ptList.addAll(baseLine.ptList);
baseLine = new Pts();
baseLine.add(Anar.Pt(50, -50,10));
baseLine.add(Anar.Pt(50,0,20));
baseLine.add(Anar.Pt(50,50,20));
baseLine.add(Anar.Pt(50,100,30));
bspC = new CSpline(baseLine,pv);
controlMesh.ptList.addAll(baseLine.ptList);
// mySurf = new SplineSurf(bspA,bspB);
mySurf2 = new SplineSurf2(controlMesh,4,pv,pv);
// Anar.camTarget(mySurf);
mySliders = new Sliders(mySurf2);
println(controlMesh.parentList());
}
void draw(){
background(190);
// baseLine.draw();
// bspA.draw();
// bspB.draw();
// bspC.draw();
// mySurf.draw();
mySurf2.draw();
mySliders.draw();
//
// Iterator<Pts> it = controlMesh.iterator();
// while (it.hasNext()) it.next().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("-----------------------------");
}

|