autowatch = 1 ; inlets = 1; outlets = 4; ///////VARIABLES FOR ALL var drawFlag = 0; if (!drawFlag){ post("should render"); } var page = [] var dummyWord = { color : [0, 0, 0, 0.], position : [0.,0.,0.,], size: 14, str : ""}; for (z=0;z<90;z++){ page[z] = dummyWord; } post (page.length); var myrender = new JitterObject ("jit.gl.render", "werds") ; myrender.erase_color = [0., 0., 0.,1.] ; myrender.blend_enable = 0 ; myrender.depth_enable = 1 ; myrender.init = 0 ; var blabla = new JitterObject ("jit.gl.text2d", "werds") ; blabla.blend_enable = 0; blabla.depth_enable = 0 ; blabla.automatic = 0 ; blabla.font("Arial") ; blabla.face("bold"); blabla.screenmode = 1; blabla.align = 1; blabla.antialias = 1; blabla.tracking = 1.2; blabla.size(14) ; ///////VARIABLES FOR OCR TEXT var OCRIndex = 0 ; //////VARIABLES FOR NEW POEM var newPoemIndex = 50; var newPoemTextColor = 0; var newPoemLength = 19; var newPoemAlphaInc = 0.024; var newPoemPosition = 0; var newPoemAlpha = 0; var newPoemLine = 0; //////VARIABLES FOR ARCHIVED POEMS var oldPoemIndex = 70; var oldPoemTextColor = 0; var oldPoemoemLength = 19; var oldPoemAlphaInc = 0.024; var oldPoemPosition = 0; var oldPoemAlpha = 0; var oldPoemline = 0; ///////SET THE PROPERTIES OF THE OCR TEXT PORTION OF THE PAGE ARRAY function ocrText (a){ //outlet(0,"bang"); var i ; var xMultiplier = Math.sin(Math.random()*360); if (xMultiplier < 0){ xMultiplier = -0.8; } else { xMultiplier = 0.8; } var yMultiplier = Math.sin(Math.random()*360); if (yMultiplier < 0){ yMultiplier = -1,6; } else { yMultiplier = 1.6; } var textColor = Math.random()*0.5+0.1; var word = { color : [textColor, textColor, textColor, 1.], position : [Math.random ( )*xMultiplier, Math.random ( )*yMultiplier, -1.], size: Math.floor(Math.random()*6)+7, str : a } ; page[OCRIndex] = word ; if (OCRIndex < 49) { OCRIndex ++ ; } else { OCRIndex = 0 ; } if(!drawFlag){ drawEverything(); } } /////////SET THE PROPERTIES OF THE NEW POEM function newPoemLengthSetter(length){ newPoemLength = length; post (newPoemLength); } function newPoemErase(){ for (e=50;e<70;e++){ page[e].str = "" } newPoemline=0; newPoemindex=50; newPoemAlpha = 0; newPoemLoaderTimer.cancel(); newPoemUnloaderTimer.cancel(); drawEverything(); } ////creates timers and loader/unloader functions var newPoemLoaderTimer= new Task(newPoemLoaderData, this); newPoemLoaderTimer.interval = 40; var newPoemUnloaderTimer= new Task(newPoemUnloaderData, this); newPoemUnloaderTimer.interval = 40; function newPoemLoader(){ outlet(0,1); newPoemAlpha = 0; newPoemLoaderTimer.repeat(); } function newPoemUnloader(){ outlet(0,1); newPoemAlpha = 0.75; newPoemUnloaderTimer.repeat(); } /////////load the text and call animation function newPoemText (a){ var sentence = {color : [0.,0.,0.,0.,], position : [0., -.75+newPoemLine*.035, 0.], size: 20, str : a} ; var sentence2 = {color : [0.,0.,0.,0.,], position : [0., -.75+newPoemLine*.035, 0.], size: 14, str : a} page[newPoemIndex] = sentence2 ; if (newPoemLine == 0){ page[newPoemIndex]=sentence; } //newPoemLine ++; // newPoemIndex ++; newPoemLoader(); post("Line is " + newPoemLine + " index is " + newPoemIndex + " text is " + a + " position is " + sentence.position[1]+ "\n"); } //////////animates the line of the poem by fading it in function newPoemLoaderData(){ newPoemAlpha +=newPoemAlphaInc; post("Alpha is "+ newPoemAlpha + " and line is " + newPoemLine + "\n"); page[newPoemIndex].color = [newPoemAlpha,newPoemAlpha,newPoemAlpha,newPoemAlpha]; if(!drawFlag){ drawEverything(); } if (newPoemAlpha>=0.75){ newPoemLine +=1; newPoemIndex +=1; newPoemAlpha=0; outlet(0,0); newPoemLoaderTimer.cancel(); } if (newPoemLine>=newPoemLength){ post("unloader will be called"); newPoemLine = 0; newPoemIndex = 50; newPoemLoaderTimer.cancel(); newPoemUnloader() outlet(1,"bang"); } } /////////animates accumulated poem by fading it out function newPoemUnloaderData(){ newPoemAlpha -=newPoemAlphaInc; post("Alpha is "+ newPoemAlpha + " and line is " + newPoemLine + "\n"); page[newPoemIndex].color = [newPoemAlpha,newPoemAlpha,newPoemAlpha,newPoemAlpha]; if(!drawFlag){ drawEverything(); } if (newPoemAlpha<=0){ newPoemLine +=1; newPoemIndex +=1; newPoemAlpha=0.75; newPoemLoaderTimer.cancel(); } if (newPoemLine>=newPoemLength){ newPoemLine = 0; newPoemIndex = 50; newPoemUnloaderTimer.cancel(); outlet(0,0); outlet(2,"bang"); //outlet(1,0); } } /////////OLDPOEM SETTINGS///////////////////////// function oldPoemLineQuery(length){ if (length > 20){ length = 20; } oldPoemLength = length; post(oldPoemLength); oldPoemErase(); } function oldPoemErase(){ for (e=70;e<90;e++){ page[e].str = "" } oldPoemIndex = 70; oldPoemLine = 0; oldPoemLoaderTimer.cancel(); oldPoemUnloaderTimer.cancel(); drawEverything(); } ////creates timers var oldPoemLoaderTimer = new Task(oldPoemLoaderData, this); oldPoemLoaderTimer.interval = 40; var oldPoemUnloaderTimer = new Task(unloadPoemData, this); oldPoemUnloaderTimer.interval = 40; ////cretaes the timers function oldPoemLoader(){ outlet(0,1); oldPoemAlpha = 0; oldPoemLine = 0; oldPoemIndex = 70; oldPoemLoaderTimer.repeat(); } function oldPoemUnloader(){ outlet(0,1); oldPoemIndex=oldPoemLength+69; oldPoemLine=oldPoemLength; oldPoemUnloaderTimer.repeat(); } function oldPoemText (a){ var sentence = {color : [0.,0.,0.,0.,], position : [0., .75 - oldPoemLine*0.035, 0.], size: 20, str : a} ; var sentence2 = {color : [0.,0.,0.,0.], position : [0., .75 - oldPoemLine*0.035, 0.], size: 14, str : a} page[oldPoemIndex] = sentence2 ; if (oldPoemLine == 0){ page[oldPoemIndex]=sentence; } if (oldPoemLine >= oldPoemLength-2){ //post("poem length reached, oldPoemLine is " + oldPoemLine + " oldPoemIndex is "+ oldPoemIndex +"\n"); index=70; line=0; return; //poemLoader(); } oldPoemIndex += 1 ; oldPoemLine +=1; } function oldPoemLoaderData(){ // outlet(1, "bang"); //outlet(0,1); //position+=moveAmount; oldPoemAlpha += oldPoemAlphaInc; //post("loading line " +oldPoemLine + " and oldPoemIndex = " + oldPoemIndex + "andalpha is " +oldPoemAlpha +"\n"); page[oldPoemIndex].color = [oldPoemAlpha,oldPoemAlpha,oldPoemAlpha,oldPoemAlpha]; if(!drawFlag){ drawEverything(); } if (oldPoemAlpha >= .75){ oldPoemIndex +=1; oldPoemLine +=1; oldPoemAlpha =0; //position = 0; } if (oldPoemLine>=oldPoemLength){ //oldPoemLine = 0; oldPoemIndex = 70; oldPoemLoaderTimer.cancel(); outlet(0,0); //unloadIntervalIDArch.cancel(); //reset to black } } function unloadPoemData(){ //outlet(1,"bang"); //outlet (0,1); oldPoemAlpha -= oldPoemAlphaInc; post("unloading line " +oldPoemLine + " and oldPoemIndex = " + oldPoemIndex + "andalpha is " +oldPoemAlpha +"\n"); //post("line is "+ line + "\n"); page[oldPoemIndex].color = [oldPoemAlpha,oldPoemAlpha,oldPoemAlpha,oldPoemAlpha]; if(!drawFlag){ drawEverything(); } if (oldPoemAlpha<=0){ oldPoemLine-=1; oldPoemIndex-=1; oldPoemAlpha = 0.75 } if (oldPoemLine<0){ oldPoemUnloaderTimer.cancel(); oldPoemLineine = 0; oldPoemIndex = 0; outlet(0,0); oldPoemErase(); } } /////////RENDER EVERYTHING function drawEverything(){ drawFlag = 1; if (!myrender.init) // ########### ??? { myrender.drawswap () ; myrender.init = 1 ; } myrender.erase ( ) ; //post("Entering draw cycle and drawflag is " + drawFlag); for (i = 0 ; i < page.length ; i++) { blabla.position = page[i].position ; blabla.color = page[i].color ; blabla.text (page[i].str) ; blabla.size(page[i].size); blabla.draw ( ) ; } gc(); myrender.drawswap ( ) ; outlet(3,"bang"); drawFlag = 0; //post("exiting draw cycle and drawflag is " + drawFlag); }