(function(){ var Surface=function(node){ var heightFunction,colorFunction,timer,timer,transformPrecalc=[]; var displayWidth=300, displayHeight=300, zoom=1; var trans; this.setZoom=function(zoomLevel){ zoom=zoomLevel; if(timer) clearTimeout(timer); timer=setTimeout(renderSurface); }; var getHeights=function(){ var data=node.datum(); var output=[]; var xlength=data.length; var ylength=data[0].length; for(var x=0;x