From 320d612ee0dcf3cc79dcec0d9eb61234da066b8c Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 13 Jun 2020 11:35:19 -0400 Subject: [PATCH] fix grid regen and default to 1/10in minor in imperial mode --- src/kiri/main.js | 2 +- src/moto/space.js | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/kiri/main.js b/src/kiri/main.js index edee5351..875eadcd 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -988,7 +988,7 @@ let ctrl = settings.controller, unitMM = ctrl.units === 'mm', gridMajor = unitMM ? 25 : 25.4, - gridMinor = unitMM ? 5 : 25.4 / 4; + gridMinor = unitMM ? 5 : 25.4 / 10; if (ctrl.dark) { SPACE.platform.setGrid(gridMajor, gridMinor, 0x999999, 0x333333); SPACE.platform.opacity(0.8); diff --git a/src/moto/space.js b/src/moto/space.js index 198c9b6e..3ddd7969 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -230,11 +230,10 @@ let x = platform.scale.x, y = isRound ? platform.scale.z : platform.scale.y, z = isRound ? platform.scale.y : platform.scale.z, - xr = Math.round(x / unitMinor) * unitMinor, - yr = Math.round(y / unitMinor) * unitMinor, - xo = isRound ? x/2 : xr/2, - yo = isRound ? y/2 : yr/2, - divs = Math.round(unitMajor / unitMinor), + xr = Math.ceil(x/2 / unitMinor) * unitMinor, + yr = Math.ceil(y/2 / unitMinor) * unitMinor, + xo = isRound ? x/2 : xr, + yo = isRound ? y/2 : yr, w = x / 2, h = y / 2, d = z / 2, @@ -243,7 +242,8 @@ for (i = -xo; i <= xo; i += unitMinor) { let oh = isRound ? Math.sqrt(1-(i/xo)*(i/xo)) * h : h, dM = Math.abs(i % unitMajor); - if (dM < 0.1 || Math.abs(unitMajor - dM) < 0.1) { + if (i < -w || i > w) continue; + if (dM < 1 || Math.abs(unitMajor - dM) < 0.1) { majors.append({x:i, y:-oh, z:zp}).append({x:i, y:oh, z:zp}); } else { minors.append({x:i, y:-oh, z:zp}).append({x:i, y:oh, z:zp}); @@ -252,7 +252,8 @@ for (i = -yo; i <= yo; i += unitMinor) { let ow = isRound ? Math.sqrt(1-(i/yo)*(i/yo)) * w : w, dM = Math.abs(i % unitMajor); - if (dM < 0.1 || Math.abs(unitMajor - dM) < 0.1) { + if (i < -h || i > h) continue; + if (dM < 1 || Math.abs(unitMajor - dM) < 0.1) { majors.append({x:-ow, y:i, z:zp}).append({x:ow, y:i, z:zp}); } else { minors.append({x:-ow, y:i, z:zp}).append({x:ow, y:i, z:zp});