import com.processinghacks.arcball.*; int PREVIEW=0, RENDER=1; int mode=PREVIEW; Attractor attractor; ImgBuffer imgBuffer; float sigmaMemory = 10; float rhoMemory = 28; float betaMemory = 8.0/3.0; PGraphics gui; PFont font; Button render, preview, smoothOn, smoothOff, randomize, undo, help; //----------------- void setup(){ size(400,400,P3D); imgBuffer = new ImgBuffer( width, height ); ortho(-width/2,width/2,-height/2,height/2,-10,10); ArcBall arcball = new ArcBall(this); attractor = new Lorenz(); attractor.generatePreview(); attractor.centerPreview(); gui = createGraphics(width, height, JAVA2D ); font = loadFont("silkscreen.vlw"); gui.beginDraw(); gui.textFont( font ); gui.endDraw(); render = new Button( "render", 10, height-25, gui ); preview = new Button( "preview", 10, height-25, gui ); smoothOn = new Button( "smooth", 100, height-25, gui ); smoothOff = new Button( "no smooth", 100, height-25, gui ); randomize = new Button( "randomize", 190, height-25, gui ); undo = new Button( "undo", 280, height-25, gui ); help = new Button( "?", 370, height-25, 20, 15, gui ); } //----------------- void draw(){ background( 0 ); translate(width/2,height/2,-width/2); stroke( 64,255,64 ); if( mode==PREVIEW ) attractor.drawPreview( attractor.DOTS ); if( mode==RENDER ){ attractor.renderToBuffer( 5000, imgBuffer ); imgBuffer.drawBuffer(); } drawGui(); } //----------------- void drawGui(){ gui.beginDraw(); gui.background( 129 ); gui.fill( 64 ); gui.rect(0,height-35,width-1, 34); if(mode==PREVIEW) render.visualize(); else preview.visualize(); if(imgBuffer.antialias) smoothOff.visualize(); else smoothOn.visualize(); randomize.visualize(); undo.visualize(); help.visualize(); gui.endDraw(); gui.loadPixels(); loadPixels(); for(int i=0;i