makerjs 0.17.6 → 0.18.0

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.0
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
  /**
@@ -10318,6 +10302,6 @@ var MakerJs;
10318
10302
  ];
10319
10303
  })(models = MakerJs.models || (MakerJs.models = {}));
10320
10304
  })(MakerJs || (MakerJs = {}));
10321
- MakerJs.version = "0.17.6";
10305
+ MakerJs.version = "0.18.0";
10322
10306
 
10323
10307
  },{"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.0
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
  /**
@@ -9901,5 +9885,5 @@ var MakerJs;
9901
9885
  ];
9902
9886
  })(models = MakerJs.models || (MakerJs.models = {}));
9903
9887
  })(MakerJs || (MakerJs = {}));
9904
- MakerJs.version = "0.17.6";
9888
+ MakerJs.version = "0.18.0";
9905
9889
  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.0",
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",