"; # eventually modify to use a dedicated folder # generate a file per page if (!file_exists($FarmD.$processingfile)) if (!touch($FarmD.$processingfile)) print "Creation of the processing file fails, check write permissions for pmWiki and $processingfile."; # cached version (to comment during tests) #if ( (time() - filemtime($FarmD.$processingfile)) < 3600 ) return $processinglib.''; $canvaswidth=500; $canvasheight=300; $groupname = $sourcegroup; $pages = ListPages("/$groupname\./e"); $pages = MatchPageNames($pages,array('-*.*RecentChanges,-*.GroupFooter,-*.GroupHeader')); $pagesnum = count($pages); $processingsetupcode = " PShape s; void setup(){ frameRate(15); size($canvaswidth,$canvasheight); strokeWeight(2); PFont font; font = loadFont(\"FFScala-32.vlw\"); textFont(font); sright = loadShape(\"/pub/illustrations/flat_brain_right.svg\"); sleft = loadShape(\"/pub/illustrations/flat_brain_left.svg\"); smooth(); "; $processingdrawcode .= " void draw(){ background(255); "; $processingdrawcode .= "shape(sright,300, 400);"; $processingdrawcode .= "shape(sleft,200, 400);"; $processingdrawcode .= "fill(0,0,255,255);\n"; $processingdrawcode .= "text(\"flattened left hemisphere\",300,10);\n;"; $processingdrawcode .= "text(\"flattened right hemisphere\",100,10);\n;"; $target_area["x"] = 150; $target_area["y"] = 100; $target_area["width"] = 50; $target_area["height"] = 60; //replace with actual list of pages for ($pagen=0;$pagen<10;$pagen++){ $x = rand($target_area["x"],$target_area["x"]+$target_area["width"]); $y = rand($target_area["y"],$target_area["y"]+$target_area["height"]); //draw cercle in the area $radius = 3; $processingdrawcode .= "fill(255,0,0,100);ellipse($x,$y,$radius,$radius);\n"; //draw diagonal line of edits $linelength=10; $processingdrawcode .= "strokeWeight(1); line($x,$y,$x+$linelength,$y-$linelength);\n"; //replace with actual list of edits $maxdiff = rand(0,10); for ($diff=0;$diff<$maxdiff;$diff++){ //draw points on the line of edits with smaller stroke weight $diff_pos = rand(0,$linelength); $processingdrawcode .= "strokeWeight(2); point($x+$diff_pos,$y-$diff_pos);\n"; } } $processingdrawcode .= "fill(255,0,0,255);\n"; $processingdrawcode .= "text(\"Note that currently points are randomly generated\\nand randomly positionned on a designated area.\\nNo mapping has been done between function and position.\\nGyri and sulci are also not represented.\",10,200);\n;"; $processingsetupcode .= " }"; $processingdrawcode .= " }"; $result = $processinglib.''; $write_result = file_put_contents($FarmD.$processingfile,$processingsetupcode.$processingdrawcode); if (!$write_result) if (strlen($processingcode)>0) print "Creation of the feed file fails, check write permissions for pmWiki and $processingfile."; else print "No code to generate, did you correctly generate your Processing code?"; // ----------------------- return the processed result ----------------------- return $result; } ?>