From e1358fe566e4fc1f8fdcd239b0f0448eb699f117 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 15 Jul 2025 18:39:48 -0400 Subject: [PATCH] formatting --- src/kiri/mode/cam/slicer_topo.js | 22 ++++----- src/kiri/mode/cam/tool.js | 10 ++-- src/kiri/mode/cam/topo3.js | 82 +++++++++++++++++--------------- src/kiri/mode/cam/topo4.js | 40 ++++++++-------- 4 files changed, 79 insertions(+), 75 deletions(-) diff --git a/src/kiri/mode/cam/slicer_topo.js b/src/kiri/mode/cam/slicer_topo.js index 27c19b57..3fe74ca6 100644 --- a/src/kiri/mode/cam/slicer_topo.js +++ b/src/kiri/mode/cam/slicer_topo.js @@ -26,7 +26,7 @@ export class Slicer { const max = options.max || Infinity; const len = position.length; const pts = this.points = []; - for (let i=0; i -- All Rights Reserved */ -const HPI = Math.PI/2; -const RAD2DEG = 180/Math.PI; +const HPI = Math.PI / 2; +const RAD2DEG = 180 / Math.PI; class Tool { constructor(settings, id, number) { @@ -102,7 +102,7 @@ class Tool { return this.tool.type === "tapermill"; } - isDrill(){ + isDrill() { return this.tool.type === "drill"; } @@ -162,8 +162,8 @@ class Tool { // z_offset = (1 - Math.cos((dist_from_center / flute_radius_pix_float) * HPI)) * -flute_radius; } else if (taper && dist_from_center >= tip_radius_pix_float) {// if tapered and not in the flat tip radius z_offset = ((dist_from_center - tip_radius_pix_float) / tip_max_radius_offset) * -shaft_offset; - }else if(drill){ - z_offset = -dist_from_center /45; + } else if (drill) { + z_offset = -dist_from_center / 45; } toolOffset.push(dx, dy, z_offset); } else if (shaft_offset && larger_shaft && dist_from_center <= shaft_radius_pix_float) { diff --git a/src/kiri/mode/cam/topo3.js b/src/kiri/mode/cam/topo3.js index d45ae043..84a54fce 100644 --- a/src/kiri/mode/cam/topo3.js +++ b/src/kiri/mode/cam/topo3.js @@ -37,7 +37,7 @@ export class Topo { boundsY = maxY - minY, inside = contour.inside, density = 1 + (contour.reduction || 0), - resolution = tolerance ? tolerance : 1/Math.sqrt(animesh/(boundsX * boundsY)), + resolution = tolerance ? tolerance : 1 / Math.sqrt(animesh / (boundsX * boundsY)), tool = new Tool(settings, contour.tool), toolOffset = tool.generateProfile(resolution).profile, toolDiameter = tool.fluteDiameter(), @@ -68,11 +68,11 @@ export class Topo { }, data = topo.data, newslices = [], - tabsMax = tabs ? Math.max(...tabs.map(tab => tab.dim.z/2 + tab.pos.z)) : 0, + tabsMax = tabs ? Math.max(...tabs.map(tab => tab.dim.z / 2 + tab.pos.z)) : 0, tabsOn = tabs, tabHeight = Math.max(process.camTabsHeight + zBottom, tabsMax), clipTab = tabsOn ? [] : null, - clipTo = inside ? shadow : POLY.expand(shadow, toolDiameter/2 + resolution * 3), + clipTo = inside ? shadow : POLY.expand(shadow, toolDiameter / 2 + resolution * 3), partOff = inside ? 0 : toolDiameter / 2 + resolution, gridDelta = Math.floor(partOff / resolution), debug = false, @@ -92,8 +92,8 @@ export class Topo { if (tabs) { clipTab.appendAll(tabs.map(tab => { - let ctab = POLY.expand([tab.poly], toolDiameter/2); - ctab.forEach(ct => ct.z = tab.dim.z/2 + tab.pos.z); + let ctab = POLY.expand([tab.poly], toolDiameter / 2); + ctab.forEach(ct => ct.z = tab.dim.z / 2 + tab.pos.z); return ctab; }).flat()); } @@ -197,7 +197,7 @@ export class Topo { const range = { min: Infinity, max: -Infinity }; // swap XZ in shared array - for (let i=0,l=vertices.length; i 1) { - dispatch.putCache({ key: widget.id, data: vertices }, { done: data => { - // console.log({ put_cache_done: data }); - }}); + dispatch.putCache({ key: widget.id, data: vertices }, { + done: data => { + // console.log({ put_cache_done: data }); + } + }); let promises = slices.map(slice => { return new Promise(resolve => { @@ -256,9 +258,11 @@ export class Topo { return box2; }); - dispatch.clearCache({}, { done: data => { - // console.log({ clear_cache_done: data }); - }}); + dispatch.clearCache({}, { + done: data => { + // console.log({ clear_cache_done: data }); + } + }); } else { @@ -340,8 +344,8 @@ export class Topo { let promise = new Promise(resolve => { resolver = () => { // sort output slices (required for async) - slicesY.sort((a,b) => a.z - b.z); - slicesX.sort((a,b) => a.z - b.z); + slicesY.sort((a, b) => a.z - b.z); + slicesX.sort((a, b) => a.z - b.z); newslices.appendAll(slicesY); newslices.appendAll(slicesX); resolve(); @@ -369,7 +373,7 @@ export class Topo { let slice = newSlice(gridx); slice.camLines = segments; slice.output() - .setLayer("contour y", {face: color, line: color}) + .setLayer("contour y", { face: color, line: color }) .addPolys(segments); slicesY.push(slice); } @@ -398,7 +402,7 @@ export class Topo { let slice = newSlice(gridy); slice.camLines = segments; slice.output() - .setLayer("contour x", {face: color, line: color}) + .setLayer("contour x", { face: color, line: color }) .addPolys(segments); slicesX.push(slice); } @@ -431,7 +435,7 @@ export class Probe { this.params = params; // return the touching z given topo x,y and a tool profile - const toolAtZ = this.toolAtZ = function(x,y) { + const toolAtZ = this.toolAtZ = function (x, y) { let sx = stepsX, sy = stepsY, xl = sx - 1, @@ -461,13 +465,13 @@ export class Probe { // export z probe function const rx = stepsX / boundsX; const ry = stepsX / boundsX; - const toolAtXY = this.toolAtXY = function(px, py) { + const toolAtXY = this.toolAtXY = function (px, py) { px = Math.round(rx * (px - minX)); py = Math.round(ry * (py - minY)); return toolAtZ(px, py); }; - const zAtXY = this.zAtXY = function(px, py) { + const zAtXY = this.zAtXY = function (px, py) { let ix = Math.round(rx * (px - minX)); let iy = Math.round(ry * (py - minY)); return data[ix * stepsY + iy] || zMin; @@ -496,11 +500,11 @@ export class Trace { this.slice = slice = []; } - const newtrace = this.newtrace = function() { + const newtrace = this.newtrace = function () { trace = newPolygon().setOpen(); } - const end_poly = this.end_poly = function(point) { + const end_poly = this.end_poly = function (point) { if (latent) { trace.push(latent); } @@ -520,7 +524,7 @@ export class Trace { } } - const log = function(map) { + const log = function (map) { for (let key in map) { const val = map[key]; if (typeof val === 'number') { @@ -530,7 +534,7 @@ export class Trace { console.log(...arguments); } - const push_point = this.push_point = function(x, y, z) { + const push_point = this.push_point = function (x, y, z) { const newP = newPoint(x, y, z); const lastP = lastPP;//trace.last(); @@ -550,7 +554,7 @@ export class Trace { if (curvesOnly) { const dv = contourX ? Math.abs(lastP.x - x) : Math.abs(lastP.y - y); // const dz = lastPP.z - z; - const angle = Math.atan2( Math.abs(dz), dv) * RAD2DEG; + const angle = Math.atan2(Math.abs(dz), dv) * RAD2DEG; if (angle > maxangle) { end_poly(); } @@ -568,7 +572,7 @@ export class Trace { const object = this.object = this; this.inClip = function (clips, checkZ, point) { - for (let i=0; i p2.y) { const tp = p1; p1 = p2; p2 = tp }; // eliminate if points "under" other lines - for (let j=0; j= i-1 && j <= i+1) continue; + if (j >= i - 1 && j <= i + 1) continue; let l2 = lines[j], p3 = l2.p1, p4 = l2.p2; // sort p3,p4 by y for comparison if (p3.y > p4.y) { const tp = p3; p3 = p4; p4 = tp }; // it's under the other line - if (Math.max(p1.z,p2.z) < Math.min(p3.z,p4.z)) { + if (Math.max(p1.z, p2.z) < Math.min(p3.z, p4.z)) { // it's inside the other line, too, so skip if (p1.y >= p3.y && p2.y <= p4.y) continue outer; } @@ -766,8 +770,8 @@ export function raster_slice(inputs) { gridi = gridx * stepsY + gridy; gridv = data[gridi] || zMin; // strategy using raw lines (faster slice, but more lines) - for (i=0, il=points.length; i gridv || p2.z > gridv); // segment crosses grid y @@ -783,7 +787,7 @@ export function raster_slice(inputs) { if (nz > gridv) { gridv = data[gridi] = Math.max(nz, zMin); if (slice) slice.output() - .setLayer("heights", {face: 0, line: 0}) + .setLayer("heights", { face: 0, line: 0 }) .addLine( newPoint(p1.x, y, 0), newPoint(p1.x, y, gridv) @@ -797,9 +801,9 @@ export function raster_slice(inputs) { // remove flat lines when curvesOnly if (curvesOnly) { let nup = []; - for (let i=0, p=points, l=p.length; i= flatness) { nup.push(p1, p2); } diff --git a/src/kiri/mode/cam/topo4.js b/src/kiri/mode/cam/topo4.js index 7a4c39c6..5bd4f528 100644 --- a/src/kiri/mode/cam/topo4.js +++ b/src/kiri/mode/cam/topo4.js @@ -92,7 +92,7 @@ export class Topo { const box = this.box = new THREE.Box2(); // swap XZ in shared array - for (let i=0, l=vertices.length; i [ l.p1, l.p2 ]).flat()); + const points = codec.encodePointArray(rec.lines.map(l => [l.p1, l.p2]).flat()); const shared = new Float32Array(new SharedArrayBuffer(points.length * 4)); shared.set(points); slice.shared = shared; @@ -168,7 +168,7 @@ export class Topo { return slice; }); output.appendAll(recs); - onupdate(++complete /slices.length); + onupdate(++complete / slices.length); } return output; @@ -197,7 +197,7 @@ export class Topo { .map(rec => newSlice(rec.z) .addTops(rec.polys) .setFields({ shared: rec.shared })) - .sort((a,b) => a.z - b.z); + .sort((a, b) => a.z - b.z); clearCache(); return output; @@ -226,7 +226,7 @@ export class Topo { const lines = slice.lines; const plen = lines.length; const rec = { z: slice.z, lines: [] }; - for (let i = 0; i < plen; ) { + for (let i = 0; i < plen;) { ++i; // skip x which should match slice.z let py0 = lines[i++]; const pz0 = lines[i++]; @@ -248,7 +248,7 @@ export class Topo { const rx = oslices[si].z; let mz = -Infinity; // iterate over tool offsets - for (let ti = 0; ti < tlen; ) { + for (let ti = 0; ti < tlen;) { // tool offset in grid units from present x (si) const xo = tool[ti++]; // x grid offset (slice) const yo = tool[ti++] * resolution; // y grid offset (mult rez to get real y) @@ -262,7 +262,7 @@ export class Topo { const slice = oslices[ts]; const lines = slice.lines; const plen = lines.length; - for (let i = 0; i < plen; ) { + for (let i = 0; i < plen;) { ++i; // skip x which should match slice.z let py0 = lines[i++]; const pz0 = lines[i++]; @@ -323,15 +323,15 @@ export class Topo { // count = recs[0].heights.length / 3; while (count-- > 0) { let slice = newSlice(count); - slice.camLines = [ newPolygon().setOpen() ]; + slice.camLines = [newPolygon().setOpen()]; paths.push(slice); } if (linear) { - recs.forEach((rec,i) => { + recs.forEach((rec, i) => { const { degrees, heights } = rec; [...heights].group(3).forEach((a) => { - paths[i].camLines[0].push( newPoint(a[0], a[1], a[2] + leave).setA(degrees) ); + paths[i].camLines[0].push(newPoint(a[0], a[1], a[2] + leave).setA(degrees)); }); if (i % 2 === 1) { paths[i].camLines[0].reverse(); @@ -340,9 +340,9 @@ export class Topo { } else { for (let rec of recs) { const { degrees, heights } = rec; - [...heights].group(3).forEach((a,i) => { + [...heights].group(3).forEach((a, i) => { // progress each path 360 degrees to prevent A rolling backwards - paths[i].camLines[0].push( newPoint(a[0], a[1], a[2] + leave).setA(degrees + i * -360) ); + paths[i].camLines[0].push(newPoint(a[0], a[1], a[2] + leave).setA(degrees + i * -360)); }); } } @@ -358,7 +358,7 @@ export class Topo { slice.camLines[0].push(repeat.clone().setA(repeat.a - 360)); slice.output() .setLayer("lathe", { line: this.lineColor }) - .addPoly(poly.clone().applyRotations().move({ z: -zoff, x:0, y:0 })); + .addPoly(poly.clone().applyRotations().move({ z: -zoff, x: 0, y: 0 })); } // console.log({ tool, slices, paths }); @@ -411,15 +411,15 @@ export class Topo { count = linear ? recs.length : recs[0].heights.length / 3; while (count-- > 0) { let slice = newSlice(count); - slice.camLines = [ newPolygon().setOpen() ]; + slice.camLines = [newPolygon().setOpen()]; paths.push(slice); } if (linear) { - recs.forEach((rec,i) => { + recs.forEach((rec, i) => { const { degrees, heights } = rec; [...heights].group(3).forEach((a) => { - paths[i].camLines[0].push( newPoint(a[0], a[1], a[2] + leave).setA(degrees) ); + paths[i].camLines[0].push(newPoint(a[0], a[1], a[2] + leave).setA(degrees)); }); if (i % 2 === 1) { paths[i].camLines[0].reverse(); @@ -428,9 +428,9 @@ export class Topo { } else { for (let rec of recs) { const { degrees, heights } = rec; - [...heights].group(3).forEach((a,i) => { + [...heights].group(3).forEach((a, i) => { // progress each path 360 degrees to prevent A rolling backwards - paths[i].camLines[0].push( newPoint(a[0], a[1], a[2] + leave).setA(degrees + i * -360) ); + paths[i].camLines[0].push(newPoint(a[0], a[1], a[2] + leave).setA(degrees + i * -360)); }); } } @@ -448,7 +448,7 @@ export class Topo { } slice.output() .setLayer("lathe", { line: this.lineColor }) - .addPoly(poly.clone().applyRotations().move({ z: -zoff, x:0, y:0 })); + .addPoly(poly.clone().applyRotations().move({ z: -zoff, x: 0, y: 0 })); } // console.log({ tool, slices, paths });