
PDE Download: Test03vManyForms.pde
JAVA Download: Test03vManyForms.java
Click on anar+ terms to get the documentation.
import processing.opengl.*;
import anar.*;
import java.io.File;
/*
* Example for Anar library by Guillaume LaBelle + Julien Nembrini
* http://anar.ch
*/
Obj myObj;
Group group = new Group();
void setup(){
size(800,400,OPENGL);
Anar.init(this);
Anar.drawAxis();
Face.globalRender = new RenderFaceNormal(new AColor(155,155),new AColor(100));
initForm();
}
void initForm(){
myObj = new Obj();
// ///////////////////////////////////
// CONE
// ///////////////////////////////////
Obj cone = new Cone(50,100,20);
cone.set("cone");
cone.translate(100,100,0);
println(cone.toObjExporter());
group.add(cone);
// ///////////////////////////////////
// BOX
// ///////////////////////////////////
Obj box = new Box(10,20,30);
box.set("box");
box.rotateZ(0);
box.rotateX(0);
box.translate(100,0,0);
println(box.toObjExporter("box"));
println(box.parentList());
group.add(box);
// ///////////////////////////////////
// CYLINDER
// ///////////////////////////////////
Obj cylinder = new Cylinder(50,24,50);
cylinder.set("cylinder");
cylinder.translate( -100,0,0);
cylinder.fill(255);
println(cylinder.toObjExporter("cylinder"));
group.add(cylinder);
// ///////////////////////////////////
// ELLIPSE
// ///////////////////////////////////
Face ellipse = new Ellipse(40,20);
ellipse.set("ellipse");
println(ellipse.toObjExporter("ellipse"));
group.add(ellipse);
// ///////////////////////////////////
// SWISSCROSS3D
// ///////////////////////////////////
Obj swissCross3D = new SwissCross3D(10,10);
swissCross3D.set("swissCross3D");
// swissCross3D.fill(255,0,0,200);
println(swissCross3D.toObjExporter("swissCross3D"));
// swissCross3D.translate(-100,0,0);
group.add(swissCross3D);
// ///////////////////////////////////
// REVOLVER
// ///////////////////////////////////
Pts ctrlRevol = new Pts();
ctrlRevol.add(Anar.Pt(30,0,30));
ctrlRevol.add(Anar.Pt(10,0,40));
ctrlRevol.add(Anar.Pt(20,0,60));
ctrlRevol.add(Anar.Pt(20,0,70));
Obj revolver = new Revolve(ctrlRevol,Anar.Pt(0,0,20),12);
revolver.set("revolver");
println(revolver.toObjExporter("revolver"));
group.add(revolver);
// ///////////////////////////////////
// CSPLINE
// ///////////////////////////////////
Pts ctrl = new Pts();
ctrl.add(Anar.Pt(30,100,0));
ctrl.add(Anar.Pt(10,150,20));
ctrl.add(Anar.Pt(20,100, -10));
ctrl.add(Anar.Pt(20,90,30));
ctrl.add(Anar.Pt(0,90,20));
ctrl.add(Anar.Pt( -30,80, -20));
CSpline cspline = new CSpline(ctrl);
cspline.set("cspline");
cspline.stroke(0);
println(cspline.toObjExporter("cspline"));
group.add(cspline);
// ///////////////////////////////////
// PointCLoud
// ///////////////////////////////////
Obj pointCloud = new Obj();
pointCloud.add(Anar.PtRnd(100));
pointCloud.add(Anar.PtRnd(100));
pointCloud.add(Anar.PtRnd(100));
println(pointCloud.toObjExporter("pointCloud"));
group.add(pointCloud);
// ///////////////////////////////////
// ///////////////////////////////////
myObj.add(box);
myObj.add(cone);
myObj.add(cylinder);
myObj.add(ellipse);
myObj.add(swissCross3D);
myObj.add(revolver);
myObj.add(cspline);
myObj.add(pointCloud);
Anar.sliders(swissCross3D);
Anar.sliders(revolver);
Anar.camTarget(revolver);
println("----------------");
// Anar.sliders = new SlidersBCF(Anar.sliders);
println("----------------");
ObjExporter.export(group);
File txtFile = new File("myExport.obj");
if(txtFile.exists()){
OBJLoader oj = new OBJLoader("myExport.obj");
for (int i = 0; i<oj.main.numOfObj(); i++)
group.add(new Obj(oj.main.obj(i),new TranslateY(200)));
}
Anar.main.add(group);
}
void draw(){
background(155);
group.draw();
// Anar.scene.screenDrawBegin();
}
boolean recordPov = false;
void keyPressed(){
// PovRAY.sceneExport = false;
// PovRAY.geometryExport = false;
if(key==' ')
initForm();
if(key=='a')
Autolisp.export(group);
if(key=='f')
RhinoScript.export(group);
if(key=='s')
SketchUpRuby.export(group);
if(key=='p')
PovRAY.export(group);
if(key=='o')
ObjExporter.export(group);
if(key=='q')
Radiance.export(group);
if(key=='r')
Anar.povRecorder();
if(key=='t')
Anar.radRecorder();
}

|