diff --git a/modules/processes/mill/raster/3D b/modules/processes/mill/raster/3D index c7ed5b15dd21d5d62a6de006499b44b310e9cdf7..ca76f580699bf1f2e46903dc1dbed9f67c3272f1 100644 --- a/modules/processes/mill/raster/3D +++ b/modules/processes/mill/raster/3D @@ -35,6 +35,7 @@ var init = function() { var inputs = { map:{type:'',label:'height map', event:function(evt){ + mod.map = evt.detail.map mod.width = evt.detail.width mod.height = evt.detail.height mod.xmin = evt.detail.xmin @@ -214,11 +215,19 @@ var interface = function(div){ // calculate_path // function calculate_path() { + var h = mod.height + var w = mod.width + var xmin = mod.xmin + var xmax = mod.xmax + var ymin = mod.ymin + var ymax = mod.ymax + var zmin = mod.zmin + var zmax = mod.zmax // // clear SVG // var svg = document.getElementById(mod.div.id+'svg') - svg.setAttribute('viewBox',"0 0 "+(mod.width-1)+" "+(mod.height-1)) + svg.setAttribute('viewBox',"0 0 "+(w-1)+" "+(h-1)) var g = document.getElementById(mod.div.id+'g') svg.removeChild(g) var g = document.createElementNS('http://www.w3.org/2000/svg','g') @@ -228,29 +237,34 @@ function calculate_path() { // line loop // var ix = 0 - var iy = mod.height-1 + var iy = h-1 var dx = 1 var dy = 0 - //var x2 = mod.xmin+(mod.xmax-mod.xmin)*ix/(mod.width-1) - //var y2 = mod.ymin+(mod.ymax-mod.ymin)*iy/(mod.height-1) + var x = xmin+(xmax-xmin)*ix/(w-1) + var y = ymin+(ymax-ymin)*iy/(h-1) + var z = mod.map[(h-1-iy)*w+ix] + var dz = h*(zmax-z)/(ymax-ymin) while (1) { var ixp = ix var iyp = iy + var dzp = dz ix += dx iy += dy - var line = document.createElementNS('http://www.w3.org/2000/svg','line') - line.setAttribute('stroke','black') - line.setAttribute('stroke-width',1) - line.setAttribute('stroke-linecap','round') - line.setAttribute('x1',ixp) - line.setAttribute('y1',iyp) - line.setAttribute('x2',ix) - line.setAttribute('y2',iy) - g.appendChild(line) - //var x2 = mod.xmin+(mod.xmax-mod.xmin)*ix/(mod.width-1) - //var y2 = mod.ymin+(mod.ymax-mod.ymin)*iy/(mod.height-1) if (iy <= 0) break; + var x = xmin+(xmax-xmin)*ix/(w-1) + var y = ymin+(ymax-ymin)*iy/(h-1) + var z = mod.map[iy*w+ix] + var dz = 0.1*h*(zmax-z)/(zmax-zmin) + var line = document.createElementNS('http://www.w3.org/2000/svg','line') + line.setAttribute('stroke','black') + line.setAttribute('stroke-width',1) + line.setAttribute('stroke-linecap','round') + line.setAttribute('x1',ixp) + line.setAttribute('y1',iyp+dzp) + line.setAttribute('x2',ix) + line.setAttribute('y2',iy+dz) + g.appendChild(line) if (ix == (mod.width-1)) { if (dx == 1) { dx = 0