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