diff --git a/modules/processes/mill/raster/3D b/modules/processes/mill/raster/3D index f37a28bf727dabd548caef37b2c047ee520e9132..ef7412d7461ce985e2326e47a463bee950a91252 100644 --- a/modules/processes/mill/raster/3D +++ b/modules/processes/mill/raster/3D @@ -300,10 +300,11 @@ function calculate_path_worker() { // var toolsize = Math.floor(diameter*w/(mmunits*(xmax-xmin))) var tooloffset = new Float32Array(toolsize*toolsize) + var toolmiddle = Math.floor(toolsize/2) for (var x = 0; x < toolsize; ++x) for (var y = 0; y < toolsize; ++y) { - var r = Math.sqrt((x-toolsize/2)*(x-toolsize/2)+(y-toolsize/2)*(y-toolsize/2)) - if (r <= toolsize/2) + var r = Math.sqrt((x-toolmiddle)*(x-toolmiddle)+(y-toolmiddle)*(y-toolmiddle)) + if (r <= toolmiddle) tooloffset[y*toolsize+x] = 0 else tooloffset[y*toolsize+x] = Number.MAX_VALUE @@ -311,15 +312,15 @@ function calculate_path_worker() { // // loop over lines // - xstart = 0 - ystart = h-1 - zstart = Math.floor((map[ystart*w+xstart]-zmax)*w/(xmax-xmin)) + var xstart = 0 + var ystart = h-1 + var zstart = (map[ystart*w+xstart]-zmax)*w/(xmax-xmin) path[0].push([xstart,h-1-ystart,zstart]) - xcur = 1 - ycur = h-1 - zcur = Math.floor((map[ycur*w+xcur]-zmax)*w/(xmax-xmin)) - dx = 1 - dy = 0 + var xcur = 1 + var ycur = h-1 + var zcur = (map[ycur*w+xcur]-zmax)*w/(xmax-xmin) + var dx = 1 + var dy = 0 while (1) { // // move to next point @@ -334,9 +335,12 @@ function calculate_path_worker() { // // find offset at next point // - for (var x = 0; x < toolsize; ++x) - for (var y = 0; y < toolsize; ++y) { - znext = Math.floor((map[ynext*w+xnext]-zmax)*w/(xmax-xmin)) + for (var xoffset = 0; xoffset < toolsize; ++xoffset) + for (var yoffset = 0; yoffset < toolsize; ++yoffset) { + var x = xcur+(xoffset-toolmiddle) + var y = ycur+(yoffset-toolmiddle) + var offset = tooloffset[yoffset*toolsize+xoffset] + znext = (map[ynext*w+xnext]-zmax)*w/(xmax-xmin) } // // vectorize