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:   Test03vSwissCross3Dc.pde
   JAVA Download:   Test03vSwissCross3Dc.java


Click on anar+ terms to get the documentation.

import processing.opengl.*;
import anar.*;
 
 
 
import promidi.*;
 
 
 
 
/*
 * Example for Anar library by Guillaume LaBelle + Julien Nembrini
 * http://anar.ch
 */
 
 
 
Obj    myObj;
Param  w1 = new Param(50,20,100);
Param  w2 = new Param(50,20,100);
 
MidiIO midiIO;
 
void setup(){
    size(300,300,OPENGL);
  Anar.init(this);
  Anar.scene.lights = false;
  Anar.scene.autoRotateZ = .01f;
  Anar.scene.autoRotateX = .0041f;
 
  midiIO = MidiIO.getInstance(this);
  println("printPorts of midiIO");
  midiIO.printDevices();
  // midiIO.openInput(8,0);
 
  midiIO.plug(this,"noteOn",0,0);
  midiIO.plug(this,"noteOff",0,0);
  midiIO.plug(this,"controllerIn",0,0);
  midiIO.plug(this,"programChange",0,0);
 
  Anar.sliders(w1);
  Anar.sliders(w2);
 
 
  initForm();
}
 
void initForm(){
  myObj = new Obj();
  Obj swissCross3D = new SwissCross3D(w1,w2);
  swissCross3D.fill(new RenderFaceNoStroke(new AColor(255)));
  myObj.add(swissCross3D);
 
  // println(swissCross3D.toObjExporter());
}
 
void draw(){
 
  // updateParam();
 
  background(215,0,0);
  myObj.draw();
 
  if(key==' '){
    w1.setRatio(mouseX/(float)width);
    w2.setRatio(mouseY/(float)height);
  }
}
 
 
void noteOn(Note note){
  int vel = note.getVelocity();
  int pit = note.getPitch();
  println("noteON");
}
 
void noteOff(Note note){
  int pit = note.getPitch();
  println("noteOff");
}
 
void controllerIn(Controller controller){
  int num = controller.getNumber();
  int val = controller.getValue();
  int val2 = controller.getCommand();
 
  byte[] raw = controller.getMessage();
 
 
  println(num+"|"+val+"|"+val2+"|"+raw[0]+"|"+raw[1]+"|"+raw[2]);
 
  if(num==1)
    w1.setMidi(val);
 
  if(num==2)
    w2.setMidi(val);
 
 
}
 
void programChange(ProgramChange programChange){
  int num = programChange.getNumber();
  println("progChange");
}
 
 
void updateParam(){
  w2.set(100*sin(frameCount/10f));
  w1.set(100*sin(frameCount/33f));
  println(w2);
}
 
 



screenshots