From c2332870ce71e004eb8f97bf228533b9bb939b2b Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Mon, 15 Aug 2022 19:15:56 -0700 Subject: [PATCH] no-var rule for javascript / autofix --- .eslintrc.json | 3 +- .../scene/controls/CADTrackballControls.js | 32 +- web/app/cad/cad-utils.js | 122 +++---- web/app/cad/legacy/mesh/workbench.js | 222 ++++++------- web/app/cad/stl/stlAsciiReader.js | 4 +- web/app/cad/tess/triangulation.js | 16 +- web/app/sketcher/constr/solver.js | 128 ++++---- web/app/sketcher/constr/solverConstraints.js | 310 +++++++++--------- web/app/sketcher/constraints.js | 48 +-- web/app/sketcher/fetchers.js | 40 +-- web/app/sketcher/history.js | 24 +- web/app/sketcher/shapes/basis-origin.js | 4 +- web/app/sketcher/shapes/cross-hair.js | 2 +- web/app/sketcher/shapes/dim.js | 2 +- web/app/sketcher/tools/arc.js | 2 +- web/app/sketcher/tools/circle.js | 4 +- web/app/sketcher/tools/dim.js | 6 +- web/app/sketcher/tools/fillet.js | 6 +- web/app/sketcher/tools/loop-pick.js | 2 +- web/app/sketcher/tools/origin.js | 2 +- web/app/utils/graph.js | 48 +-- web/app/utils/hashmap.js | 56 ++-- web/app/utils/utils.js | 4 +- 23 files changed, 544 insertions(+), 543 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 30fca962..b337f99c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -61,7 +61,8 @@ "no-unused-vars": "off", "max-len": "off", "no-console": "off", - "no-extra-boolean-cast": "off" + "no-extra-boolean-cast": "off", + "no-var": "error" }, "ignorePatterns": [ "/modules/math/optim/*.js", diff --git a/modules/scene/controls/CADTrackballControls.js b/modules/scene/controls/CADTrackballControls.js index 90887797..c7c5be03 100644 --- a/modules/scene/controls/CADTrackballControls.js +++ b/modules/scene/controls/CADTrackballControls.js @@ -12,8 +12,8 @@ export function CADTrackballControls( object, domElement ) { - var _this = this; - var STATE = { NONE: - 1, ROTATE: 0, ZOOM: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_ZOOM_PAN: 4 }; + let _this = this; + let STATE = { NONE: - 1, ROTATE: 0, ZOOM: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_ZOOM_PAN: 4 }; this.object = object; this.domElement = ( domElement !== undefined ) ? domElement : document; @@ -47,11 +47,11 @@ export function CADTrackballControls( object, domElement ) { this.projectionChanged = false; this.projectionZoomSpeed = 0.5; - var EPS = 0.000001; + let EPS = 0.000001; - var lastPosition = new THREE.Vector3(); + let lastPosition = new THREE.Vector3(); - var _state = STATE.NONE, + let _state = STATE.NONE, _prevState = STATE.NONE, _eye = new THREE.Vector3(), @@ -79,8 +79,8 @@ export function CADTrackballControls( object, domElement ) { // events - var startEvent = { type: 'start' }; - var endEvent = { type: 'end' }; + let startEvent = { type: 'start' }; + let endEvent = { type: 'end' }; // methods @@ -96,9 +96,9 @@ export function CADTrackballControls( object, domElement ) { } else { - var box = this.domElement.getBoundingClientRect(); + let box = this.domElement.getBoundingClientRect(); // adjustments come from similar code in the jquery offset() function - var d = this.domElement.ownerDocument.documentElement; + let d = this.domElement.ownerDocument.documentElement; this.screen.left = box.left + window.pageXOffset - d.clientLeft; this.screen.top = box.top + window.pageYOffset - d.clientTop; this.screen.width = box.width; @@ -118,9 +118,9 @@ export function CADTrackballControls( object, domElement ) { }; - var getMouseOnScreen = ( function () { + let getMouseOnScreen = ( function () { - var vector = new THREE.Vector2(); + let vector = new THREE.Vector2(); return function getMouseOnScreen( pageX, pageY ) { @@ -135,9 +135,9 @@ export function CADTrackballControls( object, domElement ) { }() ); - var getMouseOnCircle = ( function () { + let getMouseOnCircle = ( function () { - var vector = new THREE.Vector2(); + let vector = new THREE.Vector2(); return function getMouseOnCircle( pageX, pageY ) { @@ -154,7 +154,7 @@ export function CADTrackballControls( object, domElement ) { this.rotateCamera = ( function() { - var axis = new THREE.Vector3(), + let axis = new THREE.Vector3(), quaternion = new THREE.Quaternion(), eyeDirection = new THREE.Vector3(), objectUpDirection = new THREE.Vector3(), @@ -215,7 +215,7 @@ export function CADTrackballControls( object, domElement ) { this.zoomCamera = function () { - var factor; + let factor; if ( _state === STATE.TOUCH_ZOOM_PAN ) { @@ -249,7 +249,7 @@ export function CADTrackballControls( object, domElement ) { this.panCamera = ( function() { - var mouseChange = new THREE.Vector2(), + let mouseChange = new THREE.Vector2(), objectUp = new THREE.Vector3(), pan = new THREE.Vector3(); diff --git a/web/app/cad/cad-utils.js b/web/app/cad/cad-utils.js index c2a11243..570163cb 100644 --- a/web/app/cad/cad-utils.js +++ b/web/app/cad/cad-utils.js @@ -41,7 +41,7 @@ export function createPoint0(x, y, z) { // var m = new THREE.MeshBasicMaterial({color: 0x0000ff, side: THREE.DoubleSide}); // return new THREE.Mesh(g, m); - var material = new THREE.ShaderMaterial({ + let material = new THREE.ShaderMaterial({ // color: 0xff0000, // linewidth: 5 vertexShader : @@ -71,15 +71,15 @@ export function createPoint0(x, y, z) { // return line; material = new THREE.SpriteMaterial( { color: 0xffffff, fog: false } ); - var sprite = new THREE.Sprite( material ); + let sprite = new THREE.Sprite( material ); sprite.position.set( x, y, z ); return sprite; } export function createPoint1(x, y, z) { - var geometry = new THREE.SphereGeometry( 5, 16, 16 ); - var material = new THREE.MeshBasicMaterial( {color: 0xff0000} ); - var sphere = new THREE.Mesh(geometry, material); + let geometry = new THREE.SphereGeometry( 5, 16, 16 ); + let material = new THREE.MeshBasicMaterial( {color: 0xff0000} ); + let sphere = new THREE.Mesh(geometry, material); sphere.position.x = x; sphere.position.y = y; sphere.position.z = z; @@ -87,7 +87,7 @@ export function createPoint1(x, y, z) { } export function createLine(a, b, color) { - var material = new THREE.LineBasicMaterial({ + let material = new THREE.LineBasicMaterial({ color: color, linewidth: 1 }); @@ -113,17 +113,17 @@ export function createSolidMaterial() { } export function intercept(obj, methodName, aspect) { - var originFunc = obj[methodName]; + let originFunc = obj[methodName]; obj[methodName] = function() { - var $this = this; + let $this = this; aspect(function() {originFunc.apply($this, arguments)}, arguments); } } export function fixCCW(path, normal) { - var _2DTransformation = new Matrix3x4().setBasis(someBasis(path, normal)).invert(); - var path2D = []; - for (var i = 0; i < path.length; ++i) { + let _2DTransformation = new Matrix3x4().setBasis(someBasis(path, normal)).invert(); + let path2D = []; + for (let i = 0; i < path.length; ++i) { path2D[i] = _2DTransformation.apply(path[i]); } @@ -135,17 +135,17 @@ export function fixCCW(path, normal) { } export function someBasis2(normal) { - var x = normal.cross(normal.randomNonParallelVector()); - var y = normal.cross(x).unit(); + let x = normal.cross(normal.randomNonParallelVector()); + let y = normal.cross(x).unit(); return [x, y, normal]; } export function someBasis(twoPointsOnPlane, normal) { - var a = twoPointsOnPlane[0]; - var b = twoPointsOnPlane[1]; + let a = twoPointsOnPlane[0]; + let b = twoPointsOnPlane[1]; - var x = b.minus(a).normalize(); - var y = normal.cross(x).normalize(); + let x = b.minus(a).normalize(); + let y = normal.cross(x).normalize(); return [x, y, normal]; } @@ -164,37 +164,37 @@ export function normalOfCCWSeq(ccwSequence) { } export function normalOfCCWSeqTHREE(ccwSequence) { - var a = ccwSequence[0]; - var b = ccwSequence[1].clone(); - var c = ccwSequence[2].clone(); + let a = ccwSequence[0]; + let b = ccwSequence[1].clone(); + let c = ccwSequence[2].clone(); return b.sub(a).cross(c.sub(a)).normalize(); } export function calculateExtrudedLid(sourcePolygon, normal, direction, expansionFactor) { - var lid = []; - var length = sourcePolygon.length; - var work; - var si; + let lid = []; + let length = sourcePolygon.length; + let work; + let si; if (!!expansionFactor && expansionFactor != 1) { if (expansionFactor < 0.001) expansionFactor = 0.0001; - var source2d = []; + let source2d = []; work = []; - var _3dTr = new Matrix3x4().setBasis(someBasis2(new CSG.Vector3D(normal))); // use passed basis - var _2dTr = _3dTr.invert(); - var sourceBBox = new BBox(); - var workBBox = new BBox(); + let _3dTr = new Matrix3x4().setBasis(someBasis2(new CSG.Vector3D(normal))); // use passed basis + let _2dTr = _3dTr.invert(); + let sourceBBox = new BBox(); + let workBBox = new BBox(); for (si = 0; si < length; ++si) { - var sourcePoint = _2dTr.apply(sourcePolygon[si]); + let sourcePoint = _2dTr.apply(sourcePolygon[si]); source2d[si] = sourcePoint; work[si] = sourcePoint.multiply(expansionFactor); work[si].z = source2d[si].z = 0; sourceBBox.checkBounds(sourcePoint.x, sourcePoint.y); workBBox.checkBounds(work[si].x, work[si].y) } - var alignVector = workBBox.center().minus(sourceBBox.center()); - var depth = normal.dot(sourcePolygon[0]); + let alignVector = workBBox.center().minus(sourceBBox.center()); + let depth = normal.dot(sourcePolygon[0]); for (si = 0; si < length; ++si) { work[si] = work[si].minus(alignVector); work[si].z = depth; @@ -212,14 +212,14 @@ export function calculateExtrudedLid(sourcePolygon, normal, direction, expansion } export function triangulate(path, normal) { - var _3dTransformation = new Matrix3x4().setBasis(someBasis2(normal)); - var _2dTransformation = _3dTransformation.invert(); - var i; - var shell = []; + let _3dTransformation = new Matrix3x4().setBasis(someBasis2(normal)); + let _2dTransformation = _3dTransformation.invert(); + let i; + let shell = []; for (i = 0; i < path.length; ++i) { shell[i] = _2dTransformation.apply(path[i].pos); } - var myTriangulator = new PNLTRI.Triangulator(); + let myTriangulator = new PNLTRI.Triangulator(); return myTriangulator.triangulate_polygon( [ shell ] ); // return THREE.Shape.utils.triangulateShape( f2d.shell, f2d.holes ); } @@ -229,13 +229,13 @@ export function isCurveClass(className) { } -var POLYGON_COUNTER = 0; +let POLYGON_COUNTER = 0; export function Polygon(shell, holes, normal) { this.id = POLYGON_COUNTER ++; if (!holes) { holes = []; } - var h; + let h; checkPolygon(shell); for (h = 0; h < holes.length; ++h) { checkPolygon(holes[h]); @@ -246,7 +246,7 @@ export function Polygon(shell, holes, normal) { } else { shell = fixCCW(shell, normal); if (holes.length > 0) { - var neg = normal.negate(); + let neg = normal.negate(); for (h = 0; h < holes.length; ++h) { holes[h] = fixCCW(holes[h], neg); } @@ -260,7 +260,7 @@ export function Polygon(shell, holes, normal) { } Polygon.prototype.reverse = function(triangle) { - var first = triangle[0]; + let first = triangle[0]; triangle[0] = triangle[2]; triangle[2] = first; }; @@ -270,13 +270,13 @@ Polygon.prototype.flip = function() { }; Polygon.prototype.shift = function(target) { - var shell = []; - var i; + let shell = []; + let i; for (i = 0; i < this.shell.length; ++i) { shell[i] = this.shell[i].plus(target); } - var holes = []; - for (var h = 0; h < this.holes.length; ++h) { + let holes = []; + for (let h = 0; h < this.holes.length; ++h) { holes[h] = []; for (i = 0; i < this.holes[h].length; ++i) { holes[h][i] = this.holes[h][i].plus(target); @@ -286,18 +286,18 @@ Polygon.prototype.shift = function(target) { }; Polygon.prototype.get2DTransformation = function() { - var _3dTransformation = new Matrix3x4().setBasis(someBasis(this.shell, this.normal)); - var _2dTransformation = _3dTransformation.invert(); + let _3dTransformation = new Matrix3x4().setBasis(someBasis(this.shell, this.normal)); + let _2dTransformation = _3dTransformation.invert(); return _2dTransformation; }; Polygon.prototype.to2D = function() { - var _2dTransformation = this.get2DTransformation(); + let _2dTransformation = this.get2DTransformation(); - var i, h; - var shell = []; - var holes = []; + let i, h; + let shell = []; + let holes = []; for (i = 0; i < this.shell.length; ++i) { shell[i] = _2dTransformation.apply(this.shell[i]); } @@ -318,12 +318,12 @@ Polygon.prototype.collectPaths = function(paths) { Polygon.prototype.triangulate = function() { function triangulateShape( contour, holes ) { - var myTriangulator = new PNLTRI.Triangulator(); + let myTriangulator = new PNLTRI.Triangulator(); return myTriangulator.triangulate_polygon( [ contour ].concat(holes) ); } - var i, h; - var f2d = this.to2D(); + let i, h; + let f2d = this.to2D(); for (i = 0; i < f2d.shell.length; ++i) { f2d.shell[i] = f2d.shell[i].three(); @@ -338,7 +338,7 @@ Polygon.prototype.triangulate = function() { }; Polygon.prototype.eachVertex = function(handler) { - var i, h; + let i, h; for (i = 0; i < this.shell.length; ++i) { if (handler(this.shell, i) === true) return; } @@ -355,10 +355,10 @@ export function Sketch() { } export function iteratePath(path, shift, callback) { - var p, q, n = path.length; + let p, q, n = path.length; for (p = n - 1,q = 0;q < n; p = q++) { - var ai = (p + shift) % n; - var bi = (q + shift) % n; + let ai = (p + shift) % n; + let bi = (q + shift) % n; if (!callback(path[ai], path[bi], ai, bi, q, path)) { break } @@ -366,14 +366,14 @@ export function iteratePath(path, shift, callback) { } export function addAll(arr, arrToAdd) { - for (var i = 0; i < arrToAdd.length; i++) { + for (let i = 0; i < arrToAdd.length; i++) { arr.push(arrToAdd[i]); } } export function arrFlatten1L(arr) { - var result = []; - for (var i = 0; i < arr.length; i++) { + let result = []; + for (let i = 0; i < arr.length; i++) { addAll(result, arr[i]); } return result; diff --git a/web/app/cad/legacy/mesh/workbench.js b/web/app/cad/legacy/mesh/workbench.js index cc205559..d6712385 100644 --- a/web/app/cad/legacy/mesh/workbench.js +++ b/web/app/cad/legacy/mesh/workbench.js @@ -51,20 +51,20 @@ export function sortPolygons(polygons) { function _pointOnLine(p, a, b) { - var ab = a.minus(b); - var ap = a.minus(p); + let ab = a.minus(b); + let ap = a.minus(p); - var dp = ab.dot(ap); + let dp = ab.dot(ap); - var abLength = ab.length(); - var apLength = ap.length(); + let abLength = ab.length(); + let apLength = ap.length(); return apLength > 0 && apLength < abLength && areEqual(abLength * apLength, dp, 1E-6); } export function polygonsToSegments(polygons) { function selfIntersecting(a, b, c) { - var f = _pointOnLine; + let f = _pointOnLine; return f(c, a, b) || f(a, b, c) || f(b, c, a); } //polygons.filter(function(p) { @@ -76,14 +76,14 @@ export function polygonsToSegments(polygons) { //continue; //} - var segmentsByPolygon = []; - for (var pi = 0; pi < polygons.length; pi++) { - var segments = []; - var poly = polygons[pi]; + let segmentsByPolygon = []; + for (let pi = 0; pi < polygons.length; pi++) { + let segments = []; + let poly = polygons[pi]; var p, q, n = poly.vertices.length; for(p = n - 1, q = 0; q < n; p = q ++) { - var a = poly.vertices[p]; - var b = poly.vertices[q]; + let a = poly.vertices[p]; + let b = poly.vertices[q]; segments.push([a.pos, b.pos]); } segmentsByPolygon.push(segments); @@ -93,12 +93,12 @@ export function polygonsToSegments(polygons) { export function reconstructSketchBounds(csg, face, strict) { strict = strict || false; - var polygons = csg.toPolygons(); - var plane = face.csgGroup.plane; - var outerEdges = []; - var planePolygons = []; - for (var pi = 0; pi < polygons.length; pi++) { - var poly = polygons[pi]; + let polygons = csg.toPolygons(); + let plane = face.csgGroup.plane; + let outerEdges = []; + let planePolygons = []; + for (let pi = 0; pi < polygons.length; pi++) { + let poly = polygons[pi]; if (equal(poly.plane.normal.dot(plane.normal), 1)) { if (equal(plane.w, poly.plane.w) && (!strict || !!poly.shared.__tcad && poly.shared.__tcad.faceId === face.id)) { planePolygons.push(poly); @@ -107,18 +107,18 @@ export function reconstructSketchBounds(csg, face, strict) { } var p, q, n = poly.vertices.length; for(p = n - 1, q = 0; q < n; p = q ++) { - var a = poly.vertices[p]; - var b = poly.vertices[q]; - var pointAOnPlane = equal(plane.signedDistanceToPoint(a.pos), 0); + let a = poly.vertices[p]; + let b = poly.vertices[q]; + let pointAOnPlane = equal(plane.signedDistanceToPoint(a.pos), 0); if (!pointAOnPlane) continue; - var pointBOnPlane = equal(plane.signedDistanceToPoint(b.pos), 0); + let pointBOnPlane = equal(plane.signedDistanceToPoint(b.pos), 0); if (pointBOnPlane) { outerEdges.push([a.pos, b.pos, poly]); } } } - var outline = findOutline(planePolygons); + let outline = findOutline(planePolygons); pickUpCraftInfo(outline, outerEdges); @@ -126,11 +126,11 @@ export function reconstructSketchBounds(csg, face, strict) { } function pickUpCraftInfo(outline, outerEdges) { - var eq = strictEqual; - for (var psi1 = 0; psi1 < outline.length; psi1++) { - var s1 = outline[psi1]; - for (var psi2 = 0; psi2 < outerEdges.length; psi2++) { - var s2 = outerEdges[psi2]; + let eq = strictEqual; + for (let psi1 = 0; psi1 < outline.length; psi1++) { + let s1 = outline[psi1]; + for (let psi2 = 0; psi2 < outerEdges.length; psi2++) { + let s2 = outerEdges[psi2]; if (equal(Math.abs(s1[0].minus(s1[1]).unit().dot(s2[0].minus(s2[1]).unit())), 1) && (eq(s1[0], s2[0]) || eq(s1[1], s2[1]) || eq(s1[0], s2[1]) || eq(s1[1], s2[0]) || _pointOnLine(s1[0], s2[0], s2[1]) || _pointOnLine(s1[1], s2[0], s2[1]))) { @@ -141,12 +141,12 @@ function pickUpCraftInfo(outline, outerEdges) { } function getOutlineByCollision(segments, outerEdges) { - var eq = strictEqual; - var outline = []; - for (var psi1 = 0; psi1 < segments.length; psi1++) { - var s1 = segments[psi1]; - for (var psi2 = 0; psi2 < outerEdges.length; psi2++) { - var s2 = outerEdges[psi2]; + let eq = strictEqual; + let outline = []; + for (let psi1 = 0; psi1 < segments.length; psi1++) { + let s1 = segments[psi1]; + for (let psi2 = 0; psi2 < outerEdges.length; psi2++) { + let s2 = outerEdges[psi2]; if (equal(Math.abs(s1[0].minus(s1[1]).unit().dot(s2[0].minus(s2[1]).unit())), 1) && (eq(s1[0], s2[0]) || eq(s1[1], s2[1]) || eq(s1[0], s2[1]) || eq(s1[1], s2[0]) || _pointOnLine(s1[0], s2[0], s2[1]) || _pointOnLine(s1[1], s2[0], s2[1]))) { @@ -158,9 +158,9 @@ function getOutlineByCollision(segments, outerEdges) { } export function findOutline (planePolygons) { - var segmentsByPolygon = polygonsToSegments(planePolygons); + let segmentsByPolygon = polygonsToSegments(planePolygons); //simplifySegments(segmentsByPolygon); - var planeSegments = cad_utils.arrFlatten1L(segmentsByPolygon); + let planeSegments = cad_utils.arrFlatten1L(segmentsByPolygon); //planeSegments = removeSharedEdges(planeSegments); removeTJoints(planeSegments); planeSegments = removeSharedEdges(planeSegments); @@ -169,13 +169,13 @@ export function findOutline (planePolygons) { function removeSharedEdges(segments) { segments = segments.slice(); - var eq = strictEqual; - for (var psi1 = 0; psi1 < segments.length; psi1++) { - var s1 = segments[psi1]; + let eq = strictEqual; + for (let psi1 = 0; psi1 < segments.length; psi1++) { + let s1 = segments[psi1]; if (s1 == null) continue; - for (var psi2 = 0; psi2 < segments.length; psi2++) { + for (let psi2 = 0; psi2 < segments.length; psi2++) { if (psi1 === psi2) continue; - var s2 = segments[psi2]; + let s2 = segments[psi2]; if (s2 == null) continue; if ((eq(s1[0], s2[0]) && eq(s1[1], s2[1]) || (eq(s1[0], s2[1]) && eq(s1[1], s2[0])))) { segments[psi1] = null; @@ -187,15 +187,15 @@ function removeSharedEdges(segments) { } function simplifySegments(polygonToSegments) { - for (var pi1 = 0; pi1 < polygonToSegments.length; ++pi1) { - for (var pi2 = 0; pi2 < polygonToSegments.length; ++pi2) { + for (let pi1 = 0; pi1 < polygonToSegments.length; ++pi1) { + for (let pi2 = 0; pi2 < polygonToSegments.length; ++pi2) { if (pi1 === pi2) continue; - var polygon1 = polygonToSegments[pi1]; - var polygon2 = polygonToSegments[pi2]; - for (var si1 = 0; si1 < polygon1.length; ++si1) { - var seg1 = polygon1[si1]; - for (var si2 = 0; si2 < polygon2.length; ++si2) { - var point = polygon2[si2][0]; + let polygon1 = polygonToSegments[pi1]; + let polygon2 = polygonToSegments[pi2]; + for (let si1 = 0; si1 < polygon1.length; ++si1) { + let seg1 = polygon1[si1]; + for (let si2 = 0; si2 < polygon2.length; ++si2) { + let point = polygon2[si2][0]; if (_pointOnLine(point, seg1[0], seg1[1])) { polygon1.push([point, seg1[1]]); seg1[1] = point; @@ -208,37 +208,37 @@ function simplifySegments(polygonToSegments) { function _closeFactorToLine(p, seg1, seg2) { - var a = p.minus(seg1); - var b = seg2.minus(seg1); - var bn = b.unit(); + let a = p.minus(seg1); + let b = seg2.minus(seg1); + let bn = b.unit(); - var projLength = bn.dot(a); - var bx = bn.times(projLength); + let projLength = bn.dot(a); + let bx = bn.times(projLength); if (!(projLength > 0 && projLength < b.length())) { return -1; } - var c = a.minus(bx); + let c = a.minus(bx); return c.length(); } function removeTJoints(segments) { - var pointIndex = HashTable.forVector3d(); + let pointIndex = HashTable.forVector3d(); - for (var i = 0; i < segments.length; ++i) { + for (let i = 0; i < segments.length; ++i) { pointIndex.put(segments[i][0], 1); pointIndex.put(segments[i][1], 1); } - var points = pointIndex.getKeys(); - var eq = strictEqual; - for (var pi1 = 0; pi1 < points.length; ++pi1) { - var point = points[pi1]; + let points = pointIndex.getKeys(); + let eq = strictEqual; + for (let pi1 = 0; pi1 < points.length; ++pi1) { + let point = points[pi1]; var best = null, bestFactor; - for (var pi2 = 0; pi2 < segments.length; ++pi2) { - var seg = segments[pi2]; + for (let pi2 = 0; pi2 < segments.length; ++pi2) { + let seg = segments[pi2]; if (eq(seg[0], point) || eq(seg[1], point)) continue; - var factor = _closeFactorToLine(point, seg[0], seg[1]); + let factor = _closeFactorToLine(point, seg[0], seg[1]); if (factor != -1 && factor < 1E-6 && (best == null || factor < bestFactor)) { best = seg; bestFactor = factor; @@ -252,16 +252,16 @@ function removeTJoints(segments) { } function deleteRedundantPoints(path) { - var cleanedPath = []; + let cleanedPath = []; //Delete redundant point - var pathLength = path.length; - var skipMode = false; - for (var pi = 0; pi < pathLength; pi++) { - var bIdx = ((pi + 1) % pathLength); - var a = path[pi]; - var b = path[bIdx]; - var c = path[(pi + 2) % pathLength]; - var eq = areEqual; + let pathLength = path.length; + let skipMode = false; + for (let pi = 0; pi < pathLength; pi++) { + let bIdx = ((pi + 1) % pathLength); + let a = path[pi]; + let b = path[bIdx]; + let c = path[(pi + 2) % pathLength]; + let eq = areEqual; if (!skipMode) cleanedPath.push(a); skipMode = eq(a.minus(b).unit().dot(b.minus(c).unit()), 1, 1E-9); } @@ -270,13 +270,13 @@ function deleteRedundantPoints(path) { export function segmentsToPaths(segments) { - var veq = strictEqual; - var paths = []; - var index = HashTable.forVector3d(); - var csgIndex = HashTable.forEdge(); + let veq = strictEqual; + let paths = []; + let index = HashTable.forVector3d(); + let csgIndex = HashTable.forEdge(); function indexPoint(p, edge) { - var edges = index.get(p); + let edges = index.get(p); if (edges === null) { edges = []; index.put(p, edges); @@ -284,11 +284,11 @@ export function segmentsToPaths(segments) { edges.push(edge); } - for (var si = 0; si < segments.length; si++) { - var k = segments[si]; + for (let si = 0; si < segments.length; si++) { + let k = segments[si]; indexPoint(k[0], k); indexPoint(k[1], k); - var csgInfo = k[2]; + let csgInfo = k[2]; if (csgInfo !== undefined && csgInfo !== null) { csgIndex.put([k[0], k[1]], csgInfo); } @@ -296,12 +296,12 @@ export function segmentsToPaths(segments) { } function nextPoint(p) { - var edges = index.get(p); + let edges = index.get(p); if (edges === null) return null; - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; + for (let i = 0; i < edges.length; i++) { + let edge = edges[i]; if (edge[3]) continue; - var res = null; + let res = null; if (veq(p, edge[0])) res = edge[1]; if (veq(p, edge[1])) res = edge[0]; if (res != null) { @@ -312,16 +312,16 @@ export function segmentsToPaths(segments) { return null; } - var path; - for (var ei = 0; ei < segments.length; ei++) { - var edge = segments[ei]; + let path; + for (let ei = 0; ei < segments.length; ei++) { + let edge = segments[ei]; if (edge[3]) { continue; } edge[3] = true; path = [edge[0], edge[1]]; paths.push(path); - var next = nextPoint(edge[1]); + let next = nextPoint(edge[1]); while (next !== null) { if (!veq(next, path[0])) { path.push(next); @@ -332,13 +332,13 @@ export function segmentsToPaths(segments) { } } - var filteredPaths = []; - for (var i = 0; i < paths.length; i++) { + let filteredPaths = []; + for (let i = 0; i < paths.length; i++) { path = paths[i]; //Set derived from object to be able to recunstruct cad_utils.iteratePath(path, 0, function (a, b) { - var fromPolygon = csgIndex.get([a, b]); + let fromPolygon = csgIndex.get([a, b]); if (fromPolygon !== null) { if (fromPolygon.shared.__tcad.csgInfo) { a.sketchConnectionObject = fromPolygon.shared.__tcad.csgInfo.derivedFrom; @@ -365,14 +365,14 @@ function _triangulateCSG(polygons) { return [v.x, v.y, v.z]; } - var triangled = []; + let triangled = []; for (let poly of polygons) { let vertices = Triangulate([poly.vertices.map(v => data(v.pos))], data(poly.plane.normal)); for (let i = 0; i < vertices.length; i += 3 ) { - var a = csgVert(vertices[i]); - var b = csgVert(vertices[i + 1]); - var c = csgVert(vertices[i + 2]); - var csgPoly = new CSG.Polygon([a, b, c], poly.shared, poly.plane); + let a = csgVert(vertices[i]); + let b = csgVert(vertices[i + 1]); + let c = csgVert(vertices[i + 2]); + let csgPoly = new CSG.Polygon([a, b, c], poly.shared, poly.plane); triangled.push(csgPoly); } } @@ -380,21 +380,21 @@ function _triangulateCSG(polygons) { } function splitTwoSegments(a, b) { - var da = a[1].minus(a[0]); - var db = b[1].minus(b[0]); - var dc = b[0].minus(a[0]); + let da = a[1].minus(a[0]); + let db = b[1].minus(b[0]); + let dc = b[0].minus(a[0]); - var daXdb = da.cross(db); + let daXdb = da.cross(db); if (Math.abs(dc.dot(daXdb)) > 1e-6) { // lines are not coplanar return null; } - var veq = strictEqual; + let veq = strictEqual; if (veq(a[0], b[0]) || veq(a[0], b[1]) || veq(a[1], b[0]) || veq(a[1], b[1])) { return null; } - var dcXdb = dc.cross(db); + let dcXdb = dc.cross(db); function _split(s, ip) { if (s[0].equals(ip) || s[1].equals(ip)) { @@ -402,9 +402,9 @@ function splitTwoSegments(a, b) { } return [[s[0], ip, s[2]], [ip, s[1], s[2]]] } - var s = dcXdb.dot(daXdb) / daXdb.lengthSquared(); + let s = dcXdb.dot(daXdb) / daXdb.lengthSquared(); if (s > 0.0 && s < 1.0) { - var ip = a[0].plus(da.times(s)); + let ip = a[0].plus(da.times(s)); return { splitterParts : _split(a, ip), residual : _split(b, ip) @@ -414,14 +414,14 @@ function splitTwoSegments(a, b) { } function attract(vectors, precision) { - var eq = areEqual(); - var dist = distanceAB3; + let eq = areEqual(); + let dist = distanceAB3; vectors = vectors.slice(); - for (var i = 0; i < vectors.length; i++) { - var v1 = vectors[i]; + for (let i = 0; i < vectors.length; i++) { + let v1 = vectors[i]; if (v1 == null) continue; - for (var j = i + 1; j < vectors.length; j++) { - var v2 = vectors[j]; + for (let j = i + 1; j < vectors.length; j++) { + let v2 = vectors[j]; if (v2 == null) continue; if (dist(v1, v2) <= precision) { Vector.prototype.setV.call(v2, v1); diff --git a/web/app/cad/stl/stlAsciiReader.js b/web/app/cad/stl/stlAsciiReader.js index febcb702..5635ef88 100644 --- a/web/app/cad/stl/stlAsciiReader.js +++ b/web/app/cad/stl/stlAsciiReader.js @@ -10,7 +10,7 @@ export function parse(buf) { while (reader.hasNextLine()) { let line = reader.nextLine(); lineNumber ++; - var parts = line + let parts = line .trim() .split(' ') .filter(function(part) { @@ -56,7 +56,7 @@ function LinesReader(buf) { let arr = new Uint8Array(buf); this.nextLine = function() { let str = ""; - for (var i = mark; i < pos; i++) { + for (let i = mark; i < pos; i++) { str += String.fromCharCode(arr[i]); } mark = pos; diff --git a/web/app/cad/tess/triangulation.js b/web/app/cad/tess/triangulation.js index b0833b46..7bf481e7 100644 --- a/web/app/cad/tess/triangulation.js +++ b/web/app/cad/tess/triangulation.js @@ -18,7 +18,7 @@ function initTesselator() { // console.log('edge flag: ' + flag); } - var tessy = new libtess.GluTesselator(); + let tessy = new libtess.GluTesselator(); // tessy.gluTessProperty(libtess.gluEnum.GLU_TESS_WINDING_RULE, libtess.windingRule.GLU_TESS_WINDING_POSITIVE); tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_VERTEX_DATA, vertexCallback); tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_BEGIN, begincallback); @@ -75,9 +75,9 @@ export function TriangulatePolygons(polygons, normal, toArray, fromArray) { let vertices = Triangulate(contours, toArray(normal)); for (let i = 0; i < vertices.length; i += 3 ) { - var a = fromArray(vertices[i]); - var b = fromArray(vertices[i + 1]); - var c = fromArray(vertices[i + 2]); + let a = fromArray(vertices[i]); + let b = fromArray(vertices[i + 1]); + let c = fromArray(vertices[i + 2]); triangled.push([a, b, c]); } return triangled; @@ -97,7 +97,7 @@ export function TriangulateFace(face) { function edgeCallback(flag) { } - var tessy = new libtess.GluTesselator(); + let tessy = new libtess.GluTesselator(); // tessy.gluTessProperty(libtess.gluEnum.GLU_TESS_WINDING_RULE, libtess.windingRule.GLU_TESS_WINDING_POSITIVE); tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_VERTEX_DATA, vertexCallback); tessy.gluTessCallback(libtess.gluEnum.GLU_TESS_BEGIN, begincallback); @@ -135,9 +135,9 @@ export function TriangulateFace(face) { const triangled = []; for (let i = 0; i < vertices.length; i += 3 ) { - var a = vertices[i]; - var b = vertices[i + 1]; - var c = vertices[i + 2]; + let a = vertices[i]; + let b = vertices[i + 1]; + let c = vertices[i + 2]; triangled.push([a, b, c]); } return triangled; diff --git a/web/app/sketcher/constr/solver.js b/web/app/sketcher/constr/solver.js index 06829ca0..3954d630 100644 --- a/web/app/sketcher/constr/solver.js +++ b/web/app/sketcher/constr/solver.js @@ -10,10 +10,10 @@ import {fillArray} from "gems/iterables"; function System(constraints) { this.constraints = constraints; this.params = []; - for (var ci = 0; ci < constraints.length; ++ci) { - var c = constraints[ci]; - for (var pi = 0; pi < c.params.length; ++pi) { - var p = c.params[pi]; + for (let ci = 0; ci < constraints.length; ++ci) { + let c = constraints[ci]; + for (let pi = 0; pi < c.params.length; ++pi) { + let p = c.params[pi]; if (p.j == -1) { p.j = this.params.length; this.params.push(p); @@ -24,9 +24,9 @@ function System(constraints) { System.prototype.makeJacobian = function() { - var jacobi = []; - var i; - var j; + let jacobi = []; + let i; + let j; for (i=0; i < this.constraints.length; i++) { jacobi[i] = []; for (j=0; j < this.params.length; j++) { @@ -34,15 +34,15 @@ System.prototype.makeJacobian = function() { } } for (i=0; i < this.constraints.length; i++) { - var c = this.constraints[i]; + let c = this.constraints[i]; - var cParams = c.params; - var grad = []; + let cParams = c.params; + let grad = []; fillArray(grad, 0, cParams.length, 0); c.gradient(grad); - for (var p = 0; p < cParams.length; p++) { - var param = cParams[p]; + for (let p = 0; p < cParams.length; p++) { + let param = cParams[p]; j = param.j; jacobi[i][j] = grad[p]; } @@ -51,17 +51,17 @@ System.prototype.makeJacobian = function() { }; System.prototype.fillJacobian = function(jacobi) { - for (var i=0; i < this.constraints.length; i++) { - var c = this.constraints[i]; + for (let i=0; i < this.constraints.length; i++) { + let c = this.constraints[i]; - var cParams = c.params; - var grad = []; + let cParams = c.params; + let grad = []; fillArray(grad, 0, cParams.length, 0); c.gradient(grad); - for (var p = 0; p < cParams.length; p++) { - var param = cParams[p]; - var j = param.j; + for (let p = 0; p < cParams.length; p++) { + let param = cParams[p]; + let j = param.j; jacobi[i][j] = grad[p]; } } @@ -70,11 +70,11 @@ System.prototype.fillJacobian = function(jacobi) { System.prototype.calcResidual = function(r) { - var i=0; - var err = 0.; + let i=0; + let err = 0.; for (i=0; i < this.constraints.length; i++) { - var c = this.constraints[i]; + let c = this.constraints[i]; r[i] = c.error(); err += r[i]*r[i]; } @@ -84,94 +84,94 @@ System.prototype.calcResidual = function(r) { }; System.prototype.calcGrad_ = function(out) { - var i; + let i; for (i = 0; i < out.length || i < this.params.length; ++i) { out[i][0] = 0; } for (i=0; i < this.constraints.length; i++) { - var c = this.constraints[i]; + let c = this.constraints[i]; - var cParams = c.params; - var grad = []; + let cParams = c.params; + let grad = []; fillArray(grad, 0, cParams.length, 0); c.gradient(grad); - for (var p = 0; p < cParams.length; p++) { - var param = cParams[p]; - var j = param.j; + for (let p = 0; p < cParams.length; p++) { + let param = cParams[p]; + let j = param.j; out[j][0] += this.constraints[i].error() * grad[p]; // (10.4) } } }; System.prototype.calcGrad = function(out) { - var i; + let i; for (i = 0; i < out.length || i < this.params.length; ++i) { out[i] = 0; } for (i=0; i < this.constraints.length; i++) { - var c = this.constraints[i]; + let c = this.constraints[i]; - var cParams = c.params; - var grad = []; + let cParams = c.params; + let grad = []; fillArray(grad, 0, cParams.length, 0); c.gradient(grad); - for (var p = 0; p < cParams.length; p++) { - var param = cParams[p]; - var j = param.j; + for (let p = 0; p < cParams.length; p++) { + let param = cParams[p]; + let j = param.j; out[j] += this.constraints[i].error() * grad[p]; // (10.4) } } }; System.prototype.fillParams = function(out) { - for (var p = 0; p < this.params.length; p++) { + for (let p = 0; p < this.params.length; p++) { out[p] = this.params[p].get(); } }; System.prototype.getParams = function() { - var out = []; + let out = []; this.fillParams(out); return out; }; System.prototype.setParams = function(point) { - for (var p = 0; p < this.params.length; p++) { + for (let p = 0; p < this.params.length; p++) { this.params[p].set(point[p]); } }; System.prototype.error = function() { - var error = 0; - for (var i=0; i < this.constraints.length; i++) { + let error = 0; + for (let i=0; i < this.constraints.length; i++) { error += Math.abs(this.constraints[i].error()); } return error; }; System.prototype.errorSquare = function() { - var error = 0; - for (var i=0; i < this.constraints.length; i++) { - var t = this.constraints[i].error(); + let error = 0; + for (let i=0; i < this.constraints.length; i++) { + let t = this.constraints[i].error(); error += t * t; } return error * 0.5; }; System.prototype.getValues = function() { - var values = []; - for (var i=0; i < this.constraints.length; i++) { + let values = []; + for (let i=0; i < this.constraints.length; i++) { values[i] = this.constraints[i].error(); } return values; }; System.prototype.rollback = function() { - for (var p = 0; p < this.params.length; p++) { + for (let p = 0; p < this.params.length; p++) { this.params[p].rollback(); } }; @@ -198,50 +198,50 @@ function wrapConstants(constrs) { return constrs; } -var lock2Equals2 = function(constrs, locked) { - var _locked = []; - for (var i = 0; i < locked.length; ++i) { +let lock2Equals2 = function(constrs, locked) { + let _locked = []; + for (let i = 0; i < locked.length; ++i) { _locked.push(new EqualsTo([locked[i]], locked[i].get())); } return _locked; }; -var diagnose = function(sys) { +let diagnose = function(sys) { if (sys.constraints.length === 0 || sys.params.length === 0) { return { conflict : false, dof : 0 } } - var jacobian = sys.makeJacobian(); - var qr = new QR(jacobian); + let jacobian = sys.makeJacobian(); + let qr = new QR(jacobian); return { conflict : sys.constraints.length > qr.rank, dof : sys.params.length - qr.rank } }; -var prepare = function(constrs, locked) { +let prepare = function(constrs, locked) { - var simpleMode = true; + let simpleMode = true; if (!simpleMode) { var lockingConstrs = lock2Equals2(constrs, locked); Array.prototype.push.apply( constrs, lockingConstrs ); } constrs = wrapConstants(constrs); - var sys = new System(constrs); + let sys = new System(constrs); - var model = function(point) { + let model = function(point) { sys.setParams(point); return sys.getValues(); }; - var jacobian = function(point) { + let jacobian = function(point) { sys.setParams(point); return sys.makeJacobian(); }; - var nullResult = { + let nullResult = { evalCount : 0, error : 0, returnCode : 1 @@ -261,13 +261,13 @@ var prepare = function(constrs, locked) { } return result; } - var systemSolver = { + let systemSolver = { diagnose : function() {return diagnose(sys)}, error : function() {return sys.error()}, solveSystem : solve, system : sys, updateLock : function(values) { - for (var i = 0; i < values.length; ++i) { + for (let i = 0; i < values.length; ++i) { if (simpleMode) { locked[i].set(values[i]); } else { @@ -280,11 +280,11 @@ var prepare = function(constrs, locked) { }; var solve_lm = function(sys, model, jacobian, rough) { - var opt = new LMOptimizer(sys.getParams(), newVector(sys.constraints.length), model, jacobian); + let opt = new LMOptimizer(sys.getParams(), newVector(sys.constraints.length), model, jacobian); opt.evalMaximalCount = 100000; //100 * sys.params.length; - var eps = rough ? 0.001 : 0.00000001; + let eps = rough ? 0.001 : 0.00000001; opt.init0(eps, eps, eps); - var returnCode = 1; + let returnCode = 1; try { var res = opt.doOptimize(); } catch (e) { diff --git a/web/app/sketcher/constr/solverConstraints.js b/web/app/sketcher/constr/solverConstraints.js index a52a170a..267d601c 100644 --- a/web/app/sketcher/constr/solverConstraints.js +++ b/web/app/sketcher/constr/solverConstraints.js @@ -72,22 +72,22 @@ function MinLength(params, distance) { this.params = params; this.distance = distance; - var p1x = 0; - var p1y = 1; - var p2x = 2; - var p2y = 3; + let p1x = 0; + let p1y = 1; + let p2x = 2; + let p2y = 3; this.error = function() { - var dx = params[p1x].get() - params[p2x].get(); - var dy = params[p1y].get() - params[p2y].get(); - var d = Math.sqrt(dx * dx + dy * dy); + let dx = params[p1x].get() - params[p2x].get(); + let dy = params[p1y].get() - params[p2y].get(); + let d = Math.sqrt(dx * dx + dy * dy); return d < this.distance ? (d - this.distance) : 0; }; this.gradient = function(out) { - var dx = params[p1x].get() - params[p2x].get(); - var dy = params[p1y].get() - params[p2y].get(); - var d = Math.sqrt(dx * dx + dy * dy); + let dx = params[p1x].get() - params[p2x].get(); + let dy = params[p1y].get() - params[p2y].get(); + let d = Math.sqrt(dx * dx + dy * dy); if (d == 0) { d = 0.000001; } @@ -107,34 +107,34 @@ function MinLength(params, distance) { function LockConvex(params) { this.params = params; - var _pcx = 0; - var _pcy = 1; - var _pax = 2; - var _pay = 3; - var _ptx = 4; - var _pty = 5; + let _pcx = 0; + let _pcy = 1; + let _pax = 2; + let _pay = 3; + let _ptx = 4; + let _pty = 5; this.error = function() { - var cx = params[_pcx].get(); - var cy = params[_pcy].get(); - var ax = params[_pax].get(); - var ay = params[_pay].get(); - var tx = params[_ptx].get(); - var ty = params[_pty].get(); + let cx = params[_pcx].get(); + let cy = params[_pcy].get(); + let ax = params[_pax].get(); + let ay = params[_pay].get(); + let tx = params[_ptx].get(); + let ty = params[_pty].get(); - var crossProductNorm = (cx - ax) * (ty - ay) - (cy - ay) * (tx - ax); + let crossProductNorm = (cx - ax) * (ty - ay) - (cy - ay) * (tx - ax); - var violate = crossProductNorm < 0; + let violate = crossProductNorm < 0; return violate ? crossProductNorm : 0; }; this.gradient = function(out) { - var cx = params[_pcx].get(); - var cy = params[_pcy].get(); - var ax = params[_pax].get(); - var ay = params[_pay].get(); - var tx = params[_ptx].get(); - var ty = params[_pty].get(); + let cx = params[_pcx].get(); + let cy = params[_pcy].get(); + let ax = params[_pax].get(); + let ay = params[_pay].get(); + let tx = params[_ptx].get(); + let ty = params[_pty].get(); out[_pcx] = ty-ay; out[_pcy] = ax-tx; @@ -164,7 +164,7 @@ function ConstantWrapper(constr, mask) { this.gradient = function(out) { fillArray(this.grad, 0, this.grad.length, 0); constr.gradient(this.grad); - var jj = 0; + let jj = 0; for (let j = 0; j < mask.length; j++) { if (!mask[j]) { out[jj ++] = this.grad[j]; @@ -185,7 +185,7 @@ function Weighted(constr, weight) { this.gradient = function(out) { constr.gradient(out); - for (var i = 0; i < out.length; i++) { + for (let i = 0; i < out.length; i++) { out[i] *= this.weight; } } @@ -248,38 +248,38 @@ function P2LDistance(params, distance) { this.params = params; this.distance = distance; - var TX = 0; - var TY = 1; - var LP1X = 2; - var LP1Y = 3; - var LP2X = 4; - var LP2Y = 5; + let TX = 0; + let TY = 1; + let LP1X = 2; + let LP1Y = 3; + let LP2X = 4; + let LP2Y = 5; this.error = function() { - var x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); - var y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); - var dx = x2 - x1; - var dy = y2 - y1; - var d = Math.sqrt(dx * dx + dy * dy); + let x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); + let y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); + let dx = x2 - x1; + let dy = y2 - y1; + let d = Math.sqrt(dx * dx + dy * dy); if (d == 0) { return 0; } - var A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; + let A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; return Math.abs(A) / d - this.distance; }; this.gradient = function(out) { - var x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); - var y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); - var dx = x2 - x1; - var dy = y2 - y1; - var d2 = dx * dx + dy * dy; - var d = Math.sqrt(d2); - var d3 = d * d2; + let x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); + let y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); + let dx = x2 - x1; + let dy = y2 - y1; + let d2 = dx * dx + dy * dy; + let d = Math.sqrt(d2); + let d3 = d * d2; // var AA = -x0 * (y2 - y1) + y0 * (x2 - x1) + x1 * y2 - x2 * y1; - var A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; - var AM = Math.abs(A); - var j = A < 0 ? -1 : 1; + let A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; + let AM = Math.abs(A); + let j = A < 0 ? -1 : 1; out[TX] = j * (y1 - y2) / d; out[TY] = j * (x2 - x1) / d; @@ -297,40 +297,40 @@ function P2LDistanceV(params) { this.params = params;//.slice(0, params.length -1); - var TX = 0; - var TY = 1; - var LP1X = 2; - var LP1Y = 3; - var LP2X = 4; - var LP2Y = 5; - var D = 6; + let TX = 0; + let TY = 1; + let LP1X = 2; + let LP1Y = 3; + let LP2X = 4; + let LP2Y = 5; + let D = 6; this.error = function() { - var x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); - var y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); - var dist = this.params[D].get(); - var dx = x2 - x1; - var dy = y2 - y1; - var d = Math.sqrt(dx * dx + dy * dy); + let x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); + let y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); + let dist = this.params[D].get(); + let dx = x2 - x1; + let dy = y2 - y1; + let d = Math.sqrt(dx * dx + dy * dy); if (d == 0) { return 0; } - var A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; + let A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; return Math.abs(A) / d - dist; }; this.gradient = function(out) { - var x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); - var y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); - var dx = x2 - x1; - var dy = y2 - y1; - var d2 = dx * dx + dy * dy; - var d = Math.sqrt(d2); - var d3 = d * d2; + let x0 = params[TX].get(), x1 = params[LP1X].get(), x2 = params[LP2X].get(); + let y0 = params[TY].get(), y1 = params[LP1Y].get(), y2 = params[LP2Y].get(); + let dx = x2 - x1; + let dy = y2 - y1; + let d2 = dx * dx + dy * dy; + let d = Math.sqrt(d2); + let d3 = d * d2; // var AA = -x0 * (y2 - y1) + y0 * (x2 - x1) + x1 * y2 - x2 * y1; - var A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; - var AM = Math.abs(A); - var j = A < 0 ? -1 : 1; + let A = -x0 * dy + y0 * dx + x1 * y2 - x2 * y1; + let AM = Math.abs(A); + let j = A < 0 ? -1 : 1; out[TX] = j * (y1 - y2) / d; out[TY] = j * (x2 - x1) / d; @@ -351,22 +351,22 @@ function P2PDistance(params, distance) { this.params = params; this.distance = distance; - var p1x = 0; - var p1y = 1; - var p2x = 2; - var p2y = 3; + let p1x = 0; + let p1y = 1; + let p2x = 2; + let p2y = 3; this.error = function() { - var dx = params[p1x].get() - params[p2x].get(); - var dy = params[p1y].get() - params[p2y].get(); - var d = Math.sqrt(dx * dx + dy * dy); + let dx = params[p1x].get() - params[p2x].get(); + let dy = params[p1y].get() - params[p2y].get(); + let d = Math.sqrt(dx * dx + dy * dy); return (d - this.distance); }; this.gradient = function(out) { - var dx = params[p1x].get() - params[p2x].get(); - var dy = params[p1y].get() - params[p2y].get(); - var d = Math.sqrt(dx * dx + dy * dy); + let dx = params[p1x].get() - params[p2x].get(); + let dy = params[p1y].get() - params[p2y].get(); + let d = Math.sqrt(dx * dx + dy * dy); if (d == 0) { if (this.distance == 0) return; d = 0.000001; @@ -383,23 +383,23 @@ function P2PDistanceV(params) { this.params = params; - var p1x = 0; - var p1y = 1; - var p2x = 2; - var p2y = 3; - var D = 4; + let p1x = 0; + let p1y = 1; + let p2x = 2; + let p2y = 3; + let D = 4; this.error = function() { - var dx = params[p1x].get() - params[p2x].get(); - var dy = params[p1y].get() - params[p2y].get(); - var d = Math.sqrt(dx * dx + dy * dy); + let dx = params[p1x].get() - params[p2x].get(); + let dy = params[p1y].get() - params[p2y].get(); + let d = Math.sqrt(dx * dx + dy * dy); return (d - params[D].get()); }; this.gradient = function(out) { - var dx = params[p1x].get() - params[p2x].get(); - var dy = params[p1y].get() - params[p2y].get(); - var d = Math.sqrt(dx * dx + dy * dy); + let dx = params[p1x].get() - params[p2x].get(); + let dy = params[p1y].get() - params[p2y].get(); + let d = Math.sqrt(dx * dx + dy * dy); if (d == 0) { if (params[D].get() == 0) return; d = 0.000001; @@ -487,20 +487,20 @@ function Parallel(params) { this.params = params; - var l1p1x = 0; - var l1p1y = 1; - var l1p2x = 2; - var l1p2y = 3; - var l2p1x = 4; - var l2p1y = 5; - var l2p2x = 6; - var l2p2y = 7; + let l1p1x = 0; + let l1p1y = 1; + let l1p2x = 2; + let l1p2y = 3; + let l2p1x = 4; + let l2p1y = 5; + let l2p2x = 6; + let l2p2y = 7; this.error = function() { - var dx1 = (params[l1p1x].get() - params[l1p2x].get()); - var dy1 = (params[l1p1y].get() - params[l1p2y].get()); - var dx2 = (params[l2p1x].get() - params[l2p2x].get()); - var dy2 = (params[l2p1y].get() - params[l2p2y].get()); + let dx1 = (params[l1p1x].get() - params[l1p2x].get()); + let dy1 = (params[l1p1y].get() - params[l1p2y].get()); + let dx2 = (params[l2p1x].get() - params[l2p2x].get()); + let dy2 = (params[l2p1y].get() - params[l2p2y].get()); return (dx1*dy2 - dy1*dx2); }; @@ -520,20 +520,20 @@ function Perpendicular(params) { this.params = params; - var l1p1x = 0; - var l1p1y = 1; - var l1p2x = 2; - var l1p2y = 3; - var l2p1x = 4; - var l2p1y = 5; - var l2p2x = 6; - var l2p2y = 7; + let l1p1x = 0; + let l1p1y = 1; + let l1p2x = 2; + let l1p2y = 3; + let l2p1x = 4; + let l2p1y = 5; + let l2p2x = 6; + let l2p2y = 7; this.error = function() { - var dx1 = (params[l1p1x].get() - params[l1p2x].get()); - var dy1 = (params[l1p1y].get() - params[l1p2y].get()); - var dx2 = (params[l2p1x].get() - params[l2p2x].get()); - var dy2 = (params[l2p1y].get() - params[l2p2y].get()); + let dx1 = (params[l1p1x].get() - params[l1p2x].get()); + let dy1 = (params[l1p1y].get() - params[l1p2y].get()); + let dx2 = (params[l2p1x].get() - params[l2p2x].get()); + let dy2 = (params[l2p1y].get() - params[l2p2y].get()); //dot product shows how the lines off to be perpendicular return (dx1*dx2 + dy1*dy2); }; @@ -554,51 +554,51 @@ function Angle(params) { this.params = params; - var l1p1x = 0; - var l1p1y = 1; - var l1p2x = 2; - var l1p2y = 3; - var l2p1x = 4; - var l2p1y = 5; - var l2p2x = 6; - var l2p2y = 7; - var angle = 8; - var scale = 1000; // we need scale to get same order of measure units(radians are to small) + let l1p1x = 0; + let l1p1y = 1; + let l1p2x = 2; + let l1p2y = 3; + let l2p1x = 4; + let l2p1y = 5; + let l2p2x = 6; + let l2p2y = 7; + let angle = 8; + let scale = 1000; // we need scale to get same order of measure units(radians are to small) function p(ref) { return params[ref].get(); } this.error = function() { - var dx1 = (p(l1p2x) - p(l1p1x)); - var 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); - var ca = Math.cos(a); - var sa = Math.sin(a); - var x2 = dx2*ca + dy2*sa; - var y2 = -dx2*sa + dy2*ca; + let dx1 = (p(l1p2x) - p(l1p1x)); + let dy1 = (p(l1p2y) - p(l1p1y)); + let dx2 = (p(l2p2x) - p(l2p1x)); + let dy2 = (p(l2p2y) - p(l2p1y)); + let a = Math.atan2(dy1,dx1) + p(angle); + let ca = Math.cos(a); + let sa = Math.sin(a); + let x2 = dx2*ca + dy2*sa; + let y2 = -dx2*sa + dy2*ca; return Math.atan2(y2,x2) * scale; }; this.gradient = function (out) { - var dx1 = (p(l1p2x) - p(l1p1x)); - var dy1 = (p(l1p2y) - p(l1p1y)); - var r2 = dx1 * dx1 + dy1 * dy1; + let dx1 = (p(l1p2x) - p(l1p1x)); + let dy1 = (p(l1p2y) - p(l1p1y)); + let r2 = dx1 * dx1 + dy1 * dy1; out[l1p1x] = -dy1 / r2; out[l1p1y] = dx1 / r2; out[l1p2x] = dy1 / r2; out[l1p2y] = -dx1 / r2; 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); - var ca = Math.cos(a); - var sa = Math.sin(a); - var x2 = dx2 * ca + dy2 * sa; - var y2 = -dx2 * sa + dy2 * ca; + let dx2 = (p(l2p2x) - p(l2p1x)); + let dy2 = (p(l2p2y) - p(l2p1y)); + let a = Math.atan2(dy1, dx1) + p(angle); + let ca = Math.cos(a); + let sa = Math.sin(a); + let x2 = dx2 * ca + dy2 * sa; + let y2 = -dx2 * sa + dy2 * ca; r2 = dx2 * dx2 + dy2 * dy2; dx2 = -y2 / r2; dy2 = x2 / r2; @@ -782,7 +782,7 @@ function GreaterThan(params, limit) { this.error = function() { let value = this.params[0].get(); - var error = value <= limit ? limit - value : 0; + let error = value <= limit ? limit - value : 0; console.log("GreaterThan: " + error + ", value: " +value); return error; }; @@ -809,7 +809,7 @@ export function NumericGradient(out) { } function _fixNaN(grad) { - for (var i = 0; i < grad.length; i++) { + for (let i = 0; i < grad.length; i++) { if (isNaN(grad[i])) { grad[i] = 0; } @@ -817,7 +817,7 @@ function _fixNaN(grad) { } function rescale(grad, factor) { - for (var i = 0; i < grad.length; i++) { + for (let i = 0; i < grad.length; i++) { grad[i] *= factor; } } diff --git a/web/app/sketcher/constraints.js b/web/app/sketcher/constraints.js index b2f5bc16..7ceb9acc 100644 --- a/web/app/sketcher/constraints.js +++ b/web/app/sketcher/constraints.js @@ -128,7 +128,7 @@ Constraints.Parallel.prototype.NAME = 'parallel'; Constraints.Parallel.prototype.UI_NAME = 'Parallel'; Constraints.Parallel.prototype.getSolveData = function() { - var params = []; + let params = []; this.l1.collectParams(params); this.l2.collectParams(params); return [[this.NAME, params, []]]; @@ -158,7 +158,7 @@ Constraints.Perpendicular.prototype.NAME = 'perpendicular'; Constraints.Perpendicular.prototype.UI_NAME = 'Perpendicular'; Constraints.Perpendicular.prototype.getSolveData = function() { - var params = []; + let params = []; this.l1.collectParams(params); this.l2.collectParams(params); return [[this.NAME, params, []]]; @@ -190,7 +190,7 @@ Constraints.P2LDistanceSigned.prototype.NAME = 'P2LDistanceSigned'; Constraints.P2LDistanceSigned.prototype.UI_NAME = 'Distance P & L'; Constraints.P2LDistanceSigned.prototype.getSolveData = function(resolver) { - var params = []; + let params = []; this.p.collectParams(params); this.a.collectParams(params); this.b.collectParams(params); @@ -228,7 +228,7 @@ Constraints.P2LDistance.prototype.NAME = 'P2LDistance'; Constraints.P2LDistance.prototype.UI_NAME = 'Distance P & L'; Constraints.P2LDistance.prototype.getSolveData = function(resolver) { - var params = []; + let params = []; this.p.collectParams(params); this.l.collectParams(params); return [[this.NAME, params, [resolver(this.d)]]]; @@ -262,7 +262,7 @@ Constraints.MinLength.prototype.NAME = 'MinLength'; Constraints.MinLength.prototype.UI_NAME = 'MinLength'; Constraints.MinLength.prototype.getSolveData = function() { - var params = []; + let params = []; this.a.collectParams(params); this.b.collectParams(params); return [[this.NAME, params, [this.min]]]; @@ -282,7 +282,7 @@ Constraints.P2LDistanceV.prototype.NAME = 'P2LDistanceV'; Constraints.P2LDistanceV.prototype.UI_NAME = 'Distance P & L'; Constraints.P2LDistanceV.prototype.getSolveData = function() { - var params = []; + let params = []; this.p.collectParams(params); this.l.collectParams(params); params.push(this.d); @@ -312,7 +312,7 @@ Constraints.P2PDistance.prototype.NAME = 'P2PDistance'; Constraints.P2PDistance.prototype.UI_NAME = 'Distance Points'; Constraints.P2PDistance.prototype.getSolveData = function(resolver) { - var params = []; + let params = []; this.p1.collectParams(params); this.p2.collectParams(params); return [[this.NAME, params, [resolver(this.d)]]]; @@ -346,7 +346,7 @@ Constraints.P2PDistanceV.prototype.NAME = 'P2PDistanceV'; Constraints.P2PDistanceV.prototype.UI_NAME = 'Distance Points'; Constraints.P2PDistanceV.prototype.getSolveData = function() { - var params = []; + let params = []; this.p1.collectParams(params); this.p2.collectParams(params); params.push(this.d); @@ -451,8 +451,8 @@ Constraints.LL.prototype.NAME = 'LL'; Constraints.LL.prototype.UI_NAME = 'Lines Equality'; Constraints.LL.prototype.getSolveData = function() { - var params1 = []; - var params2 = []; + let params1 = []; + let params2 = []; this.line1.collectParams(params1); this.line2.collectParams(params2); params1.push(this.length); @@ -541,7 +541,7 @@ Constraints.Tangent.prototype.NAME = 'Tangent'; Constraints.Tangent.prototype.UI_NAME = 'Tangent'; Constraints.Tangent.prototype.getSolveData = function() { - var params = []; + let params = []; this.arc.c.collectParams(params); this.line.collectParams(params); params.push(this.arc.r); @@ -610,7 +610,7 @@ Constraints.PointOnLine.prototype.NAME = 'PointOnLine'; Constraints.PointOnLine.prototype.UI_NAME = 'Point On Line'; Constraints.PointOnLine.prototype.getSolveData = function() { - var params = []; + let params = []; this.point.collectParams(params); this.line.collectParams(params); return [['P2LDistance', params, [0]]]; @@ -640,7 +640,7 @@ Constraints.PointOnArc.prototype.NAME = 'PointOnArc'; Constraints.PointOnArc.prototype.UI_NAME = 'Point On Arc'; Constraints.PointOnArc.prototype.getSolveData = function() { - var params = []; + let params = []; this.point.collectParams(params); this.arc.c.collectParams(params); params.push(this.arc.r); @@ -701,7 +701,7 @@ Constraints.PointOnEllipseInternal.prototype.UI_NAME = 'Point On Ellipse'; Constraints.PointOnEllipseInternal.prototype.aux = true; Constraints.PointOnEllipseInternal.prototype.getSolveData = function() { - var params = []; + let params = []; this.point.collectParams(params); this.ellipse.ep1.collectParams(params); this.ellipse.ep2.collectParams(params); @@ -817,8 +817,8 @@ Constraints.PointInMiddle.prototype.NAME = 'PointInMiddle'; Constraints.PointInMiddle.prototype.UI_NAME = 'Point In the Middle'; Constraints.PointInMiddle.prototype.getSolveData = function() { - var params1 = []; - var params2 = []; + let params1 = []; + let params2 = []; this.line.a.collectParams(params1); this.point.collectParams(params1); @@ -859,8 +859,8 @@ Constraints.Symmetry.prototype.NAME = 'Symmetry'; Constraints.Symmetry.prototype.UI_NAME = 'Symmetry'; Constraints.Symmetry.prototype.getSolveData = function(resolver) { - var pointInMiddleData = Constraints.PointInMiddle.prototype.getSolveData.call(this, [resolver]); - var pointOnLineData = Constraints.PointOnLine.prototype.getSolveData.call(this, [resolver]); + let pointInMiddleData = Constraints.PointInMiddle.prototype.getSolveData.call(this, [resolver]); + let pointOnLineData = Constraints.PointOnLine.prototype.getSolveData.call(this, [resolver]); return pointInMiddleData.concat(pointOnLineData); }; @@ -893,7 +893,7 @@ Constraints.Angle.prototype.UI_NAME = 'Lines Angle'; Constraints.Angle.prototype.getSolveData = function(resolver) { this._angle.set(resolver(this.angle) / 180 * Math.PI); - var params = []; + let params = []; this.p1.collectParams(params); this.p2.collectParams(params); this.p3.collectParams(params); @@ -911,7 +911,7 @@ Constraints.Factory[Constraints.Angle.prototype.NAME] = function(refs, data) { }; Constraints.Angle.prototype.getObjects = function() { - var collector = new Constraints.ParentsCollector(); + let collector = new Constraints.ParentsCollector(); collector.check(this.p1); collector.check(this.p2); collector.check(this.p3); @@ -934,7 +934,7 @@ Constraints.LockConvex.prototype.NAME = 'LockConvex'; Constraints.LockConvex.prototype.UI_NAME = 'Lock Convexity'; Constraints.LockConvex.prototype.getSolveData = function() { - var params = []; + let params = []; this.c.collectParams(params); this.a.collectParams(params); this.t.collectParams(params); @@ -950,7 +950,7 @@ Constraints.Factory[Constraints.LockConvex.prototype.NAME] = function(refs, data }; Constraints.LockConvex.prototype.getObjects = function() { - var collector = new Constraints.ParentsCollector(); + let collector = new Constraints.ParentsCollector(); collector.check(this.c); collector.check(this.a); collector.check(this.t); @@ -1114,8 +1114,8 @@ Constraints.Fillet.prototype.validate = function() { Constraints.ParentsCollector = function() { this.parents = []; - var parents = this.parents; - var index = {}; + let parents = this.parents; + let index = {}; function add(obj) { if (index[obj.id] === undefined) { index[obj.id] = obj; diff --git a/web/app/sketcher/fetchers.js b/web/app/sketcher/fetchers.js index 1f534368..dd2b1968 100644 --- a/web/app/sketcher/fetchers.js +++ b/web/app/sketcher/fetchers.js @@ -1,6 +1,6 @@ export function twoPoints(objs) { - var points = []; - for (var i = 0; i < objs.length; ++i) { + let points = []; + for (let i = 0; i < objs.length; ++i) { if (objs[i]._class == 'TCAD.TWO.EndPoint') { points.push(objs[i]); } else if (objs[i]._class == 'TCAD.TWO.Segment') { @@ -15,8 +15,8 @@ export function twoPoints(objs) { } export function points(objs) { - var points = []; - for (var i = 0; i < objs.length; ++i) { + let points = []; + for (let i = 0; i < objs.length; ++i) { objs[i].accept(function(o) { if (o._class === 'TCAD.TWO.EndPoint') { points.push(o); @@ -31,8 +31,8 @@ export function points(objs) { } export function arkCirc(objs, min) { - var arcs = []; - for (var i = 0; i < objs.length; ++i) { + let arcs = []; + for (let i = 0; i < objs.length; ++i) { if (objs[i]._class === 'TCAD.TWO.Arc' || objs[i]._class === 'TCAD.TWO.Circle') { arcs.push(objs[i]); } @@ -44,8 +44,8 @@ export function arkCirc(objs, min) { } export function generic(objs, types, min) { - var result = []; - for (var i = 0; i < objs.length; ++i) { + let result = []; + for (let i = 0; i < objs.length; ++i) { if (types.indexOf(objs[i]._class) > -1 ) { result.push(objs[i]); } @@ -58,10 +58,10 @@ export function generic(objs, types, min) { export function pointAndLine(objs) { - var point = null; - var line = null; + let point = null; + let line = null; - for (var i = 0; i < objs.length; ++i) { + for (let i = 0; i < objs.length; ++i) { if (objs[i]._class == 'TCAD.TWO.EndPoint') { point = objs[i]; } else if (objs[i]._class == 'TCAD.TWO.Segment') { @@ -76,7 +76,7 @@ export function pointAndLine(objs) { } export function line(objs) { - for (var i = 0; i < objs.length; ++i) { + for (let i = 0; i < objs.length; ++i) { if (objs[i]._class == 'TCAD.TWO.Segment') { return objs[i]; } @@ -90,10 +90,10 @@ export function lines(objs) { export function arcCircAndLine(objs) { - var arc = null; - var line = null; + let arc = null; + let line = null; - for (var i = 0; i < objs.length; ++i) { + for (let i = 0; i < objs.length; ++i) { if (objs[i]._class === 'TCAD.TWO.Arc' || objs[i]._class === 'TCAD.TWO.Circle') { arc = objs[i]; } else if (objs[i]._class == 'TCAD.TWO.Segment') { @@ -108,8 +108,8 @@ export function arcCircAndLine(objs) { } export function twoLines(objs) { - var lines = []; - for (var i = 0; i < objs.length; ++i) { + let lines = []; + for (let i = 0; i < objs.length; ++i) { if (objs[i]._class == 'TCAD.TWO.Segment') { lines.push(objs[i]); } @@ -121,9 +121,9 @@ export function twoLines(objs) { } export function sketchObjects(objs, silent, matching) { - var fetched = []; - for (var i = 0; i < objs.length; ++i) { - for (var j = 0; j < matching.length; j++) { + let fetched = []; + for (let i = 0; i < objs.length; ++i) { + for (let j = 0; j < matching.length; j++) { if (objs[i]._class == matching[j]) { fetched[j] = objs[i]; matching[j] = null; diff --git a/web/app/sketcher/history.js b/web/app/sketcher/history.js index 9d5b878f..e3c9e8d2 100644 --- a/web/app/sketcher/history.js +++ b/web/app/sketcher/history.js @@ -14,17 +14,17 @@ HistoryManager.prototype.init = function(sketchData) { }; HistoryManager.prototype.undo = function () { - var currentState = this.viewer.io.serializeSketch(); + let currentState = this.viewer.io.serializeSketch(); if (currentState == this.lastCheckpoint) { if (this.historyPointer != -1) { - var diff = this.diffs[this.historyPointer]; + let diff = this.diffs[this.historyPointer]; this.lastCheckpoint = this.applyDiff(this.lastCheckpoint, diff); this.viewer.io.loadSketch(this.lastCheckpoint); this.viewer.fullHeavyUIRefresh(); this.historyPointer --; } } else { - var diffToCurr = this.getDiff(currentState, this.lastCheckpoint); + let diffToCurr = this.getDiff(currentState, this.lastCheckpoint); if (this.historyPointer != this.diffs.length - 1) { this.diffs.splice(this.historyPointer + 1, this.diffs.length - this.historyPointer + 1) } @@ -51,11 +51,11 @@ HistoryManager.prototype.checkpoint = function () { HistoryManager.prototype._checkpoint = function () { this._counter = 0; - var currentState = this.viewer.io.serializeSketch(); + let currentState = this.viewer.io.serializeSketch(); if (currentState == this.lastCheckpoint) { return; } - var diffToCurr = this.getDiff(currentState, this.lastCheckpoint); + let diffToCurr = this.getDiff(currentState, this.lastCheckpoint); if (this.historyPointer != this.diffs.length - 1) { this.diffs.splice(this.historyPointer + 1, this.diffs.length - this.historyPointer + 1) } @@ -65,13 +65,13 @@ HistoryManager.prototype._checkpoint = function () { }; HistoryManager.prototype.redo = function () { - var currentState = this.viewer.io.serializeSketch(); + let currentState = this.viewer.io.serializeSketch(); if (currentState != this.lastCheckpoint) { return; } if (this.historyPointer != this.diffs.length - 1 && this.diffs.length != 0) { this.historyPointer ++; - var diff = this.diffs[this.historyPointer]; + let diff = this.diffs[this.historyPointer]; this.lastCheckpoint = this.applyDiffInv(this.lastCheckpoint, diff); this.viewer.io.loadSketch(this.lastCheckpoint); this.viewer.fullHeavyUIRefresh(); @@ -86,16 +86,16 @@ HistoryManager.prototype.applyDiff = function (text1, diff) { HistoryManager.prototype.applyDiffInv = function (text1, diff) { this.reversePatch(diff); - var result = this.applyDiff(text1, diff); + let result = this.applyDiff(text1, diff); this.reversePatch(diff); return result; }; HistoryManager.prototype.reversePatch = function (plist) { - for (var i = 0; i < plist.length; i++) { - var patch = plist[i]; - for (var j = 0; j < patch.diffs.length; j++) { - var diff = patch.diffs[j]; + for (let i = 0; i < plist.length; i++) { + let patch = plist[i]; + for (let j = 0; j < patch.diffs.length; j++) { + let diff = patch.diffs[j]; diff[0] *= -1; } } diff --git a/web/app/sketcher/shapes/basis-origin.js b/web/app/sketcher/shapes/basis-origin.js index 17dfde17..db2009d4 100644 --- a/web/app/sketcher/shapes/basis-origin.js +++ b/web/app/sketcher/shapes/basis-origin.js @@ -34,8 +34,8 @@ export class BasisOrigin extends Shape { ctx.lineWidth = 1; ctx.strokeStyle = this.yColor; - var headA = 1; - var headB = 10; + let headA = 1; + let headB = 10; ctx.moveTo(0.5, 0); ctx.lineTo(0.5, - this.lineWidth); diff --git a/web/app/sketcher/shapes/cross-hair.js b/web/app/sketcher/shapes/cross-hair.js index 21b17308..7151d31a 100644 --- a/web/app/sketcher/shapes/cross-hair.js +++ b/web/app/sketcher/shapes/cross-hair.js @@ -11,7 +11,7 @@ export class CrossHair extends Shape { draw(ctx, scale) { ctx.beginPath(); - var rad = this.rad / scale; + let rad = this.rad / scale; ctx.moveTo(this.x - rad, this.y); ctx.lineTo(this.x + rad, this.y); ctx.closePath(); diff --git a/web/app/sketcher/shapes/dim.js b/web/app/sketcher/shapes/dim.js index d0af75c5..a613b80e 100644 --- a/web/app/sketcher/shapes/dim.js +++ b/web/app/sketcher/shapes/dim.js @@ -142,7 +142,7 @@ export class LinearDimension extends Dimension { function drawRef(start, x, y) { - var vec = new Vector(x - start.x, y - start.y); + let vec = new Vector(x - start.x, y - start.y); vec._normalize(); vec._multiply(EXT_LINEAR_WIDTH_PX * unscale); diff --git a/web/app/sketcher/tools/arc.js b/web/app/sketcher/tools/arc.js index 462b0b72..7aab7cdb 100644 --- a/web/app/sketcher/tools/arc.js +++ b/web/app/sketcher/tools/arc.js @@ -17,7 +17,7 @@ export class AddArcTool extends Tool { } mousemove(e) { - var p = this.viewer.screenToModel(e); + let p = this.viewer.screenToModel(e); if (this.point != null) { this.point.x = p.x; this.point.y = p.y; diff --git a/web/app/sketcher/tools/circle.js b/web/app/sketcher/tools/circle.js index edec00db..15ccf023 100644 --- a/web/app/sketcher/tools/circle.js +++ b/web/app/sketcher/tools/circle.js @@ -17,9 +17,9 @@ export class EditCircleTool extends Tool { } mousemove(e) { - var p = this.viewer.screenToModel(e); + let p = this.viewer.screenToModel(e); if (this.circle != null) { - var r = distance(p.x, p.y, this.circle.c.x, this.circle.c.y); + let r = distance(p.x, p.y, this.circle.c.x, this.circle.c.y); this.circle.r.set(r); if (!Tool.dumbMode(e)) { this.solveRequest(true); diff --git a/web/app/sketcher/tools/dim.js b/web/app/sketcher/tools/dim.js index 17499faf..454a8bc8 100644 --- a/web/app/sketcher/tools/dim.js +++ b/web/app/sketcher/tools/dim.js @@ -26,7 +26,7 @@ export class AddDimTool extends Tool { } mousemove(e) { - var p = this.viewer.screenToModel(e); + let p = this.viewer.screenToModel(e); this.viewer.snap(p.x, p.y, []); if (this.dim != null) { this.dim.b.x = p.x; @@ -100,8 +100,8 @@ export class AddCircleDimTool extends Tool { } mousemove(e) { - var p = this.viewer.screenToModel(e); - var objects = this.viewer.search(p.x, p.y, DEFAULT_SEARCH_BUFFER, true, false, []).filter(function (o) { + let p = this.viewer.screenToModel(e); + let objects = this.viewer.search(p.x, p.y, DEFAULT_SEARCH_BUFFER, true, false, []).filter(function (o) { return o.TYPE === 'Circle' || o.TYPE === 'Arc'; }); diff --git a/web/app/sketcher/tools/fillet.js b/web/app/sketcher/tools/fillet.js index 8eb26561..45a6a418 100644 --- a/web/app/sketcher/tools/fillet.js +++ b/web/app/sketcher/tools/fillet.js @@ -95,7 +95,7 @@ export class FilletTool extends Tool { } mouseup(e) { - var candi = this.getCandidate(e); + let candi = this.getCandidate(e); if (candi == null) return; const point1 = candi[0]; const point2 = candi[1]; @@ -157,12 +157,12 @@ export class FilletTool extends Tool { } mousemove(e) { - var needRefresh = false; + let needRefresh = false; if (this.viewer.captured.tool.length !== 0) { this.viewer.withdrawAll('tool'); needRefresh = true; } - var candi = this.getCandidate(e); + let candi = this.getCandidate(e); if (candi != null) { this.viewer.capture('tool', [candi[0]], true); needRefresh = true; diff --git a/web/app/sketcher/tools/loop-pick.js b/web/app/sketcher/tools/loop-pick.js index ff3056fb..7598f7f9 100644 --- a/web/app/sketcher/tools/loop-pick.js +++ b/web/app/sketcher/tools/loop-pick.js @@ -80,7 +80,7 @@ export class LoopPickTool extends Tool { cleanLoop(loop) { const points = []; const edges = []; - for (var i = 0; i < loop.length; i++) { + for (let i = 0; i < loop.length; i++) { const a = loop[i]; const b = loop[(i + 1) % loop.length]; if (a.parent == b.parent) { diff --git a/web/app/sketcher/tools/origin.js b/web/app/sketcher/tools/origin.js index 6ac1a233..aa311dc6 100644 --- a/web/app/sketcher/tools/origin.js +++ b/web/app/sketcher/tools/origin.js @@ -15,7 +15,7 @@ export class ReferencePointTool extends Tool { } mousemove(e) { - var p = this.viewer.screenToModel(e); + let p = this.viewer.screenToModel(e); this.viewer.snap(p.x, p.y, []); this.viewer.refresh(); } diff --git a/web/app/utils/graph.js b/web/app/utils/graph.js index 16a34bf8..0adefca8 100644 --- a/web/app/utils/graph.js +++ b/web/app/utils/graph.js @@ -18,10 +18,10 @@ function Graph(data) { Graph.findAllLoops = function(graph, hashCode, equals) { - var loops = []; - var visited = new HashTable(hashCode, equals); + let loops = []; + let visited = new HashTable(hashCode, equals); function step(vertex, comesFrom, path) { - var i; + let i; visited.put(vertex, true); for (i = path.length - 1; i >= 0; --i) { if (equals(vertex, path[i])) { @@ -30,18 +30,18 @@ Graph.findAllLoops = function(graph, hashCode, equals) { } } - var next = graph.connections(vertex); + let next = graph.connections(vertex); path.push(vertex); - var needClone = false; + let needClone = false; for (i = 0; i < next.length; i++) { - var v = next[i]; + let v = next[i]; if (equals(v, comesFrom)) { continue; } - var p = needClone ? path.slice(0) : path; + let p = needClone ? path.slice(0) : path; needClone = true; step(v, vertex, p); } @@ -49,7 +49,7 @@ Graph.findAllLoops = function(graph, hashCode, equals) { } for (i = 0; i < graph.size(); i++) { - var vertex = graph.at(i); + let vertex = graph.at(i); if (visited.get(vertex) !== true) { step(vertex, -1, []); } @@ -58,7 +58,7 @@ Graph.findAllLoops = function(graph, hashCode, equals) { //filter duplicates function sameLoop(a, b) { - var first = a[0]; + let first = a[0]; for (var bShift = 0; bShift < a.length; bShift++) { if (equals(b[bShift], first)) { break; @@ -67,14 +67,14 @@ Graph.findAllLoops = function(graph, hashCode, equals) { if (bShift == a.length) { return false; } - for (var i = 0; i < a.length; i++) { - var bUp = (bShift + i) % a.length; - var bDown = bShift - i; + for (let i = 0; i < a.length; i++) { + let bUp = (bShift + i) % a.length; + let bDown = bShift - i; if (bDown < 0) { bDown = a.length + bDown; } // console.log("up: " + bUp + "; down: " + bDown); - var curr = a[i]; + let curr = a[i]; if ( !equals(curr, b[bUp]) && !equals(curr, b[bDown]) ) { return false; } @@ -82,12 +82,12 @@ Graph.findAllLoops = function(graph, hashCode, equals) { return true; } - var i, duplicates = 0; + let i, duplicates = 0; for (i = 0; i < loops.length; i++) { - var a = loops[i]; + let a = loops[i]; if (a == null) continue; - for (var j = i + 1; j < loops.length; j++) { - var b = loops[j]; + for (let j = i + 1; j < loops.length; j++) { + let b = loops[j]; if (b == null || a.length !== b.length) { continue; } @@ -98,7 +98,7 @@ Graph.findAllLoops = function(graph, hashCode, equals) { } } if (duplicates != 0) { - var filtered = []; + let filtered = []; for (i = 0; i < loops.length; i++) { if (loops[i] != null) filtered.push(loops[i]); } @@ -109,8 +109,8 @@ Graph.findAllLoops = function(graph, hashCode, equals) { }; -var test = function() { - var data = [ +let test = function() { + let data = [ [], [2], [1, 3, 9], @@ -123,12 +123,12 @@ var test = function() { [2, 4] ]; - var graph = new Graph(data); + let graph = new Graph(data); console.log(Graph.findAllLoops(graph)); }; -var test0 = function() { - var data = [ +let test0 = function() { + let data = [ [3, 1], [0, 2, 8], [1, 3, 7, 5], @@ -140,7 +140,7 @@ var test0 = function() { [1, 7] ]; - var graph = new Graph(data); + let graph = new Graph(data); console.log(Graph.findAllLoops(graph)); }; diff --git a/web/app/utils/hashmap.js b/web/app/utils/hashmap.js index d9321551..16a5e699 100644 --- a/web/app/utils/hashmap.js +++ b/web/app/utils/hashmap.js @@ -10,7 +10,7 @@ HashTable.prototype.hash = function(key) { }; HashTable.prototype.get = function(key) { - var entry = this._findEntry(key, this._findBucket(key)); + let entry = this._findEntry(key, this._findBucket(key)); if (entry == null) return null; return entry[1]; }; @@ -23,8 +23,8 @@ HashTable.prototype.put = function(key, value) { }; HashTable.prototype._findBucket = function(key) { - var hash = this.hash(key); - var bucket = this.table[hash]; + let hash = this.hash(key); + let bucket = this.table[hash]; if (bucket === null) { bucket = []; this.table[hash] = bucket; @@ -33,7 +33,7 @@ HashTable.prototype._findBucket = function(key) { }; HashTable.prototype._findEntry = function(key, bucket) { - for (var i = 0; i < bucket.length; i++) { + for (let i = 0; i < bucket.length; i++) { if (this.equalsF(bucket[i][0], key)) { return bucket[i]; } @@ -42,8 +42,8 @@ HashTable.prototype._findEntry = function(key, bucket) { }; HashTable.prototype._put = function(key, value) { - var bucket = this._findBucket(key); - var entry = this._findEntry(key, bucket); + let bucket = this._findBucket(key); + let entry = this._findEntry(key, bucket); if (entry == null) { bucket.push([key, value]); } else { @@ -54,13 +54,13 @@ HashTable.prototype._put = function(key, value) { HashTable.prototype.rebuild = function() { this.size = 0; - var oldTable = this.table; + let oldTable = this.table; this.setTableSize(this.table.length * 2); - for (var i = 0; i < oldTable.length; i++) { - var e = oldTable[i]; + for (let i = 0; i < oldTable.length; i++) { + let e = oldTable[i]; if (e != null) { - for (var j = 0; j < e.length; j++) { - var bucket = e[j]; + for (let j = 0; j < e.length; j++) { + let bucket = e[j]; this._put(bucket[0], bucket[1]); } } @@ -68,7 +68,7 @@ HashTable.prototype.rebuild = function() { }; HashTable.prototype.getKeys = function() { - var keys = []; + let keys = []; this.entries(function(k) { keys.push(k) }); @@ -76,11 +76,11 @@ HashTable.prototype.getKeys = function() { }; HashTable.prototype.entries = function(callback) { - for (var i = 0; i < this.table.length; i++) { - var e = this.table[i]; + for (let i = 0; i < this.table.length; i++) { + let e = this.table[i]; if (e != null) { - for (var j = 0; j < e.length; j++) { - var bucket = e[j]; + for (let j = 0; j < e.length; j++) { + let bucket = e[j]; callback(bucket[0], bucket[1]); } } @@ -89,7 +89,7 @@ HashTable.prototype.entries = function(callback) { HashTable.prototype.setTableSize = function(newSize) { this.table = []; - for (var i = 0; i < newSize; i++) { + for (let i = 0; i < newSize; i++) { this.table[i] = null; } }; @@ -104,7 +104,7 @@ DoubleHelper.prototype.hash = function(v) { }; HashTable.forVector3d = function() { - var doubleHelper = new DoubleHelper(); + let doubleHelper = new DoubleHelper(); function hash(v) { return doubleHelper.hash(v.x) ^ doubleHelper.hash(v.y) ^ doubleHelper.hash(v.z); } @@ -115,7 +115,7 @@ HashTable.forVector3d = function() { }; HashTable.forEdge = function() { - var doubleHelper = new DoubleHelper(); + let doubleHelper = new DoubleHelper(); function hash(v) { return doubleHelper.hash(v[0].x) ^ doubleHelper.hash(v[0].y) ^ doubleHelper.hash(v[0].z) ^doubleHelper.hash(v[1].x) ^ doubleHelper.hash(v[1].y) ^ doubleHelper.hash(v[1].z); @@ -124,17 +124,17 @@ HashTable.forEdge = function() { return a.x === b.x && a.y === b.y && a.z === b.z; } function eq(e1, e2) { - var a1 = e1[0]; - var b1 = e1[1]; - var a2 = e2[0]; - var b2 = e2[1]; + let a1 = e1[0]; + let b1 = e1[1]; + let a2 = e2[0]; + let b2 = e2[1]; return (veq(a1, a2) && veq(b1, b2)) || (veq(a1, b2) && veq(b1, a2)); } return new HashTable(hash, eq); }; HashTable.forVector2d = function() { - var doubleHelper = new DoubleHelper(); + let doubleHelper = new DoubleHelper(); function hash(v) { return doubleHelper.hash(v.x) ^ doubleHelper.hash(v.y) ; } @@ -145,16 +145,16 @@ HashTable.forVector2d = function() { }; HashTable.forDoubleArray = function() { - var doubleHelper = new DoubleHelper(); + let doubleHelper = new DoubleHelper(); function hash(v) { - var hash = 0; - for (var i = 0; i < v.length; i++) { + let hash = 0; + for (let i = 0; i < v.length; i++) { hash ^= v[i]; } return hash; } function eq(a, b) { - for (var i = 0; i < a.length; i++) { + for (let i = 0; i < a.length; i++) { if (a[i] !== b[i]) return false; } return true; diff --git a/web/app/utils/utils.js b/web/app/utils/utils.js index 982b92ed..058142f9 100644 --- a/web/app/utils/utils.js +++ b/web/app/utils/utils.js @@ -1,8 +1,8 @@ export function askNumber(promptText, initValue, promptCallback, resolver) { - var promptValueStr = promptCallback(promptText, initValue); + let promptValueStr = promptCallback(promptText, initValue); if (promptValueStr != null) { - var promptValue = Number(promptValueStr); + let promptValue = Number(promptValueStr); if (promptValue == promptValue) { // check for NaN return promptValue; } else {