This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.

anar+

by   LaBelle + Nembrini
©2008

built with ( )
   examples index
Rotate: middle click or key[1]
Zoom in|out: wheel button or key[2]
AutoRotate: key[5]
(First Click inside the applet to enable keys)

This applet use OpenGL, you might have to install extra jogl libraries once to view this applet. You may have a look at image capture and video at the bottom of this page. You might accept security security permenently to remove the security prompts on each pages.



sourcecode


   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();
}
 
 



screenshots