From 4f725535d3afcd0b5bd5e7362cc7e7680c1cd291 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 15 Jun 2020 08:54:57 -0400 Subject: [PATCH] remove unused render functions from slice (moved to drivers) --- src/kiri/slice.js | 248 +++----------------------------------------- web/kiri/index.css | 8 ++ web/kiri/index.html | 1 + 3 files changed, 22 insertions(+), 235 deletions(-) diff --git a/src/kiri/slice.js b/src/kiri/slice.js index c38e1394..918e0a49 100644 --- a/src/kiri/slice.js +++ b/src/kiri/slice.js @@ -15,37 +15,7 @@ POLY = BASE.polygons, NOKEY = BASE.key.NONE, fillArea = POLY.fillArea, - newPoint = BASE.newPoint, - outline_colors = [ - 0xeeee00, - 0xeebb00, - 0xee8800 - ], - outline_solid_colors = [ - 0xffff00, - 0xffcc00, - 0xff9900 - ], - debug_colors = [ - 0xffff00, - 0x00ffff, - 0xff00ff, - 0xff0000, - 0x00ff00, - 0x0000ff, - 0xffffff, - 0x000000 - ], - trace_color = 0x0, - sparse_fill_color = 0x333366, - fill_offset_color = 0xeeeeee, - fill_color = 0x333333, - flat_outline_color = 0xee0099, - flat_solid_color = 0xff00aa, - bridge_outline_color = 0x0099ee, - bridge_solid_color = 0x00aaff, - solid_outline_color = 0x00cc00, - solid_solid_color = 0x00dd00; + newPoint = BASE.newPoint; KIRI.Top = Top; KIRI.newTop = newTop; @@ -325,72 +295,6 @@ this.supports = null; }; - /** - * render raw slices in various formats to help debugging - * - * @param {number} renderMode - */ - PRO.renderOutline = function(renderMode, color) { - if (!this.view) return; - - let process = KIRI.driver.CAM.process, - slice = this, - layers = slice.layers, - layer = layers.outline, - colors = debug_colors, - groups = slice.groups ? slice.groups.sort(function(a,b) { return b.area() - a.area() }) : null, - tops = slice.tops, - pbuf = [], - coloridx = 0; - - layer.clear(); - // layer.setOpacity(0.05); - - switch (renderMode % 5) { - // un-processed lines - case 0: - if (!slice.lines) return; - slice.lines.forEach(function(line) { - let pa = [line.p1, line.p2]; - layer.lines(pa, colors[coloridx++ % colors.length]); - layer.points(pa, 0x0, 0.1); - }); - break; - // lines grouped as polygons (shown open) - case 1: - if (!groups) return; - groups.forEach(function(group) { - renderPolygon(layer, group, colors, coloridx++, false, true); - }); - break; - // lines grouped as polygons - case 2: - if (!groups) return; - groups.forEach(function(group) { - renderPolygon(layer, group, colors, coloridx++, false, false); - }); - break; - // polygons with color representing outer / inner - case 3: - tops.forEach(function(top) { - renderPolygon(layer, top.poly, colors, 0, true, false); - }); - break; - // all polygons in yellow - case 4: - tops.forEach(function(top) { - layer.poly(top.poly, outline_colors[color], true, false); - // layer.solid(top.poly, outline_solid_colors[color]); - if (top.inner) layer.poly(top.inner, 0xdddddd, true); - // if (top.thinner) layer.poly(top.thinner, 0x559999, true, null); - }); - break; - } - - // layer.renderSolid(); - layer.render(); - }; - /** * given two arrays of points (lines), eliminate intersections of the second * to the first, then return a unified array. @@ -535,35 +439,6 @@ }); }; - /** - * Runs in client. Generate shell lines in the correct view layer. - * - * @param {number} renderMode - */ - PRO.renderShells = function(renderMode) { - let scope = this, - layers = scope.layers, - layer = layers.trace, - process = KIRI.driver.CAM.process; - - layer.clear(); - - scope.tops.forEach(function(top) { - if (top.traces) { - layer.poly(top.traces, trace_color, true, null); - // layer.setTransparent(false); - // layer.noodle(top.traces, 0.19, 0x88aadd, 0x77bbcc); - } - if (top.polish) { - layer.poly(top.polish.x, 0x880000, true, null); - layer.poly(top.polish.y, 0x880000, true, null); - } - }); - - // layer.renderSolid(); - layer.render(); - }; - /** * Clear fill cache in preparation for a slice or re-slice of a widget */ @@ -612,27 +487,6 @@ this.isSolidFill = true; }; - /** - * Runs in client. Generate solid lines in the correct view layer. - */ - PRO.renderSolidFill = function() { - let layer = this.layers.fill, - render; - - layer.clear(); - // layer.setTransparent(false); - - this.tops.forEach(function(top) { - if (top.fill_lines) { - layer.lines(top.fill_lines, fill_color); - // layer.noodle(top.fill_lines, 0.19, 0x88aadd, 0x77bbcc, true); - } - }); - - layer.render(); - // layer.renderSolid(); - }; - /** * Take output from pluggable sparse infill algorithm and clip to * the bounds of the top polygons and their inner solid areas. @@ -666,15 +520,18 @@ solids = [], // callback passed to pluggable infill algorithm target = { + // slice and slice property access slice: function() { return scope }, + zIndex: function() { return scope.index }, + zValue: function() { return scope.z }, + // various option map access options: function() { return options }, lineWidth: function() { return options.lineWidth }, bounds: function() { return bounds }, - zIndex: function() { return scope.index }, - zValue: function() { return scope.z }, zHeight: function() { return height }, offset: function() { return spacing }, density: function() { return density }, + // output functions emit: function(x,y) { if (isNaN(x)) { solids.push(x); @@ -694,22 +551,28 @@ // use specified fill type if (type && FILL[type]) { FILL[type](target); + } else { + console.log({missing_infill: type}); + return; } // force emit of last line target.newline(); + // prepare top infill structure tops.forEach(function(top) { top.fill_sparse = []; polys.appendAll(top.inner); polys.appendAll(top.solids); }); + // update fill fingerprint for this slice scope._fill_finger = POLY.fingerprint(polys); let skippable = FILLFIXED[type] ? true : false; let miss = false; - // if the layer below has the same fingerprint, we may be able to clone its infill + // if the layer below has the same fingerprint, + // we may be able to clone the infill instead of regenerating it if (skippable && scope.fingerprintSame(down)) { // the fill fingerprint can slightly different because of solid projections if (down._fill_finger && POLY.fingerprintCompare(scope._fill_finger, down._fill_finger)) { @@ -791,26 +654,6 @@ } }; - /** - * Runs in client. Generate sparse lines in the correct view layer. - */ - PRO.renderSparseFill = function() { - let layer = this.layers.sparse; - - layer.clear(); - - this.tops.forEach(function(top) { - if (top.fill_sparse) { - top.fill_sparse.forEach(function(poly) { - // todo cull polys with single point before this - if (poly.length > 1) poly.render(layer, sparse_fill_color, false, true); - }); - } - }); - - layer.render(); - }; - /** * Find difference between fill inset poly on two adjacent layers. * Used to calculate bridges, flats and then solid projections. @@ -858,38 +701,6 @@ } }; - /** - * Runs in client. Generate polygon lines in the correct view layer. - */ - PRO.renderDiff = function() { - let scope = this, - layers = scope.layers, - bridgeLayer = layers.bridge, - flatLayer = layers.flat, - bridges = scope.bridges, - flats = scope.flats; - - bridgeLayer.clear(); - flatLayer.clear(); - - if (bridges) bridges.forEach(function (t) { - t.setZ(scope.z); - t.render(bridgeLayer, bridge_outline_color, true); - t.renderSolid(bridgeLayer, bridge_solid_color); - }); - - if (flats) flats.forEach(function (t) { - t.setZ(scope.z); - t.render(flatLayer, flat_outline_color, true); - t.renderSolid(flatLayer, flat_solid_color); - }); - - bridgeLayer.renderSolid(); - bridgeLayer.render(); - flatLayer.renderSolid(); - flatLayer.render(); - }; - /** * * @@ -1025,21 +836,6 @@ return true; }; - PRO.renderSolidOutlines = function() { - let layer = this.layers.solid, - trimmed = this.solids.trimmed; - - layer.clear(); - - if (trimmed) trimmed.forEach(function(poly) { - poly.render(layer, solid_outline_color, true); - poly.renderSolid(layer, solid_solid_color, true); - }); - - layer.renderSolid(); - layer.render(); - }; - /** * calculate external overhangs requiring support * this is done bottom-up @@ -1221,24 +1017,6 @@ slice.supports = supports; }; - /** - * - */ - PRO.renderSupport = function() { - let slice = this, - layer = slice.layers.support, - supports = slice.supports; - - layer.clear(); - - if (supports) supports.forEach(function(poly) { - layer.poly(poly, 0xff0000, true); - layer.lines(poly.fills, 0xff0000); - }); - - layer.render(); - }; - /** * for printing output optimization * calls down to the outermost shell in this slice diff --git a/web/kiri/index.css b/web/kiri/index.css index 2251a40f..85d026e9 100644 --- a/web/kiri/index.css +++ b/web/kiri/index.css @@ -410,6 +410,14 @@ th, tr, td { .lt-enabled:hover .pop-lcol { display: flex; } +@media only screen +and (min-device-width : 768px) +and (max-device-width : 1024px) +and (orientation : landscape) { + .lt-menu svg { + font-size: 30px !important; + } +} .ext-buttons button { justify-content: center; diff --git a/web/kiri/index.html b/web/kiri/index.html index a6f29ebd..c4fa0bc7 100644 --- a/web/kiri/index.html +++ b/web/kiri/index.html @@ -139,6 +139,7 @@
+
< >