makerjs 0.18.0 → 0.18.2
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.
- package/dist/browser.maker.js +82 -34
- package/dist/index.d.ts +7 -2
- package/dist/index.js +75 -28
- package/package.json +2 -2
package/dist/browser.maker.js
CHANGED
|
@@ -39,12 +39,12 @@ 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.18.
|
|
42
|
+
* version: 0.18.2
|
|
43
43
|
*
|
|
44
44
|
* browserify:
|
|
45
45
|
* license: MIT (http://opensource.org/licenses/MIT)
|
|
46
46
|
* author: James Halliday <mail@substack.net>
|
|
47
|
-
* version: 17.0.
|
|
47
|
+
* version: 17.0.1
|
|
48
48
|
*
|
|
49
49
|
* clone:
|
|
50
50
|
* license: MIT (http://opensource.org/licenses/MIT)
|
|
@@ -54,9 +54,9 @@ and limitations under the License.
|
|
|
54
54
|
*
|
|
55
55
|
* graham_scan:
|
|
56
56
|
* license: MIT (http://opensource.org/licenses/MIT)
|
|
57
|
-
* author: Brian Barnett <
|
|
57
|
+
* author: Brian Barnett <me@brianbar.net>
|
|
58
58
|
* homepage: http://brian3kb.github.io/graham_scan_js
|
|
59
|
-
* version: 1.0.
|
|
59
|
+
* version: 1.0.5
|
|
60
60
|
*
|
|
61
61
|
* kdbush:
|
|
62
62
|
* license: ISC (http://opensource.org/licenses/ISC)
|
|
@@ -242,9 +242,10 @@ if (typeof module === 'object' && module.exports) {
|
|
|
242
242
|
* Graham's Scan Convex Hull Algorithm
|
|
243
243
|
* @desc An implementation of the Graham's Scan Convex Hull algorithm in JavaScript.
|
|
244
244
|
* @author Brian Barnett, brian@3kb.co.uk, http://brianbar.net/ || http://3kb.co.uk/
|
|
245
|
-
* @version 1.0.
|
|
245
|
+
* @version 1.0.5
|
|
246
246
|
*/
|
|
247
|
-
function ConvexHullGrahamScan(){this.anchorPoint=void 0,this.reverse=!1,this.points=[]}ConvexHullGrahamScan.prototype={constructor:ConvexHullGrahamScan,Point:function(
|
|
247
|
+
function ConvexHullGrahamScan(){this.anchorPoint=void 0,this.reverse=!1,this.points=[]}ConvexHullGrahamScan.prototype={constructor:ConvexHullGrahamScan,Point:function(a,b){this.x=a,this.y=b},_findPolarAngle:function(a,b){var c,d,e=57.295779513082;if(!a||!b)return 0;if(c=b.x-a.x,d=b.y-a.y,0==c&&0==d)return 0;var f=Math.atan2(d,c)*e;return this.reverse?0>=f&&(f+=360):f>=0&&(f+=360),f},addPoint:function(a,b){var c=void 0===this.anchorPoint||this.anchorPoint.y>b||this.anchorPoint.y===b&&this.anchorPoint.x>a;c?(void 0!==this.anchorPoint&&this.points.push(new this.Point(this.anchorPoint.x,this.anchorPoint.y)),this.anchorPoint=new this.Point(a,b)):this.points.push(new this.Point(a,b))},_sortPoints:function(){var a=this;return this.points.sort(function(b,c){var d=a._findPolarAngle(a.anchorPoint,b),e=a._findPolarAngle(a.anchorPoint,c);return e>d?-1:d>e?1:0})},_checkPoints:function(a,b,c){var d,e=this._findPolarAngle(a,b),f=this._findPolarAngle(a,c);return e>f?(d=e-f,!(d>180)):f>e?(d=f-e,d>180):!0},getHull:function(){var a,b,c=[];if(this.reverse=this.points.every(function(a){return a.x<0&&a.y<0}),a=this._sortPoints(),b=a.length,3>b)return a.unshift(this.anchorPoint),a;for(c.push(a.shift(),a.shift());;){var d,e,f;if(c.push(a.shift()),d=c[c.length-3],e=c[c.length-2],f=c[c.length-1],this._checkPoints(d,e,f)&&c.splice(c.length-2,1),0==a.length){if(b==c.length){var g=this.anchorPoint;return c=c.filter(function(a){return!!a}),c.some(function(a){return a.x==g.x&&a.y==g.y})||c.unshift(this.anchorPoint),c}a=c,b=a.length,c=[],c.push(a.shift(),a.shift())}}}},"function"==typeof define&&define.amd&&define(function(){return ConvexHullGrahamScan}),"undefined"!=typeof module&&(module.exports=ConvexHullGrahamScan);
|
|
248
|
+
|
|
248
249
|
},{}],4:[function(require,module,exports){
|
|
249
250
|
(function (global, factory) {
|
|
250
251
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
@@ -2009,6 +2010,7 @@ var MakerJs;
|
|
|
2009
2010
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2010
2011
|
args[_i] = arguments[_i];
|
|
2011
2012
|
}
|
|
2013
|
+
var _a, _b;
|
|
2012
2014
|
function getSpan(origin) {
|
|
2013
2015
|
var startAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 1 : 0]);
|
|
2014
2016
|
var endAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 0 : 1]);
|
|
@@ -2039,10 +2041,10 @@ var MakerJs;
|
|
|
2039
2041
|
}
|
|
2040
2042
|
else {
|
|
2041
2043
|
//find the 2 potential origins
|
|
2042
|
-
var
|
|
2044
|
+
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];
|
|
2043
2045
|
var spans = [];
|
|
2044
|
-
for (var i =
|
|
2045
|
-
span = getSpan(
|
|
2046
|
+
for (var i = intersectionPoints.length; i--;) {
|
|
2047
|
+
span = getSpan(intersectionPoints[i]);
|
|
2046
2048
|
//insert sorted by size ascending
|
|
2047
2049
|
if (spans.length == 0 || span.size > spans[0].size) {
|
|
2048
2050
|
spans.push(span);
|
|
@@ -2069,8 +2071,8 @@ var MakerJs;
|
|
|
2069
2071
|
//from 3 points
|
|
2070
2072
|
Circle.apply(this, args);
|
|
2071
2073
|
var angles = [];
|
|
2072
|
-
for (var
|
|
2073
|
-
angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[
|
|
2074
|
+
for (var i_1 = 0; i_1 < 3; i_1++) {
|
|
2075
|
+
angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[i_1]));
|
|
2074
2076
|
}
|
|
2075
2077
|
this.startAngle = angles[0];
|
|
2076
2078
|
this.endAngle = angles[2];
|
|
@@ -2673,7 +2675,7 @@ var MakerJs;
|
|
|
2673
2675
|
}
|
|
2674
2676
|
if (modelToDistort.type === MakerJs.models.BezierCurve.typeName) {
|
|
2675
2677
|
var b = modelToDistort;
|
|
2676
|
-
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true });
|
|
2678
|
+
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true, pointMatchingDistance: bezierAccuracy });
|
|
2677
2679
|
var _loop_1 = function (layer_1) {
|
|
2678
2680
|
var pathArray = bezierPartsByLayer[layer_1];
|
|
2679
2681
|
pathArray.forEach(function (p, i) {
|
|
@@ -4593,7 +4595,7 @@ var MakerJs;
|
|
|
4593
4595
|
if (m) {
|
|
4594
4596
|
return augment(m);
|
|
4595
4597
|
}
|
|
4596
|
-
return
|
|
4598
|
+
return null;
|
|
4597
4599
|
}
|
|
4598
4600
|
measure.modelExtents = modelExtents;
|
|
4599
4601
|
/**
|
|
@@ -5028,6 +5030,12 @@ var MakerJs;
|
|
|
5028
5030
|
};
|
|
5029
5031
|
}
|
|
5030
5032
|
}
|
|
5033
|
+
function lineTypeLayerOptions(layer) {
|
|
5034
|
+
if (opts.layerOptions && opts.layerOptions[layer] && opts.layerOptions[layer].lineType) {
|
|
5035
|
+
return opts.layerOptions[layer].lineType;
|
|
5036
|
+
}
|
|
5037
|
+
return "CONTINUOUS";
|
|
5038
|
+
}
|
|
5031
5039
|
function defaultLayer(pathContext, parentLayer) {
|
|
5032
5040
|
var layerId = (pathContext && pathContext.layer) || parentLayer || '0';
|
|
5033
5041
|
if (layerIds.indexOf(layerId) < 0) {
|
|
@@ -5037,9 +5045,10 @@ var MakerJs;
|
|
|
5037
5045
|
}
|
|
5038
5046
|
var map = {};
|
|
5039
5047
|
map[MakerJs.pathType.Line] = function (line, offset, layer) {
|
|
5048
|
+
var layerId = defaultLayer(line, layer);
|
|
5040
5049
|
var lineEntity = {
|
|
5041
5050
|
type: "LINE",
|
|
5042
|
-
layer:
|
|
5051
|
+
layer: layerId,
|
|
5043
5052
|
vertices: [
|
|
5044
5053
|
{
|
|
5045
5054
|
x: MakerJs.round(line.origin[0] + offset[0], opts.accuracy),
|
|
@@ -5051,24 +5060,28 @@ var MakerJs;
|
|
|
5051
5060
|
}
|
|
5052
5061
|
]
|
|
5053
5062
|
};
|
|
5063
|
+
lineEntity.lineType = lineTypeLayerOptions(layerId);
|
|
5054
5064
|
return lineEntity;
|
|
5055
5065
|
};
|
|
5056
5066
|
map[MakerJs.pathType.Circle] = function (circle, offset, layer) {
|
|
5067
|
+
var layerId = defaultLayer(circle, layer);
|
|
5057
5068
|
var circleEntity = {
|
|
5058
5069
|
type: "CIRCLE",
|
|
5059
|
-
layer:
|
|
5070
|
+
layer: layerId,
|
|
5060
5071
|
center: {
|
|
5061
5072
|
x: MakerJs.round(circle.origin[0] + offset[0], opts.accuracy),
|
|
5062
5073
|
y: MakerJs.round(circle.origin[1] + offset[1], opts.accuracy)
|
|
5063
5074
|
},
|
|
5064
5075
|
radius: MakerJs.round(circle.radius, opts.accuracy)
|
|
5065
5076
|
};
|
|
5077
|
+
circleEntity.lineType = lineTypeLayerOptions(layerId);
|
|
5066
5078
|
return circleEntity;
|
|
5067
5079
|
};
|
|
5068
5080
|
map[MakerJs.pathType.Arc] = function (arc, offset, layer) {
|
|
5081
|
+
var layerId = defaultLayer(arc, layer);
|
|
5069
5082
|
var arcEntity = {
|
|
5070
5083
|
type: "ARC",
|
|
5071
|
-
layer:
|
|
5084
|
+
layer: layerId,
|
|
5072
5085
|
center: {
|
|
5073
5086
|
x: MakerJs.round(arc.origin[0] + offset[0], opts.accuracy),
|
|
5074
5087
|
y: MakerJs.round(arc.origin[1] + offset[1], opts.accuracy)
|
|
@@ -5077,6 +5090,7 @@ var MakerJs;
|
|
|
5077
5090
|
startAngle: MakerJs.round(arc.startAngle, opts.accuracy),
|
|
5078
5091
|
endAngle: MakerJs.round(arc.endAngle, opts.accuracy)
|
|
5079
5092
|
};
|
|
5093
|
+
arcEntity.lineType = lineTypeLayerOptions(layerId);
|
|
5080
5094
|
return arcEntity;
|
|
5081
5095
|
};
|
|
5082
5096
|
//TODO - handle scenario if any bezier seeds get passed
|
|
@@ -5098,6 +5112,7 @@ var MakerJs;
|
|
|
5098
5112
|
shape: c.chain.endless,
|
|
5099
5113
|
vertices: []
|
|
5100
5114
|
};
|
|
5115
|
+
polylineEntity.lineType = lineTypeLayerOptions(polylineEntity.layer);
|
|
5101
5116
|
c.chain.links.forEach(function (link, i) {
|
|
5102
5117
|
var bulge;
|
|
5103
5118
|
if (link.walkedPath.pathContext.type === MakerJs.pathType.Arc) {
|
|
@@ -5139,15 +5154,31 @@ var MakerJs;
|
|
|
5139
5154
|
name: layerId,
|
|
5140
5155
|
color: layerColor
|
|
5141
5156
|
};
|
|
5157
|
+
layerEntity.lineType = lineTypeLayerOptions(layerId);
|
|
5142
5158
|
return layerEntity;
|
|
5143
5159
|
}
|
|
5144
5160
|
function lineTypesOut() {
|
|
5161
|
+
// Dash pattern convention: positive = drawn segment, negative = gap, 0 can be dot.
|
|
5162
|
+
// patternLength is sum of absolute values.
|
|
5145
5163
|
var lineStyleTable = {
|
|
5146
5164
|
lineTypes: {
|
|
5147
5165
|
"CONTINUOUS": {
|
|
5148
5166
|
name: "CONTINUOUS",
|
|
5149
5167
|
description: "______",
|
|
5150
|
-
patternLength: 0
|
|
5168
|
+
patternLength: 0,
|
|
5169
|
+
elements: []
|
|
5170
|
+
},
|
|
5171
|
+
"DASHED": {
|
|
5172
|
+
name: "DASHED",
|
|
5173
|
+
description: "_ _ _ ",
|
|
5174
|
+
elements: [5, -2.5],
|
|
5175
|
+
patternLength: 7.5
|
|
5176
|
+
},
|
|
5177
|
+
"DOTTED": {
|
|
5178
|
+
name: "DOTTED",
|
|
5179
|
+
description: ". . . ",
|
|
5180
|
+
elements: [0.5, -1.0],
|
|
5181
|
+
patternLength: 1.5
|
|
5151
5182
|
}
|
|
5152
5183
|
}
|
|
5153
5184
|
};
|
|
@@ -5239,15 +5270,27 @@ var MakerJs;
|
|
|
5239
5270
|
}
|
|
5240
5271
|
dxf.push.apply(dxf, values);
|
|
5241
5272
|
}
|
|
5273
|
+
function appendLineType(entity) {
|
|
5274
|
+
var lt = entity.lineType;
|
|
5275
|
+
if (lt) {
|
|
5276
|
+
append("6", lt);
|
|
5277
|
+
}
|
|
5278
|
+
}
|
|
5242
5279
|
var map = {};
|
|
5243
5280
|
map["LINE"] = function (line) {
|
|
5244
|
-
append("0", "LINE", "8", line.layer
|
|
5281
|
+
append("0", "LINE", "8", line.layer);
|
|
5282
|
+
appendLineType(line);
|
|
5283
|
+
append("10", line.vertices[0].x, "20", line.vertices[0].y, "11", line.vertices[1].x, "21", line.vertices[1].y);
|
|
5245
5284
|
};
|
|
5246
5285
|
map["CIRCLE"] = function (circle) {
|
|
5247
|
-
append("0", "CIRCLE", "8", circle.layer
|
|
5286
|
+
append("0", "CIRCLE", "8", circle.layer);
|
|
5287
|
+
appendLineType(circle);
|
|
5288
|
+
append("10", circle.center.x, "20", circle.center.y, "40", circle.radius);
|
|
5248
5289
|
};
|
|
5249
5290
|
map["ARC"] = function (arc) {
|
|
5250
|
-
append("0", "ARC", "8", arc.layer
|
|
5291
|
+
append("0", "ARC", "8", arc.layer);
|
|
5292
|
+
appendLineType(arc);
|
|
5293
|
+
append("10", arc.center.x, "20", arc.center.y, "40", arc.radius, "50", arc.startAngle, "51", arc.endAngle);
|
|
5251
5294
|
};
|
|
5252
5295
|
//TODO - handle scenario if any bezier seeds get passed
|
|
5253
5296
|
//map[pathType.BezierSeed]
|
|
@@ -5258,7 +5301,9 @@ var MakerJs;
|
|
|
5258
5301
|
}
|
|
5259
5302
|
};
|
|
5260
5303
|
map["POLYLINE"] = function (polyline) {
|
|
5261
|
-
append("0", "POLYLINE", "8", polyline.layer
|
|
5304
|
+
append("0", "POLYLINE", "8", polyline.layer);
|
|
5305
|
+
appendLineType(polyline);
|
|
5306
|
+
append("66", 1, "70", polyline.shape ? 1 : 0);
|
|
5262
5307
|
polyline.vertices.forEach(function (vertex) { return map["VERTEX"](vertex); });
|
|
5263
5308
|
append("0", "SEQEND");
|
|
5264
5309
|
};
|
|
@@ -5281,11 +5326,14 @@ var MakerJs;
|
|
|
5281
5326
|
table(layersOut);
|
|
5282
5327
|
}
|
|
5283
5328
|
function layerOut(layer) {
|
|
5284
|
-
|
|
5329
|
+
var lt = (layer.lineType || "CONTINUOUS");
|
|
5330
|
+
append("0", "LAYER", "2", layer.name, "70", "0", "62", layer.color, "6", lt);
|
|
5285
5331
|
}
|
|
5286
5332
|
function lineTypeOut(lineType) {
|
|
5333
|
+
var elements = ((lineType.elements) || []);
|
|
5287
5334
|
append("0", "LTYPE", "72", //72 Alignment code; value is always 65, the ASCII code for A
|
|
5288
|
-
"65", "70", "
|
|
5335
|
+
"65", "70", "0", "2", lineType.name, "3", lineType.description, "73", elements.length, "40", lineType.patternLength);
|
|
5336
|
+
elements.forEach(function (e) { return append("49", e); });
|
|
5289
5337
|
}
|
|
5290
5338
|
function lineTypesOut() {
|
|
5291
5339
|
var lineTypeTableName = 'lineType';
|
|
@@ -6436,7 +6484,7 @@ var MakerJs;
|
|
|
6436
6484
|
var beziers;
|
|
6437
6485
|
if (opts.unifyBeziers) {
|
|
6438
6486
|
beziers = getBezierModels(modelContext);
|
|
6439
|
-
swapBezierPathsWithSeeds(beziers, true);
|
|
6487
|
+
swapBezierPathsWithSeeds(beziers, true, opts.pointMatchingDistance);
|
|
6440
6488
|
}
|
|
6441
6489
|
model.walk(modelContext, walkOptions);
|
|
6442
6490
|
var _loop_3 = function (layer_2) {
|
|
@@ -6473,7 +6521,7 @@ var MakerJs;
|
|
|
6473
6521
|
_loop_3(layer_2);
|
|
6474
6522
|
}
|
|
6475
6523
|
if (beziers) {
|
|
6476
|
-
swapBezierPathsWithSeeds(beziers, false);
|
|
6524
|
+
swapBezierPathsWithSeeds(beziers, false, opts.pointMatchingDistance);
|
|
6477
6525
|
}
|
|
6478
6526
|
if (opts.byLayers) {
|
|
6479
6527
|
return chainsByLayer;
|
|
@@ -6570,7 +6618,7 @@ var MakerJs;
|
|
|
6570
6618
|
/**
|
|
6571
6619
|
* @private
|
|
6572
6620
|
*/
|
|
6573
|
-
function swapBezierPathsWithSeeds(beziers, swap) {
|
|
6621
|
+
function swapBezierPathsWithSeeds(beziers, swap, pointMatchingDistance) {
|
|
6574
6622
|
var tempKey = 'tempPaths';
|
|
6575
6623
|
var tempLayerKey = 'tempLayer';
|
|
6576
6624
|
beziers.forEach(function (wm) {
|
|
@@ -6582,7 +6630,7 @@ var MakerJs;
|
|
|
6582
6630
|
b.layer = wm.layer;
|
|
6583
6631
|
}
|
|
6584
6632
|
//use seeds as path, hide the arc paths from findChains()
|
|
6585
|
-
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true });
|
|
6633
|
+
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true, pointMatchingDistance: pointMatchingDistance });
|
|
6586
6634
|
for (var layer in bezierPartsByLayer) {
|
|
6587
6635
|
var bezierSeeds = bezierPartsByLayer[layer];
|
|
6588
6636
|
if (bezierSeeds.length > 0) {
|
|
@@ -9001,7 +9049,7 @@ var MakerJs;
|
|
|
9001
9049
|
/**
|
|
9002
9050
|
* @private
|
|
9003
9051
|
*/
|
|
9004
|
-
function getActualBezierRange(curve, arc, endpoints, offset) {
|
|
9052
|
+
function getActualBezierRange(curve, arc, endpoints, offset, pointMatchingDistance) {
|
|
9005
9053
|
var b = getScratch(curve.seed);
|
|
9006
9054
|
var tPoints = [arc.bezierData.startT, arc.bezierData.endT].map(function (t) { return new TPoint(b, t, offset); });
|
|
9007
9055
|
var ends = endpoints.slice();
|
|
@@ -9010,7 +9058,7 @@ var MakerJs;
|
|
|
9010
9058
|
if (endpointDistancetoStart[0] > endpointDistancetoStart[1])
|
|
9011
9059
|
ends.reverse();
|
|
9012
9060
|
for (var i = 2; i--;) {
|
|
9013
|
-
if (!MakerJs.measure.isPointEqual(ends[i], tPoints[i].point)) {
|
|
9061
|
+
if (!MakerJs.measure.isPointEqual(ends[i], tPoints[i].point, pointMatchingDistance)) {
|
|
9014
9062
|
return null;
|
|
9015
9063
|
}
|
|
9016
9064
|
}
|
|
@@ -9019,13 +9067,13 @@ var MakerJs;
|
|
|
9019
9067
|
/**
|
|
9020
9068
|
* @private
|
|
9021
9069
|
*/
|
|
9022
|
-
function getChainBezierRange(curve, c, layer, addToLayer) {
|
|
9070
|
+
function getChainBezierRange(curve, c, layer, addToLayer, pointMatchingDistance) {
|
|
9023
9071
|
var endLinks = [c.links[0], c.links[c.links.length - 1]];
|
|
9024
9072
|
if (endLinks[0].walkedPath.pathContext.bezierData.startT > endLinks[1].walkedPath.pathContext.bezierData.startT) {
|
|
9025
9073
|
MakerJs.chain.reverse(c);
|
|
9026
9074
|
endLinks.reverse();
|
|
9027
9075
|
}
|
|
9028
|
-
var actualBezierRanges = endLinks.map(function (endLink) { return getActualBezierRange(curve, endLink.walkedPath.pathContext, endLink.endPoints, endLink.walkedPath.offset); });
|
|
9076
|
+
var actualBezierRanges = endLinks.map(function (endLink) { return getActualBezierRange(curve, endLink.walkedPath.pathContext, endLink.endPoints, endLink.walkedPath.offset, pointMatchingDistance); });
|
|
9029
9077
|
var result = {
|
|
9030
9078
|
startT: actualBezierRanges[0] ? actualBezierRanges[0].startT : null,
|
|
9031
9079
|
endT: actualBezierRanges[1] ? actualBezierRanges[1].endT : null
|
|
@@ -9187,7 +9235,7 @@ var MakerJs;
|
|
|
9187
9235
|
};
|
|
9188
9236
|
MakerJs.model.findChains(curve, function (chains, loose, layer) {
|
|
9189
9237
|
chains.forEach(function (c) {
|
|
9190
|
-
var range = getChainBezierRange(curve, c, layer, addToLayer);
|
|
9238
|
+
var range = getChainBezierRange(curve, c, layer, addToLayer, options.pointMatchingDistance);
|
|
9191
9239
|
if (range) {
|
|
9192
9240
|
var b = getScratch(curve.seed);
|
|
9193
9241
|
var piece = b.split(range.startT, range.endT);
|
|
@@ -9202,7 +9250,7 @@ var MakerJs;
|
|
|
9202
9250
|
//bezier is linear
|
|
9203
9251
|
return addToLayer(wp.pathContext, layer, true);
|
|
9204
9252
|
}
|
|
9205
|
-
var range = getActualBezierRange(curve, wp.pathContext, MakerJs.point.fromPathEnds(wp.pathContext), wp.offset);
|
|
9253
|
+
var range = getActualBezierRange(curve, wp.pathContext, MakerJs.point.fromPathEnds(wp.pathContext), wp.offset, options.pointMatchingDistance);
|
|
9206
9254
|
if (range) {
|
|
9207
9255
|
var b = getScratch(curve.seed);
|
|
9208
9256
|
var piece = b.split(range.startT, range.endT);
|
|
@@ -10302,6 +10350,6 @@ var MakerJs;
|
|
|
10302
10350
|
];
|
|
10303
10351
|
})(models = MakerJs.models || (MakerJs.models = {}));
|
|
10304
10352
|
})(MakerJs || (MakerJs = {}));
|
|
10305
|
-
MakerJs.version = "0.18.
|
|
10353
|
+
MakerJs.version = "0.18.2";
|
|
10306
10354
|
|
|
10307
10355
|
},{"clone":2,"graham_scan":3,"kdbush":4}]},{},[]);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Type definitions for Maker.js 0.18.
|
|
1
|
+
// Type definitions for Maker.js 0.18.2
|
|
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
|
|
@@ -2584,7 +2584,7 @@ declare namespace MakerJs.measure {
|
|
|
2584
2584
|
* @param atlas Optional atlas to save measurements.
|
|
2585
2585
|
* @returns object with low and high points.
|
|
2586
2586
|
*/
|
|
2587
|
-
function modelExtents(modelToMeasure: IModel, atlas?: Atlas): IMeasureWithCenter;
|
|
2587
|
+
function modelExtents(modelToMeasure: IModel, atlas?: Atlas): IMeasureWithCenter | null;
|
|
2588
2588
|
/**
|
|
2589
2589
|
* Augment a measurement - add more properties such as center point, height and width.
|
|
2590
2590
|
*
|
|
@@ -2734,6 +2734,11 @@ declare namespace MakerJs.exporter {
|
|
|
2734
2734
|
* Text size for TEXT entities.
|
|
2735
2735
|
*/
|
|
2736
2736
|
fontSize?: number;
|
|
2737
|
+
/**
|
|
2738
|
+
* DXF linetype name for this layer.
|
|
2739
|
+
* Example: "CONTINUOUS", "DASHED", "DOTTED"
|
|
2740
|
+
*/
|
|
2741
|
+
lineType?: 'CONTINUOUS' | 'DASHED' | 'DOTTED';
|
|
2737
2742
|
}
|
|
2738
2743
|
/**
|
|
2739
2744
|
* DXF rendering options.
|
package/dist/index.js
CHANGED
|
@@ -1592,6 +1592,7 @@ var MakerJs;
|
|
|
1592
1592
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1593
1593
|
args[_i] = arguments[_i];
|
|
1594
1594
|
}
|
|
1595
|
+
var _a, _b;
|
|
1595
1596
|
function getSpan(origin) {
|
|
1596
1597
|
var startAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 1 : 0]);
|
|
1597
1598
|
var endAngle = MakerJs.angle.ofPointInDegrees(origin, args[clockwise ? 0 : 1]);
|
|
@@ -1622,10 +1623,10 @@ var MakerJs;
|
|
|
1622
1623
|
}
|
|
1623
1624
|
else {
|
|
1624
1625
|
//find the 2 potential origins
|
|
1625
|
-
var
|
|
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];
|
|
1626
1627
|
var spans = [];
|
|
1627
|
-
for (var i =
|
|
1628
|
-
span = getSpan(
|
|
1628
|
+
for (var i = intersectionPoints.length; i--;) {
|
|
1629
|
+
span = getSpan(intersectionPoints[i]);
|
|
1629
1630
|
//insert sorted by size ascending
|
|
1630
1631
|
if (spans.length == 0 || span.size > spans[0].size) {
|
|
1631
1632
|
spans.push(span);
|
|
@@ -1652,8 +1653,8 @@ var MakerJs;
|
|
|
1652
1653
|
//from 3 points
|
|
1653
1654
|
Circle.apply(this, args);
|
|
1654
1655
|
var angles = [];
|
|
1655
|
-
for (var
|
|
1656
|
-
angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[
|
|
1656
|
+
for (var i_1 = 0; i_1 < 3; i_1++) {
|
|
1657
|
+
angles.push(MakerJs.angle.ofPointInDegrees(this.origin, args[i_1]));
|
|
1657
1658
|
}
|
|
1658
1659
|
this.startAngle = angles[0];
|
|
1659
1660
|
this.endAngle = angles[2];
|
|
@@ -2256,7 +2257,7 @@ var MakerJs;
|
|
|
2256
2257
|
}
|
|
2257
2258
|
if (modelToDistort.type === MakerJs.models.BezierCurve.typeName) {
|
|
2258
2259
|
var b = modelToDistort;
|
|
2259
|
-
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true });
|
|
2260
|
+
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true, pointMatchingDistance: bezierAccuracy });
|
|
2260
2261
|
var _loop_1 = function (layer_1) {
|
|
2261
2262
|
var pathArray = bezierPartsByLayer[layer_1];
|
|
2262
2263
|
pathArray.forEach(function (p, i) {
|
|
@@ -4176,7 +4177,7 @@ var MakerJs;
|
|
|
4176
4177
|
if (m) {
|
|
4177
4178
|
return augment(m);
|
|
4178
4179
|
}
|
|
4179
|
-
return
|
|
4180
|
+
return null;
|
|
4180
4181
|
}
|
|
4181
4182
|
measure.modelExtents = modelExtents;
|
|
4182
4183
|
/**
|
|
@@ -4611,6 +4612,12 @@ var MakerJs;
|
|
|
4611
4612
|
};
|
|
4612
4613
|
}
|
|
4613
4614
|
}
|
|
4615
|
+
function lineTypeLayerOptions(layer) {
|
|
4616
|
+
if (opts.layerOptions && opts.layerOptions[layer] && opts.layerOptions[layer].lineType) {
|
|
4617
|
+
return opts.layerOptions[layer].lineType;
|
|
4618
|
+
}
|
|
4619
|
+
return "CONTINUOUS";
|
|
4620
|
+
}
|
|
4614
4621
|
function defaultLayer(pathContext, parentLayer) {
|
|
4615
4622
|
var layerId = (pathContext && pathContext.layer) || parentLayer || '0';
|
|
4616
4623
|
if (layerIds.indexOf(layerId) < 0) {
|
|
@@ -4620,9 +4627,10 @@ var MakerJs;
|
|
|
4620
4627
|
}
|
|
4621
4628
|
var map = {};
|
|
4622
4629
|
map[MakerJs.pathType.Line] = function (line, offset, layer) {
|
|
4630
|
+
var layerId = defaultLayer(line, layer);
|
|
4623
4631
|
var lineEntity = {
|
|
4624
4632
|
type: "LINE",
|
|
4625
|
-
layer:
|
|
4633
|
+
layer: layerId,
|
|
4626
4634
|
vertices: [
|
|
4627
4635
|
{
|
|
4628
4636
|
x: MakerJs.round(line.origin[0] + offset[0], opts.accuracy),
|
|
@@ -4634,24 +4642,28 @@ var MakerJs;
|
|
|
4634
4642
|
}
|
|
4635
4643
|
]
|
|
4636
4644
|
};
|
|
4645
|
+
lineEntity.lineType = lineTypeLayerOptions(layerId);
|
|
4637
4646
|
return lineEntity;
|
|
4638
4647
|
};
|
|
4639
4648
|
map[MakerJs.pathType.Circle] = function (circle, offset, layer) {
|
|
4649
|
+
var layerId = defaultLayer(circle, layer);
|
|
4640
4650
|
var circleEntity = {
|
|
4641
4651
|
type: "CIRCLE",
|
|
4642
|
-
layer:
|
|
4652
|
+
layer: layerId,
|
|
4643
4653
|
center: {
|
|
4644
4654
|
x: MakerJs.round(circle.origin[0] + offset[0], opts.accuracy),
|
|
4645
4655
|
y: MakerJs.round(circle.origin[1] + offset[1], opts.accuracy)
|
|
4646
4656
|
},
|
|
4647
4657
|
radius: MakerJs.round(circle.radius, opts.accuracy)
|
|
4648
4658
|
};
|
|
4659
|
+
circleEntity.lineType = lineTypeLayerOptions(layerId);
|
|
4649
4660
|
return circleEntity;
|
|
4650
4661
|
};
|
|
4651
4662
|
map[MakerJs.pathType.Arc] = function (arc, offset, layer) {
|
|
4663
|
+
var layerId = defaultLayer(arc, layer);
|
|
4652
4664
|
var arcEntity = {
|
|
4653
4665
|
type: "ARC",
|
|
4654
|
-
layer:
|
|
4666
|
+
layer: layerId,
|
|
4655
4667
|
center: {
|
|
4656
4668
|
x: MakerJs.round(arc.origin[0] + offset[0], opts.accuracy),
|
|
4657
4669
|
y: MakerJs.round(arc.origin[1] + offset[1], opts.accuracy)
|
|
@@ -4660,6 +4672,7 @@ var MakerJs;
|
|
|
4660
4672
|
startAngle: MakerJs.round(arc.startAngle, opts.accuracy),
|
|
4661
4673
|
endAngle: MakerJs.round(arc.endAngle, opts.accuracy)
|
|
4662
4674
|
};
|
|
4675
|
+
arcEntity.lineType = lineTypeLayerOptions(layerId);
|
|
4663
4676
|
return arcEntity;
|
|
4664
4677
|
};
|
|
4665
4678
|
//TODO - handle scenario if any bezier seeds get passed
|
|
@@ -4681,6 +4694,7 @@ var MakerJs;
|
|
|
4681
4694
|
shape: c.chain.endless,
|
|
4682
4695
|
vertices: []
|
|
4683
4696
|
};
|
|
4697
|
+
polylineEntity.lineType = lineTypeLayerOptions(polylineEntity.layer);
|
|
4684
4698
|
c.chain.links.forEach(function (link, i) {
|
|
4685
4699
|
var bulge;
|
|
4686
4700
|
if (link.walkedPath.pathContext.type === MakerJs.pathType.Arc) {
|
|
@@ -4722,15 +4736,31 @@ var MakerJs;
|
|
|
4722
4736
|
name: layerId,
|
|
4723
4737
|
color: layerColor
|
|
4724
4738
|
};
|
|
4739
|
+
layerEntity.lineType = lineTypeLayerOptions(layerId);
|
|
4725
4740
|
return layerEntity;
|
|
4726
4741
|
}
|
|
4727
4742
|
function lineTypesOut() {
|
|
4743
|
+
// Dash pattern convention: positive = drawn segment, negative = gap, 0 can be dot.
|
|
4744
|
+
// patternLength is sum of absolute values.
|
|
4728
4745
|
var lineStyleTable = {
|
|
4729
4746
|
lineTypes: {
|
|
4730
4747
|
"CONTINUOUS": {
|
|
4731
4748
|
name: "CONTINUOUS",
|
|
4732
4749
|
description: "______",
|
|
4733
|
-
patternLength: 0
|
|
4750
|
+
patternLength: 0,
|
|
4751
|
+
elements: []
|
|
4752
|
+
},
|
|
4753
|
+
"DASHED": {
|
|
4754
|
+
name: "DASHED",
|
|
4755
|
+
description: "_ _ _ ",
|
|
4756
|
+
elements: [5, -2.5],
|
|
4757
|
+
patternLength: 7.5
|
|
4758
|
+
},
|
|
4759
|
+
"DOTTED": {
|
|
4760
|
+
name: "DOTTED",
|
|
4761
|
+
description: ". . . ",
|
|
4762
|
+
elements: [0.5, -1.0],
|
|
4763
|
+
patternLength: 1.5
|
|
4734
4764
|
}
|
|
4735
4765
|
}
|
|
4736
4766
|
};
|
|
@@ -4822,15 +4852,27 @@ var MakerJs;
|
|
|
4822
4852
|
}
|
|
4823
4853
|
dxf.push.apply(dxf, values);
|
|
4824
4854
|
}
|
|
4855
|
+
function appendLineType(entity) {
|
|
4856
|
+
var lt = entity.lineType;
|
|
4857
|
+
if (lt) {
|
|
4858
|
+
append("6", lt);
|
|
4859
|
+
}
|
|
4860
|
+
}
|
|
4825
4861
|
var map = {};
|
|
4826
4862
|
map["LINE"] = function (line) {
|
|
4827
|
-
append("0", "LINE", "8", line.layer
|
|
4863
|
+
append("0", "LINE", "8", line.layer);
|
|
4864
|
+
appendLineType(line);
|
|
4865
|
+
append("10", line.vertices[0].x, "20", line.vertices[0].y, "11", line.vertices[1].x, "21", line.vertices[1].y);
|
|
4828
4866
|
};
|
|
4829
4867
|
map["CIRCLE"] = function (circle) {
|
|
4830
|
-
append("0", "CIRCLE", "8", circle.layer
|
|
4868
|
+
append("0", "CIRCLE", "8", circle.layer);
|
|
4869
|
+
appendLineType(circle);
|
|
4870
|
+
append("10", circle.center.x, "20", circle.center.y, "40", circle.radius);
|
|
4831
4871
|
};
|
|
4832
4872
|
map["ARC"] = function (arc) {
|
|
4833
|
-
append("0", "ARC", "8", arc.layer
|
|
4873
|
+
append("0", "ARC", "8", arc.layer);
|
|
4874
|
+
appendLineType(arc);
|
|
4875
|
+
append("10", arc.center.x, "20", arc.center.y, "40", arc.radius, "50", arc.startAngle, "51", arc.endAngle);
|
|
4834
4876
|
};
|
|
4835
4877
|
//TODO - handle scenario if any bezier seeds get passed
|
|
4836
4878
|
//map[pathType.BezierSeed]
|
|
@@ -4841,7 +4883,9 @@ var MakerJs;
|
|
|
4841
4883
|
}
|
|
4842
4884
|
};
|
|
4843
4885
|
map["POLYLINE"] = function (polyline) {
|
|
4844
|
-
append("0", "POLYLINE", "8", polyline.layer
|
|
4886
|
+
append("0", "POLYLINE", "8", polyline.layer);
|
|
4887
|
+
appendLineType(polyline);
|
|
4888
|
+
append("66", 1, "70", polyline.shape ? 1 : 0);
|
|
4845
4889
|
polyline.vertices.forEach(function (vertex) { return map["VERTEX"](vertex); });
|
|
4846
4890
|
append("0", "SEQEND");
|
|
4847
4891
|
};
|
|
@@ -4864,11 +4908,14 @@ var MakerJs;
|
|
|
4864
4908
|
table(layersOut);
|
|
4865
4909
|
}
|
|
4866
4910
|
function layerOut(layer) {
|
|
4867
|
-
|
|
4911
|
+
var lt = (layer.lineType || "CONTINUOUS");
|
|
4912
|
+
append("0", "LAYER", "2", layer.name, "70", "0", "62", layer.color, "6", lt);
|
|
4868
4913
|
}
|
|
4869
4914
|
function lineTypeOut(lineType) {
|
|
4915
|
+
var elements = ((lineType.elements) || []);
|
|
4870
4916
|
append("0", "LTYPE", "72", //72 Alignment code; value is always 65, the ASCII code for A
|
|
4871
|
-
"65", "70", "
|
|
4917
|
+
"65", "70", "0", "2", lineType.name, "3", lineType.description, "73", elements.length, "40", lineType.patternLength);
|
|
4918
|
+
elements.forEach(function (e) { return append("49", e); });
|
|
4872
4919
|
}
|
|
4873
4920
|
function lineTypesOut() {
|
|
4874
4921
|
var lineTypeTableName = 'lineType';
|
|
@@ -6019,7 +6066,7 @@ var MakerJs;
|
|
|
6019
6066
|
var beziers;
|
|
6020
6067
|
if (opts.unifyBeziers) {
|
|
6021
6068
|
beziers = getBezierModels(modelContext);
|
|
6022
|
-
swapBezierPathsWithSeeds(beziers, true);
|
|
6069
|
+
swapBezierPathsWithSeeds(beziers, true, opts.pointMatchingDistance);
|
|
6023
6070
|
}
|
|
6024
6071
|
model.walk(modelContext, walkOptions);
|
|
6025
6072
|
var _loop_3 = function (layer_2) {
|
|
@@ -6056,7 +6103,7 @@ var MakerJs;
|
|
|
6056
6103
|
_loop_3(layer_2);
|
|
6057
6104
|
}
|
|
6058
6105
|
if (beziers) {
|
|
6059
|
-
swapBezierPathsWithSeeds(beziers, false);
|
|
6106
|
+
swapBezierPathsWithSeeds(beziers, false, opts.pointMatchingDistance);
|
|
6060
6107
|
}
|
|
6061
6108
|
if (opts.byLayers) {
|
|
6062
6109
|
return chainsByLayer;
|
|
@@ -6153,7 +6200,7 @@ var MakerJs;
|
|
|
6153
6200
|
/**
|
|
6154
6201
|
* @private
|
|
6155
6202
|
*/
|
|
6156
|
-
function swapBezierPathsWithSeeds(beziers, swap) {
|
|
6203
|
+
function swapBezierPathsWithSeeds(beziers, swap, pointMatchingDistance) {
|
|
6157
6204
|
var tempKey = 'tempPaths';
|
|
6158
6205
|
var tempLayerKey = 'tempLayer';
|
|
6159
6206
|
beziers.forEach(function (wm) {
|
|
@@ -6165,7 +6212,7 @@ var MakerJs;
|
|
|
6165
6212
|
b.layer = wm.layer;
|
|
6166
6213
|
}
|
|
6167
6214
|
//use seeds as path, hide the arc paths from findChains()
|
|
6168
|
-
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true });
|
|
6215
|
+
var bezierPartsByLayer = MakerJs.models.BezierCurve.getBezierSeeds(b, { byLayers: true, pointMatchingDistance: pointMatchingDistance });
|
|
6169
6216
|
for (var layer in bezierPartsByLayer) {
|
|
6170
6217
|
var bezierSeeds = bezierPartsByLayer[layer];
|
|
6171
6218
|
if (bezierSeeds.length > 0) {
|
|
@@ -8584,7 +8631,7 @@ var MakerJs;
|
|
|
8584
8631
|
/**
|
|
8585
8632
|
* @private
|
|
8586
8633
|
*/
|
|
8587
|
-
function getActualBezierRange(curve, arc, endpoints, offset) {
|
|
8634
|
+
function getActualBezierRange(curve, arc, endpoints, offset, pointMatchingDistance) {
|
|
8588
8635
|
var b = getScratch(curve.seed);
|
|
8589
8636
|
var tPoints = [arc.bezierData.startT, arc.bezierData.endT].map(function (t) { return new TPoint(b, t, offset); });
|
|
8590
8637
|
var ends = endpoints.slice();
|
|
@@ -8593,7 +8640,7 @@ var MakerJs;
|
|
|
8593
8640
|
if (endpointDistancetoStart[0] > endpointDistancetoStart[1])
|
|
8594
8641
|
ends.reverse();
|
|
8595
8642
|
for (var i = 2; i--;) {
|
|
8596
|
-
if (!MakerJs.measure.isPointEqual(ends[i], tPoints[i].point)) {
|
|
8643
|
+
if (!MakerJs.measure.isPointEqual(ends[i], tPoints[i].point, pointMatchingDistance)) {
|
|
8597
8644
|
return null;
|
|
8598
8645
|
}
|
|
8599
8646
|
}
|
|
@@ -8602,13 +8649,13 @@ var MakerJs;
|
|
|
8602
8649
|
/**
|
|
8603
8650
|
* @private
|
|
8604
8651
|
*/
|
|
8605
|
-
function getChainBezierRange(curve, c, layer, addToLayer) {
|
|
8652
|
+
function getChainBezierRange(curve, c, layer, addToLayer, pointMatchingDistance) {
|
|
8606
8653
|
var endLinks = [c.links[0], c.links[c.links.length - 1]];
|
|
8607
8654
|
if (endLinks[0].walkedPath.pathContext.bezierData.startT > endLinks[1].walkedPath.pathContext.bezierData.startT) {
|
|
8608
8655
|
MakerJs.chain.reverse(c);
|
|
8609
8656
|
endLinks.reverse();
|
|
8610
8657
|
}
|
|
8611
|
-
var actualBezierRanges = endLinks.map(function (endLink) { return getActualBezierRange(curve, endLink.walkedPath.pathContext, endLink.endPoints, endLink.walkedPath.offset); });
|
|
8658
|
+
var actualBezierRanges = endLinks.map(function (endLink) { return getActualBezierRange(curve, endLink.walkedPath.pathContext, endLink.endPoints, endLink.walkedPath.offset, pointMatchingDistance); });
|
|
8612
8659
|
var result = {
|
|
8613
8660
|
startT: actualBezierRanges[0] ? actualBezierRanges[0].startT : null,
|
|
8614
8661
|
endT: actualBezierRanges[1] ? actualBezierRanges[1].endT : null
|
|
@@ -8770,7 +8817,7 @@ var MakerJs;
|
|
|
8770
8817
|
};
|
|
8771
8818
|
MakerJs.model.findChains(curve, function (chains, loose, layer) {
|
|
8772
8819
|
chains.forEach(function (c) {
|
|
8773
|
-
var range = getChainBezierRange(curve, c, layer, addToLayer);
|
|
8820
|
+
var range = getChainBezierRange(curve, c, layer, addToLayer, options.pointMatchingDistance);
|
|
8774
8821
|
if (range) {
|
|
8775
8822
|
var b = getScratch(curve.seed);
|
|
8776
8823
|
var piece = b.split(range.startT, range.endT);
|
|
@@ -8785,7 +8832,7 @@ var MakerJs;
|
|
|
8785
8832
|
//bezier is linear
|
|
8786
8833
|
return addToLayer(wp.pathContext, layer, true);
|
|
8787
8834
|
}
|
|
8788
|
-
var range = getActualBezierRange(curve, wp.pathContext, MakerJs.point.fromPathEnds(wp.pathContext), wp.offset);
|
|
8835
|
+
var range = getActualBezierRange(curve, wp.pathContext, MakerJs.point.fromPathEnds(wp.pathContext), wp.offset, options.pointMatchingDistance);
|
|
8789
8836
|
if (range) {
|
|
8790
8837
|
var b = getScratch(curve.seed);
|
|
8791
8838
|
var piece = b.split(range.startT, range.endT);
|
|
@@ -9885,5 +9932,5 @@ var MakerJs;
|
|
|
9885
9932
|
];
|
|
9886
9933
|
})(models = MakerJs.models || (MakerJs.models = {}));
|
|
9887
9934
|
})(MakerJs || (MakerJs = {}));
|
|
9888
|
-
MakerJs.version = "0.18.
|
|
9935
|
+
MakerJs.version = "0.18.2";
|
|
9889
9936
|
var Bezier = require('bezier-js');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "makerjs",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.2",
|
|
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",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"@jscad/csg": "^0.3.7",
|
|
98
98
|
"@jscad/stl-serializer": "^0.1.0",
|
|
99
99
|
"@types/graham_scan": "^1.0.28",
|
|
100
|
-
"dxf-parser-typings": "^1.3.
|
|
100
|
+
"dxf-parser-typings": "^1.3.1"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
103
|
"@danmarshall/jscad-typings": "^1.0.0",
|