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



screenshots