makerjs 0.17.6 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,7 +39,7 @@ and limitations under the License.
39
39
  * author: Dan Marshall / Microsoft Corporation
40
40
  * maintainers: Dan Marshall <danmar@microsoft.com>
41
41
  * homepage: https://maker.js.org
42
- * version: 0.17.6
42
+ * version: 0.18.1
43
43
  *
44
44
  * browserify:
45
45
  * license: MIT (http://opensource.org/licenses/MIT)
@@ -471,6 +471,10 @@ var MakerJs;
471
471
  WebWorker: 'worker',
472
472
  Unknown: 'unknown'
473
473
  };
474
+ /**
475
+ * @private
476
+ */
477
+ var EPSILON = Number.EPSILON || Math.pow(2, -52);
474
478
  /**
475
479
  * @private
476
480
  */
@@ -568,28 +572,8 @@ var MakerJs;
568
572
  //optimize for early exit for integers
569
573
  if (n % 1 === 0)
570
574
  return n;
571
- var exp = 1 - String(Math.ceil(1 / accuracy)).length;
572
- //Adapted from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
573
- // If the exp is undefined or zero...
574
- if (typeof exp === 'undefined' || +exp === 0) {
575
- return Math.round(n);
576
- }
577
- n = +n;
578
- exp = +exp;
579
- // If the value is not a number or the exp is not an integer...
580
- if (isNaN(n) || !(typeof exp === 'number' && exp % 1 === 0)) {
581
- return NaN;
582
- }
583
- // If the value is negative...
584
- if (n < 0) {
585
- return -round(-n, accuracy);
586
- }
587
- // Shift
588
- var a = split(n.toString(), 'e');
589
- n = Math.round(+(a[0] + 'e' + (a[1] ? (+a[1] - exp) : -exp)));
590
- // Shift back
591
- a = split(n.toString(), 'e');
592
- return +(a[0] + 'e' + (a[1] ? (+a[1] + exp) : exp));
575
+ var temp = 1 / accuracy;
576
+ return Math.round((n + EPSILON) * temp) / temp;
593
577
  }
594
578
  MakerJs.round = round;
595
579
  /**
@@ -2025,6 +2009,7 @@ var MakerJs;
2025
2009
  for (var _i = 0; _i < arguments.length; _i++) {
2026
2010
  args[_i] = arguments[_i];
2027
2011
  }
2012
+ var _a, _b;
2028
2013
  function getSpan(origin) {
2029
2014
  var startAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 1 : 0]);
2030
2015
  var endAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 0 : 1]);
@@ -2055,10 +2040,10 @@ var MakerJs;
2055
2040
  }
2056
2041
  else {
2057
2042
  //find the 2 potential origins
2058
- var origins = MakerJs.path.intersection(new Circle(pointA, this.radius), new Circle(pointB, this.radius));
2043
+ var intersectionPoints = (_b = (_a = MakerJs.path.intersection(new Circle(pointA, this.radius), new Circle(pointB, this.radius))) === null || _a === void 0 ? void 0 : _a.intersectionPoints) !== null && _b !== void 0 ? _b : [pointA, pointB];
2059
2044
  var spans = [];
2060
- for (var i = origins.intersectionPoints.length; i--;) {
2061
- span = getSpan(origins.intersectionPoints[i]);
2045
+ for (var i = intersectionPoints.length; i--;) {
2046
+ span = getSpan(intersectionPoints[i]);
2062
2047
  //insert sorted by size ascending
2063
2048
  if (spans.length == 0 || span.size > spans[0].size) {
2064
2049
  spans.push(span);
@@ -2085,8 +2070,8 @@ var MakerJs;
2085
2070
  //from 3 points
2086
2071
  Circle.apply(this, args);
2087
2072
  var angles = [];
2088
- for (var i = 0; i < 3; i++) {
2089
- angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[i]));
2073
+ for (var i_1 = 0; i_1 < 3; i_1++) {
2074
+ angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[i_1]));
2090
2075
  }
2091
2076
  this.startAngle = angles[0];
2092
2077
  this.endAngle = angles[2];
@@ -10318,6 +10303,6 @@ var MakerJs;
10318
10303
  ];
10319
10304
  })(models = MakerJs.models || (MakerJs.models = {}));
10320
10305
  })(MakerJs || (MakerJs = {}));
10321
- MakerJs.version = "0.17.6";
10306
+ MakerJs.version = "0.18.1";
10322
10307
 
10323
10308
  },{"clone":2,"graham_scan":3,"kdbush":4}]},{},[]);
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Type definitions for Maker.js 0.17.6
1
+ // Type definitions for Maker.js 0.18.1
2
2
  // Project: https://github.com/Microsoft/maker.js
3
3
  // Definitions by: Dan Marshall <https://github.com/danmarshall>
4
4
  // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
package/dist/index.js CHANGED
@@ -54,6 +54,10 @@ var MakerJs;
54
54
  WebWorker: 'worker',
55
55
  Unknown: 'unknown'
56
56
  };
57
+ /**
58
+ * @private
59
+ */
60
+ var EPSILON = Number.EPSILON || Math.pow(2, -52);
57
61
  /**
58
62
  * @private
59
63
  */
@@ -151,28 +155,8 @@ var MakerJs;
151
155
  //optimize for early exit for integers
152
156
  if (n % 1 === 0)
153
157
  return n;
154
- var exp = 1 - String(Math.ceil(1 / accuracy)).length;
155
- //Adapted from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
156
- // If the exp is undefined or zero...
157
- if (typeof exp === 'undefined' || +exp === 0) {
158
- return Math.round(n);
159
- }
160
- n = +n;
161
- exp = +exp;
162
- // If the value is not a number or the exp is not an integer...
163
- if (isNaN(n) || !(typeof exp === 'number' && exp % 1 === 0)) {
164
- return NaN;
165
- }
166
- // If the value is negative...
167
- if (n < 0) {
168
- return -round(-n, accuracy);
169
- }
170
- // Shift
171
- var a = split(n.toString(), 'e');
172
- n = Math.round(+(a[0] + 'e' + (a[1] ? (+a[1] - exp) : -exp)));
173
- // Shift back
174
- a = split(n.toString(), 'e');
175
- return +(a[0] + 'e' + (a[1] ? (+a[1] + exp) : exp));
158
+ var temp = 1 / accuracy;
159
+ return Math.round((n + EPSILON) * temp) / temp;
176
160
  }
177
161
  MakerJs.round = round;
178
162
  /**
@@ -1608,6 +1592,7 @@ var MakerJs;
1608
1592
  for (var _i = 0; _i < arguments.length; _i++) {
1609
1593
  args[_i] = arguments[_i];
1610
1594
  }
1595
+ var _a, _b;
1611
1596
  function getSpan(origin) {
1612
1597
  var startAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 1 : 0]);
1613
1598
  var endAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 0 : 1]);
@@ -1638,10 +1623,10 @@ var MakerJs;
1638
1623
  }
1639
1624
  else {
1640
1625
  //find the 2 potential origins
1641
- var origins = MakerJs.path.intersection(new Circle(pointA, this.radius), new Circle(pointB, this.radius));
1626
+ var intersectionPoints = (_b = (_a = MakerJs.path.intersection(new Circle(pointA, this.radius), new Circle(pointB, this.radius))) === null || _a === void 0 ? void 0 : _a.intersectionPoints) !== null && _b !== void 0 ? _b : [pointA, pointB];
1642
1627
  var spans = [];
1643
- for (var i = origins.intersectionPoints.length; i--;) {
1644
- span = getSpan(origins.intersectionPoints[i]);
1628
+ for (var i = intersectionPoints.length; i--;) {
1629
+ span = getSpan(intersectionPoints[i]);
1645
1630
  //insert sorted by size ascending
1646
1631
  if (spans.length == 0 || span.size > spans[0].size) {
1647
1632
  spans.push(span);
@@ -1668,8 +1653,8 @@ var MakerJs;
1668
1653
  //from 3 points
1669
1654
  Circle.apply(this, args);
1670
1655
  var angles = [];
1671
- for (var i = 0; i < 3; i++) {
1672
- angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[i]));
1656
+ for (var i_1 = 0; i_1 < 3; i_1++) {
1657
+ angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[i_1]));
1673
1658
  }
1674
1659
  this.startAngle = angles[0];
1675
1660
  this.endAngle = angles[2];
@@ -9901,5 +9886,5 @@ var MakerJs;
9901
9886
  ];
9902
9887
  })(models = MakerJs.models || (MakerJs.models = {}));
9903
9888
  })(MakerJs || (MakerJs = {}));
9904
- MakerJs.version = "0.17.6";
9889
+ MakerJs.version = "0.18.1";
9905
9890
  var Bezier = require('bezier-js');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makerjs",
3
- "version": "0.17.6",
3
+ "version": "0.18.1",
4
4
  "description": "Maker.js, a Microsoft Garage project, is a JavaScript library for creating and sharing modular line drawings for CNC and laser cutters.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",