From 3cfbf3537d25850ecec63e603b1d78b50ded95c9 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Thu, 8 Sep 2016 22:03:26 -0700 Subject: [PATCH] fix linter complaints --- build/.eslintignore | 3 +++ package.json | 2 +- web/app/3d/workbench.js | 35 +++++++++++++------------- web/app/math/graph.js | 27 ++++++++++---------- web/app/math/lm.js | 4 +-- web/app/sketcher/constr/constraints.js | 6 ++--- web/app/sketcher/constr/solver.js | 7 +++--- web/app/sketcher/helpers.js | 18 +++++++------ web/app/sketcher/io.js | 29 ++++++++++----------- web/app/sketcher/parametric.js | 5 ++-- web/app/sketcher/shapes/dim.js | 11 ++++---- web/app/sketcher/shapes/segment.js | 4 +-- web/app/sketcher/viewer2d.js | 10 +++++--- web/app/ui/toolkit.js | 4 +-- web/app/utils/cad-utils.js | 18 +++++++------ 15 files changed, 97 insertions(+), 86 deletions(-) create mode 100644 build/.eslintignore diff --git a/build/.eslintignore b/build/.eslintignore new file mode 100644 index 00000000..047232a1 --- /dev/null +++ b/build/.eslintignore @@ -0,0 +1,3 @@ +/web/app/math/lm.js +/web/app/math/qr.js + diff --git a/package.json b/package.json index 6c504283..5906fb91 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "start": "webpack-dev-server --content-base web/ --port 3000", "build": "webpack --config webpack.config.js --progress --profile --colors", - "lint": "eslint web/app -c ./build/.eslintrc.json" + "lint": "eslint web/app -c ./build/.eslintrc.json --ignore-path ./build/.eslintignore" }, "repository": { "type": "git", diff --git a/web/app/3d/workbench.js b/web/app/3d/workbench.js index e0ab15bd..8e715023 100644 --- a/web/app/3d/workbench.js +++ b/web/app/3d/workbench.js @@ -414,13 +414,14 @@ function segmentsToPaths(segments) { return null; } + var path; for (var ei = 0; ei < segments.length; ei++) { var edge = segments[ei]; if (edge[3]) { continue; } edge[3] = true; - var path = [edge[0], edge[1]]; + path = [edge[0], edge[1]]; paths.push(path); var next = nextPoint(edge[1]); while (next !== null) { @@ -435,7 +436,7 @@ function segmentsToPaths(segments) { var filteredPaths = []; for (var i = 0; i < paths.length; i++) { - var path = paths[i]; + path = paths[i]; //Set derived from object to be able to recunstruct cad_utils.iteratePath(path, 0, function (a, b) { @@ -495,16 +496,15 @@ function splitTwoSegments(a, b) { var dcXdb = dc.cross(db); + function _split(s, ip) { + if (s[0].equals(ip) || s[1].equals(ip)) { + return [s]; + } + return [[s[0], ip, s[2]], [ip, s[1], s[2]]] + } var s = dcXdb.dot(daXdb) / daXdb.lengthSquared(); if (s > 0.0 && s < 1.0) { var ip = a[0].plus(da.times(s)); - function _split(s, ip) { - if (s[0].equals(ip) || s[1].equals(ip)) { - return [s]; - } - return [[s[0], ip, s[2]], [ip, s[1], s[2]]] - } - return { splitterParts : _split(a, ip), residual : _split(b, ip) @@ -540,11 +540,12 @@ function recoverySketchInfo(polygons) { var poly = polygons[pi]; var paths = []; poly.collectPaths(paths); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; + var i, path, n, p, q; + for (i = 0; i < paths.length; i++) { + path = paths[i]; if (poly.csgInfo !== undefined && poly.csgInfo.derivedFrom !== undefined) { - var n = path.length; - for (var p = n - 1, q = 0; q < n ; p = q++ ) { + n = path.length; + for (p = n - 1, q = 0; q < n ; p = q++ ) { sketchEdges.put(key(path[p], path[q]), poly.csgInfo); } } else { @@ -553,10 +554,10 @@ function recoverySketchInfo(polygons) { } } - for (var i = 0; i < nonStructuralGons.length; i++) { - var path = nonStructuralGons[i]; - var n = path.length; - for (var p = n - 1, q = 0; q < n ; p = q++ ) { + for (i = 0; i < nonStructuralGons.length; i++) { + path = nonStructuralGons[i]; + n = path.length; + for (p = n - 1, q = 0; q < n ; p = q++ ) { var csgInfo = sketchEdges.get(key(path[p], path[q])); if (csgInfo === null) { csgInfo = sketchEdges.get(key(path[q], path[p])); diff --git a/web/app/math/graph.js b/web/app/math/graph.js index 6062f4f9..6225534b 100644 --- a/web/app/math/graph.js +++ b/web/app/math/graph.js @@ -35,21 +35,20 @@ Graph.findAllLoops = function(graph, hashCode, equals) { path.push(vertex); var needClone = false; - VERTEX: - for (i = 0; i < next.length; i++) { - var v = next[i]; - if (equals(v, comesFrom)) { - continue; - } - - var p = needClone ? path.slice(0) : path; - needClone = true; - step(v, vertex, p); + for (i = 0; i < next.length; i++) { + var v = next[i]; + if (equals(v, comesFrom)) { + continue; } + + var p = needClone ? path.slice(0) : path; + needClone = true; + step(v, vertex, p); + } path.pop(); } - for (var i = 0; i < graph.size(); i++) { + for (i = 0; i < graph.size(); i++) { var vertex = graph.at(i); if (visited.get(vertex) !== true) { step(vertex, -1, []); @@ -83,8 +82,8 @@ Graph.findAllLoops = function(graph, hashCode, equals) { return true; } - var duplicates = 0; - for (var i = 0; i < loops.length; i++) { + var i, duplicates = 0; + for (i = 0; i < loops.length; i++) { var a = loops[i]; if (a == null) continue; for (var j = i + 1; j < loops.length; j++) { @@ -100,7 +99,7 @@ Graph.findAllLoops = function(graph, hashCode, equals) { } if (duplicates != 0) { var filtered = []; - for (var i = 0; i < loops.length; i++) { + for (i = 0; i < loops.length; i++) { if (loops[i] != null) filtered.push(loops[i]); } loops = filtered; diff --git a/web/app/math/lm.js b/web/app/math/lm.js index f275b7f9..01d1054e 100644 --- a/web/app/math/lm.js +++ b/web/app/math/lm.js @@ -76,7 +76,7 @@ * @version $Id: LevenbergMarquardtOptimizer.java 1416643 2012-12-03 19:37:14Z tn $ * @constructor */ -function LMOptimizer(startPoint, target, model, jacobian) { +export default function LMOptimizer(startPoint, target, model, jacobian) { this.startPoint = startPoint; @@ -1046,5 +1046,3 @@ function LMOptimizer(startPoint, target, model, jacobian) { } } - -export {LMOptimizer} \ No newline at end of file diff --git a/web/app/sketcher/constr/constraints.js b/web/app/sketcher/constr/constraints.js index bdbc4485..e60684f4 100644 --- a/web/app/sketcher/constr/constraints.js +++ b/web/app/sketcher/constr/constraints.js @@ -478,8 +478,8 @@ function Angle(params) { out[l1p1y] = dx1 / r2; out[l1p2x] = dy1 / r2; out[l1p2y] = -dx1 / r2; - var dx1 = (p(l1p2x) - p(l1p1x)); - var dy1 = (p(l1p2y) - p(l1p1y)); + dx1 = (p(l1p2x) - p(l1p1x)); + dy1 = (p(l1p2y) - p(l1p1y)); var dx2 = (p(l2p2x) - p(l2p1x)); var dy2 = (p(l2p2y) - p(l2p1y)); var a = Math.atan2(dy1, dx1) + p(angle); @@ -487,7 +487,7 @@ function Angle(params) { var sa = Math.sin(a); var x2 = dx2 * ca + dy2 * sa; var y2 = -dx2 * sa + dy2 * ca; - var r2 = dx2 * dx2 + dy2 * dy2; + r2 = dx2 * dx2 + dy2 * dy2; dx2 = -y2 / r2; dy2 = x2 / r2; out[l2p1x] = (-ca * dx2 + sa * dy2); diff --git a/web/app/sketcher/constr/solver.js b/web/app/sketcher/constr/solver.js index 3f370be0..a242c935 100644 --- a/web/app/sketcher/constr/solver.js +++ b/web/app/sketcher/constr/solver.js @@ -1,6 +1,7 @@ import * as utils from '../../utils/utils' import * as math from '../../math/math' import QR from '../../math/qr' +import LMOptimizer from '../../math/lm' import {ConstantWrapper, EqualsTo} from './constraints' import {dog_leg} from '../../math/optim' @@ -188,12 +189,12 @@ System.prototype.getValues = function() { var wrapAux = function(constrs, locked) { - var lockedSet = {}; - for (var i = 0; i < locked.length; i++) { + var i, lockedSet = {}; + for (i = 0; i < locked.length; i++) { lockedSet[locked[i].j] = true; } - for (var i = 0; i < constrs.length; i++) { + for (i = 0; i < constrs.length; i++) { var c = constrs[i]; var mask = []; var needWrap = false; diff --git a/web/app/sketcher/helpers.js b/web/app/sketcher/helpers.js index ecb0955c..c2970c5c 100644 --- a/web/app/sketcher/helpers.js +++ b/web/app/sketcher/helpers.js @@ -13,12 +13,13 @@ function FilletTool(viewer) { FilletTool.prototype.makeFillet = function(point1, point2) { function shrink(point1) { + var a, b; if (point1.id === point1.parent.a.id) { - var a = point1.parent.b; - var b = point1.parent.a; + a = point1.parent.b; + b = point1.parent.a; } else { - var a = point1.parent.a; - var b = point1.parent.b; + a = point1.parent.a; + b = point1.parent.b; } var d = math.distanceAB(a, b); var k = 4 / 5; @@ -45,7 +46,7 @@ FilletTool.prototype.makeFillet = function(point1, point2) { var arc = new Arc( new EndPoint(point1.x, point1.y), new EndPoint(point2.x, point2.y), - new EndPoint(vec.x, vec.y)) + new EndPoint(vec.x, vec.y)); point1.parent.layer.objects.push(arc); var pm = this.viewer.parametricManager; arc.stabilize(this.viewer); @@ -94,12 +95,13 @@ FilletTool.prototype.mouseup = function(e) { } }; +function isLine(line) { + return line != null && line._class === 'TCAD.TWO.Segment'; +} + FilletTool.prototype.getCandidate = function(e) { var picked = this.viewer.pick(e); if (picked.length > 0) { - function isLine(line) { - return line != null && line._class === 'TCAD.TWO.Segment'; - } var res = fetch.sketchObjects(picked, true, ['TCAD.TWO.EndPoint']); if (res == null) return null; var point1 = res[0]; diff --git a/web/app/sketcher/io.js b/web/app/sketcher/io.js index 254802fc..c6946643 100644 --- a/web/app/sketcher/io.js +++ b/web/app/sketcher/io.js @@ -74,27 +74,27 @@ IO.prototype._loadSketch = function(sketch) { var layer = getLayer(this.viewer, ioLayer['name']); if (!!ioLayer.style) layer.style = ioLayer.style; var layerData = ioLayer['data']; - for (var i = 0; i < layerData.length; ++i) { + for (i = 0; i < layerData.length; ++i) { var obj = layerData[i]; var skobj = null; var _class = obj['_class']; var aux = !!obj['aux']; if (_class === T.SEGMENT) { - var points = obj['points']; - var a = endPoint(points[0]); - var b = endPoint(points[1]); + const points = obj['points']; + const a = endPoint(points[0]); + const b = endPoint(points[1]); skobj = new Segment(a, b); } else if (_class === T.END_POINT) { skobj = endPoint(obj['location']); } else if (_class === T.ARC) { - var points = obj['points']; - var a = endPoint(points[0]); - var b = endPoint(points[1]); - var c = endPoint(points[2]); + const points = obj['points']; + const a = endPoint(points[0]); + const b = endPoint(points[1]); + const c = endPoint(points[2]); skobj = new Arc(a, b, c); if (!aux) skobj.stabilize(this.viewer); } else if (_class === T.CIRCLE) { - var c = endPoint(obj['c']); + const c = endPoint(obj['c']); skobj = new Circle(c); skobj.r.set(obj['r']); } else if (_class === T.HDIM) { @@ -138,7 +138,7 @@ IO.prototype._loadSketch = function(sketch) { if (sketchConstraints !== undefined) { for (var i = 0; i < sketchConstraints.length; ++i) { try { - var c = this.parseConstr(sketchConstraints[i], index); + const c = this.parseConstr(sketchConstraints[i], index); this.viewer.parametricManager._add(c); } catch (err) { console.error(err); @@ -212,7 +212,7 @@ IO.prototype._serializeSketch = function() { var subSystems = this.viewer.parametricManager.subSystems; for (var j = 0; j < subSystems.length; j++) { var sub = subSystems[j]; - for (var i = 0; i < sub.constraints.length; ++i) { + for (i = 0; i < sub.constraints.length; ++i) { if (!sub.constraints[i].aux) { constrs.push(this.serializeConstr(sub.constraints[i])); } @@ -226,7 +226,7 @@ IO.prototype._serializeSketch = function() { return sketch; }; -IO.prototype.setupBoundary = function(boundary) { +IO.prototype.setupBoundary = function(boundary, index) { var boundaryLayerName = "__bounds__"; var boundaryLayer = this.viewer.findLayerByName(boundaryLayerName); @@ -486,6 +486,7 @@ IO.prototype.dxfExport = function () { var out = new TextBuilder(); var bbox = new BBox(); var toExport = this.getLayersToExport(); + var i; bbox.checkLayers(toExport); out.line("999"); out.line("js.parametric.sketcher"); @@ -525,7 +526,7 @@ IO.prototype.dxfExport = function () { out.line("2"); out.line("TABLES"); - for (var i = 0; i < toExport.length; i++) { + for (i = 0; i < toExport.length; i++) { out.line("0"); out.line("LAYER"); out.line("2"); @@ -555,7 +556,7 @@ IO.prototype.dxfExport = function () { for (var l = 0; l < toExport.length; l++) { var lid = l + 1; var layer = toExport[l]; - for (var i = 0; i < layer.objects.length; ++i) { + for (i = 0; i < layer.objects.length; ++i) { var obj = layer.objects[i]; if (obj._class === T.END_POINT) { out.line("0"); diff --git a/web/app/sketcher/parametric.js b/web/app/sketcher/parametric.js index 98a57d8c..63ba83cc 100644 --- a/web/app/sketcher/parametric.js +++ b/web/app/sketcher/parametric.js @@ -163,7 +163,8 @@ ParametricManager.prototype.removeConstraintsByParams = function(ownedParams) { for (var s = 0; s < this.subSystems.length; s++) { var toRemove = []; var sub = this.subSystems[s]; - for (var i = 0; i < sub.constraints.length; ++i) { + var i; + for (i = 0; i < sub.constraints.length; ++i) { var sdataArr = sub.constraints[i].getSolveData(this.constantResolver); MAIN: for (var j = 0; j < sdataArr.length; j++) { @@ -181,7 +182,7 @@ ParametricManager.prototype.removeConstraintsByParams = function(ownedParams) { } toRemove.sort(); - for (var i = toRemove.length - 1; i >= 0 ; --i) { + for (i = toRemove.length - 1; i >= 0 ; --i) { sub.constraints.splice( toRemove[i], 1); } } diff --git a/web/app/sketcher/shapes/dim.js b/web/app/sketcher/shapes/dim.js index 8d9900fb..b2a95d81 100644 --- a/web/app/sketcher/shapes/dim.js +++ b/web/app/sketcher/shapes/dim.js @@ -221,10 +221,11 @@ DiameterDimension.prototype.drawForCircle = function(ctx, scale, viewer) { ctx.fillText(txt, 0, 0); ctx.restore(); } - + + var tx, ty; if (h - fontSize * .3 > 0) { // take into account font size to not have circle overlap symbols - var tx = (a.x + _vxn * textOff) - (-_vyn) * h; - var ty = (a.y + _vyn * textOff) - ( _vxn) * h; + tx = (a.x + _vxn * textOff) - (-_vyn) * h; + ty = (a.y + _vyn * textOff) - ( _vxn) * h; drawText(tx, ty); } else { var off = 2 * viewer.dimScale; @@ -237,8 +238,8 @@ DiameterDimension.prototype.drawForCircle = function(ctx, scale, viewer) { ctx.stroke(); angled._multiply(off); - var tx = (b.x + _vxn * textOff) + angled.x; - var ty = (b.y + _vyn * textOff) + angled.y; + tx = (b.x + _vxn * textOff) + angled.x; + ty = (b.y + _vyn * textOff) + angled.y; drawText(tx, ty); } }; diff --git a/web/app/sketcher/shapes/segment.js b/web/app/sketcher/shapes/segment.js index 41dc5e3a..985f816d 100644 --- a/web/app/sketcher/shapes/segment.js +++ b/web/app/sketcher/shapes/segment.js @@ -31,7 +31,7 @@ AddSegmentTool.prototype.mousedown = function(e) { AddSegmentTool.prototype.mouseup = function(e) { if (this.line == null) { - var b = this.viewer.screenToModel(e); + const b = this.viewer.screenToModel(e); var a = b; var needSnap = false; if (this.viewer.snapped.length != 0) { @@ -54,7 +54,7 @@ AddSegmentTool.prototype.mouseup = function(e) { this.viewer.refresh(); } if (this.multi) { - var b = this.line.b; + const b = this.line.b; this.line = this.viewer.addSegment(b.x, b.y, b.x, b.y, this.viewer.activeLayer); this.viewer.parametricManager.linkObjects([this.line.a, b]); } else { diff --git a/web/app/sketcher/viewer2d.js b/web/app/sketcher/viewer2d.js index 964f8f84..6850bca8 100644 --- a/web/app/sketcher/viewer2d.js +++ b/web/app/sketcher/viewer2d.js @@ -887,11 +887,13 @@ PanTool.prototype.mousemove = function(e) { PanTool.prototype.mousedown = function(e) { if (e.button == 0) { var picked = this.viewer.pick(e); + var i; if (picked.length > 0) { + var toSelect; if (e.shiftKey) { - var toSelect = picked[0]; + toSelect = picked[0]; var ids = this.viewer.selected.map(function(s){return s.id}); - for (var i = 0; i < picked.length; i++) { + for (i = 0; i < picked.length; i++) { if (ids.indexOf(picked[i].id) != -1) { this.viewer.deselect(picked[i]); } else { @@ -901,9 +903,9 @@ PanTool.prototype.mousedown = function(e) { this.viewer.select([toSelect], false); this.deselectOnUp = false; } else { - var toSelect = picked[0]; + toSelect = picked[0]; if (this.viewer.selected.length === 1) { - for (var i = 0; i < picked.length - 1; i++) { + for (i = 0; i < picked.length - 1; i++) { if (picked[i].id == this.viewer.selected[0].id) { toSelect = picked[i + 1]; break; diff --git a/web/app/ui/toolkit.js b/web/app/ui/toolkit.js index 501a3f66..1a446ca8 100644 --- a/web/app/ui/toolkit.js +++ b/web/app/ui/toolkit.js @@ -124,9 +124,9 @@ export function Number(name, initValue, baseStep, round) { propLayout(this.root, name, this.input); } -export function Combo(id, label) { +export function Combo(id, labelText) { this.root = $('
', {'class': 'tc-row tc-ctrl tc-ctrl-combo'}); - var label = $('', {'class': 'tc-prop-name', text: label}); + var label = $('', {'class': 'tc-prop-name', text: labelText}); this.select = $('