// ------------------------------------------- // JAVASCRIPT INTERFACE // ------------------------------------------- /** * this acts as a "header definition" for external javascript functions */ interface JavaScript { void updateLog(String text); void setBorderThickness(float thickness); } // ------------------------------------------- // MAIN SKETCH // ------------------------------------------- // our javascript hook JavaScript javascript = null; void setJavaScript(JavaScript js) { javascript = js; } // standard setup void setup() { frameRate(30); size(200,200); } int x = 100; int y = 100; float angle = 0; float oldangle = 0; float thickness = 0; void draw() { // call javascript code without Processing complaining if(oldangle>angle && javascript!=null) { javascript.updateLog("gone full circle"); } // sketch code background(255,255,200); stroke(0); fill(100,100,200); float dx = 50.0*cos(angle); float dy = 50.0*sin(angle); int ddx = (int)dx; int ddy = (int)dy; ellipse(x+ddx, y+ddy, 20, 20); // call javascript code without Processing complaining if(javascript!=null) { thickness += 0.1; javascript.setBorderThickness(10*sin(thickness)); } // sketch code oldangle = angle; angle = (angle + PI/50.0)%(2*PI); }