import processing.opengl.*; import anar.*; /* * Example for Anar library by Guillaume LaBelle + Julien Nembrini * http://anar.ch */ // import processing.opengl.*; Obj towerCore = new Obj(); void setup(){ size(800,400,OPENGL); Anar.init(this); // Setup DEFAULT rendering of our scene Anar.drawAxis(true); initForm(); } void initForm(){ // Here, we create an arbitrary shape Pts myShape = new Star(100,50,5); // The initial shape is duplicated Applying always the same predefined // Transformation Param numOfSubDivisionsOnEachSides = new Param(6); Transform combo = new Transform(); combo.translate(0,0,1); combo.scale(0.92f,0.945f,1.04f); combo.rotateZ(.03f); combo.rotateX(.005f); for (int i = 0; i<48; i++){ Pts pTmp = new Pts(myShape,combo); CSpline floorShape = new CSpline(pTmp,10f); floorShape.apply(combo); if(i%3!=0) towerCore.add(floorShape); myShape = pTmp; } // Global scene setups Anar.camTarget(towerCore); Anar.sliders(towerCore); } void draw(){ background(200); towerCore.draw(); }