@mlightcad/geometry-engine 1.0.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.
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/dist/geometry-engine.js +10186 -0
- package/dist/geometry-engine.umd.cjs +4 -0
- package/lib/geometry/AcGeArea2d.d.ts +61 -0
- package/lib/geometry/AcGeArea2d.d.ts.map +1 -0
- package/lib/geometry/AcGeArea2d.js +174 -0
- package/lib/geometry/AcGeArea2d.js.map +1 -0
- package/lib/geometry/AcGeCircArc2d.d.ts +108 -0
- package/lib/geometry/AcGeCircArc2d.d.ts.map +1 -0
- package/lib/geometry/AcGeCircArc2d.js +412 -0
- package/lib/geometry/AcGeCircArc2d.js.map +1 -0
- package/lib/geometry/AcGeCircArc3d.d.ts +138 -0
- package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -0
- package/lib/geometry/AcGeCircArc3d.js +447 -0
- package/lib/geometry/AcGeCircArc3d.js.map +1 -0
- package/lib/geometry/AcGeCurve2d.d.ts +85 -0
- package/lib/geometry/AcGeCurve2d.d.ts.map +1 -0
- package/lib/geometry/AcGeCurve2d.js +213 -0
- package/lib/geometry/AcGeCurve2d.js.map +1 -0
- package/lib/geometry/AcGeCurve3d.d.ts +27 -0
- package/lib/geometry/AcGeCurve3d.d.ts.map +1 -0
- package/lib/geometry/AcGeCurve3d.js +29 -0
- package/lib/geometry/AcGeCurve3d.js.map +1 -0
- package/lib/geometry/AcGeEllipseArc2d.d.ts +105 -0
- package/lib/geometry/AcGeEllipseArc2d.d.ts.map +1 -0
- package/lib/geometry/AcGeEllipseArc2d.js +292 -0
- package/lib/geometry/AcGeEllipseArc2d.js.map +1 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts +141 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -0
- package/lib/geometry/AcGeEllipseArc3d.js +442 -0
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -0
- package/lib/geometry/AcGeLine2d.d.ts +56 -0
- package/lib/geometry/AcGeLine2d.d.ts.map +1 -0
- package/lib/geometry/AcGeLine2d.js +125 -0
- package/lib/geometry/AcGeLine2d.js.map +1 -0
- package/lib/geometry/AcGeLine3d.d.ts +134 -0
- package/lib/geometry/AcGeLine3d.d.ts.map +1 -0
- package/lib/geometry/AcGeLine3d.js +291 -0
- package/lib/geometry/AcGeLine3d.js.map +1 -0
- package/lib/geometry/AcGeLoop2d.d.ts +59 -0
- package/lib/geometry/AcGeLoop2d.d.ts.map +1 -0
- package/lib/geometry/AcGeLoop2d.js +141 -0
- package/lib/geometry/AcGeLoop2d.js.map +1 -0
- package/lib/geometry/AcGePolyline2d.d.ts +90 -0
- package/lib/geometry/AcGePolyline2d.d.ts.map +1 -0
- package/lib/geometry/AcGePolyline2d.js +224 -0
- package/lib/geometry/AcGePolyline2d.js.map +1 -0
- package/lib/geometry/AcGeShape.d.ts +12 -0
- package/lib/geometry/AcGeShape.d.ts.map +1 -0
- package/lib/geometry/AcGeShape.js +22 -0
- package/lib/geometry/AcGeShape.js.map +1 -0
- package/lib/geometry/AcGeShape2d.d.ts +31 -0
- package/lib/geometry/AcGeShape2d.d.ts.map +1 -0
- package/lib/geometry/AcGeShape2d.js +51 -0
- package/lib/geometry/AcGeShape2d.js.map +1 -0
- package/lib/geometry/AcGeShape3d.d.ts +33 -0
- package/lib/geometry/AcGeShape3d.d.ts.map +1 -0
- package/lib/geometry/AcGeShape3d.js +52 -0
- package/lib/geometry/AcGeShape3d.js.map +1 -0
- package/lib/geometry/AcGeSpline3d.d.ts +77 -0
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -0
- package/lib/geometry/AcGeSpline3d.js +221 -0
- package/lib/geometry/AcGeSpline3d.js.map +1 -0
- package/lib/geometry/index.d.ts +13 -0
- package/lib/geometry/index.d.ts.map +1 -0
- package/lib/geometry/index.js +13 -0
- package/lib/geometry/index.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -0
- package/lib/math/AcGeBox2d.d.ts +173 -0
- package/lib/math/AcGeBox2d.d.ts.map +1 -0
- package/lib/math/AcGeBox2d.js +289 -0
- package/lib/math/AcGeBox2d.js.map +1 -0
- package/lib/math/AcGeBox3d.d.ts +195 -0
- package/lib/math/AcGeBox3d.d.ts.map +1 -0
- package/lib/math/AcGeBox3d.js +378 -0
- package/lib/math/AcGeBox3d.js.map +1 -0
- package/lib/math/AcGeEuler.d.ts +133 -0
- package/lib/math/AcGeEuler.d.ts.map +1 -0
- package/lib/math/AcGeEuler.js +358 -0
- package/lib/math/AcGeEuler.js.map +1 -0
- package/lib/math/AcGeMatrix2d.d.ts +203 -0
- package/lib/math/AcGeMatrix2d.d.ts.map +1 -0
- package/lib/math/AcGeMatrix2d.js +393 -0
- package/lib/math/AcGeMatrix2d.js.map +1 -0
- package/lib/math/AcGeMatrix3d.d.ts +279 -0
- package/lib/math/AcGeMatrix3d.d.ts.map +1 -0
- package/lib/math/AcGeMatrix3d.js +1037 -0
- package/lib/math/AcGeMatrix3d.js.map +1 -0
- package/lib/math/AcGePlane.d.ts +131 -0
- package/lib/math/AcGePlane.d.ts.map +1 -0
- package/lib/math/AcGePlane.js +218 -0
- package/lib/math/AcGePlane.js.map +1 -0
- package/lib/math/AcGePoint.d.ts +4 -0
- package/lib/math/AcGePoint.d.ts.map +1 -0
- package/lib/math/AcGePoint.js +2 -0
- package/lib/math/AcGePoint.js.map +1 -0
- package/lib/math/AcGePoint2d.d.ts +17 -0
- package/lib/math/AcGePoint2d.d.ts.map +1 -0
- package/lib/math/AcGePoint2d.js +40 -0
- package/lib/math/AcGePoint2d.js.map +1 -0
- package/lib/math/AcGePoint3d.d.ts +18 -0
- package/lib/math/AcGePoint3d.d.ts.map +1 -0
- package/lib/math/AcGePoint3d.js +43 -0
- package/lib/math/AcGePoint3d.js.map +1 -0
- package/lib/math/AcGeQuaternion.d.ts +230 -0
- package/lib/math/AcGeQuaternion.d.ts.map +1 -0
- package/lib/math/AcGeQuaternion.js +666 -0
- package/lib/math/AcGeQuaternion.js.map +1 -0
- package/lib/math/AcGeVector.d.ts +9 -0
- package/lib/math/AcGeVector.d.ts.map +1 -0
- package/lib/math/AcGeVector.js +2 -0
- package/lib/math/AcGeVector.js.map +1 -0
- package/lib/math/AcGeVector2d.d.ts +361 -0
- package/lib/math/AcGeVector2d.d.ts.map +1 -0
- package/lib/math/AcGeVector2d.js +622 -0
- package/lib/math/AcGeVector2d.js.map +1 -0
- package/lib/math/AcGeVector3d.d.ts +493 -0
- package/lib/math/AcGeVector3d.d.ts.map +1 -0
- package/lib/math/AcGeVector3d.js +868 -0
- package/lib/math/AcGeVector3d.js.map +1 -0
- package/lib/math/index.d.ts +14 -0
- package/lib/math/index.d.ts.map +1 -0
- package/lib/math/index.js +14 -0
- package/lib/math/index.js.map +1 -0
- package/lib/util/AcGeConstants.d.ts +19 -0
- package/lib/util/AcGeConstants.d.ts.map +1 -0
- package/lib/util/AcGeConstants.js +25 -0
- package/lib/util/AcGeConstants.js.map +1 -0
- package/lib/util/AcGeGeometryUtil.d.ts +16 -0
- package/lib/util/AcGeGeometryUtil.d.ts.map +1 -0
- package/lib/util/AcGeGeometryUtil.js +56 -0
- package/lib/util/AcGeGeometryUtil.js.map +1 -0
- package/lib/util/AcGeMathUtil.d.ts +203 -0
- package/lib/util/AcGeMathUtil.d.ts.map +1 -0
- package/lib/util/AcGeMathUtil.js +585 -0
- package/lib/util/AcGeMathUtil.js.map +1 -0
- package/lib/util/AcGeTol.d.ts +91 -0
- package/lib/util/AcGeTol.d.ts.map +1 -0
- package/lib/util/AcGeTol.js +83 -0
- package/lib/util/AcGeTol.js.map +1 -0
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +5 -0
- package/lib/util/index.js.map +1 -0
- package/package.json +42 -0
@@ -0,0 +1,221 @@
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
2
|
+
var extendStatics = function (d, b) {
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
6
|
+
return extendStatics(d, b);
|
7
|
+
};
|
8
|
+
return function (d, b) {
|
9
|
+
if (typeof b !== "function" && b !== null)
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
11
|
+
extendStatics(d, b);
|
12
|
+
function __() { this.constructor = d; }
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
14
|
+
};
|
15
|
+
})();
|
16
|
+
import { AcCmErrors } from '@mlightcad/common';
|
17
|
+
import verb from 'verb-nurbs-web';
|
18
|
+
import { AcGeBox3d, AcGePoint3d } from '../math';
|
19
|
+
import { AcGeCurve3d } from './AcGeCurve3d';
|
20
|
+
var AcGeSpline3d = /** @class */ (function (_super) {
|
21
|
+
__extends(AcGeSpline3d, _super);
|
22
|
+
function AcGeSpline3d(a, b, c) {
|
23
|
+
var _this = _super.call(this) || this;
|
24
|
+
var argsLength = +(a !== undefined) + +(b !== undefined) + +(c !== undefined);
|
25
|
+
if (argsLength != 2 && argsLength != 3) {
|
26
|
+
throw AcCmErrors.ILLEGAL_PARAMETERS;
|
27
|
+
}
|
28
|
+
// For now, we support 3 degree only
|
29
|
+
var degree = 3;
|
30
|
+
_this._closed = false;
|
31
|
+
if (argsLength == 2 && !Array.isArray(b)) {
|
32
|
+
_this._fitPoints = a;
|
33
|
+
_this._knotParameterization = b;
|
34
|
+
var points = _this.toVerbPoints(_this._fitPoints);
|
35
|
+
_this._nurbsCurve = verb.geom.NurbsCurve.byPoints(points, degree);
|
36
|
+
_this._controlPoints = _this.toGePoints(_this._nurbsCurve.controlPoints());
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
_this._controlPoints = a;
|
40
|
+
var points = _this.toVerbPoints(_this._controlPoints);
|
41
|
+
_this._nurbsCurve = verb.geom.NurbsCurve.byKnotsControlPointsWeights(degree, b, points, c);
|
42
|
+
}
|
43
|
+
return _this;
|
44
|
+
}
|
45
|
+
Object.defineProperty(AcGeSpline3d.prototype, "degree", {
|
46
|
+
/**
|
47
|
+
* Degree of the spline to be created.
|
48
|
+
*/
|
49
|
+
get: function () {
|
50
|
+
return this._nurbsCurve.degree();
|
51
|
+
},
|
52
|
+
enumerable: false,
|
53
|
+
configurable: true
|
54
|
+
});
|
55
|
+
Object.defineProperty(AcGeSpline3d.prototype, "knotParameterization", {
|
56
|
+
get: function () {
|
57
|
+
return this._knotParameterization;
|
58
|
+
},
|
59
|
+
enumerable: false,
|
60
|
+
configurable: true
|
61
|
+
});
|
62
|
+
Object.defineProperty(AcGeSpline3d.prototype, "startPoint", {
|
63
|
+
/**
|
64
|
+
* The start point of this spline
|
65
|
+
*/
|
66
|
+
get: function () {
|
67
|
+
var knots = this._nurbsCurve.knots();
|
68
|
+
var degree = this._nurbsCurve.degree();
|
69
|
+
var startParam = knots[degree];
|
70
|
+
var startPoint = this._nurbsCurve.point(startParam);
|
71
|
+
return new AcGePoint3d(startPoint[0], startPoint[1], startPoint[2]);
|
72
|
+
},
|
73
|
+
enumerable: false,
|
74
|
+
configurable: true
|
75
|
+
});
|
76
|
+
Object.defineProperty(AcGeSpline3d.prototype, "endPoint", {
|
77
|
+
/**
|
78
|
+
* The end point of this spline
|
79
|
+
*/
|
80
|
+
get: function () {
|
81
|
+
var knots = this._nurbsCurve.knots();
|
82
|
+
var degree = this._nurbsCurve.degree();
|
83
|
+
var endParam = knots[knots.length - degree - 1];
|
84
|
+
var endPoint = this._nurbsCurve.point(endParam);
|
85
|
+
return new AcGePoint3d(endPoint[0], endPoint[1], endPoint[2]);
|
86
|
+
},
|
87
|
+
enumerable: false,
|
88
|
+
configurable: true
|
89
|
+
});
|
90
|
+
Object.defineProperty(AcGeSpline3d.prototype, "length", {
|
91
|
+
/**
|
92
|
+
* @inheritdoc
|
93
|
+
*/
|
94
|
+
get: function () {
|
95
|
+
return this._nurbsCurve.length();
|
96
|
+
},
|
97
|
+
enumerable: false,
|
98
|
+
configurable: true
|
99
|
+
});
|
100
|
+
/**
|
101
|
+
* Return the value of the control point at position index in the list of control points.
|
102
|
+
* If index is negative or more than the number of control points in the spline, then point
|
103
|
+
* is set to the last control point.
|
104
|
+
* @param index Input index (0 based) of point to get
|
105
|
+
* @returns
|
106
|
+
*/
|
107
|
+
AcGeSpline3d.prototype.getFitPointAt = function (index) {
|
108
|
+
if (!this._fitPoints) {
|
109
|
+
throw new Error('No fit points in this spline');
|
110
|
+
}
|
111
|
+
var length = this._fitPoints.length;
|
112
|
+
var newIndex = index < 0 || index >= length ? length - 1 : index;
|
113
|
+
var point = this._fitPoints[newIndex];
|
114
|
+
return { x: point.x, y: point.y, z: point.z || 0 };
|
115
|
+
};
|
116
|
+
/**
|
117
|
+
* Return the value of the control point at position index in the list of control points.
|
118
|
+
* If index is negative or more than the number of control points in the spline, then point
|
119
|
+
* is set to the last control point.
|
120
|
+
* @param index Input index (0 based) of point to get
|
121
|
+
* @returns
|
122
|
+
*/
|
123
|
+
AcGeSpline3d.prototype.getControlPointAt = function (index) {
|
124
|
+
var length = this._controlPoints.length;
|
125
|
+
var newIndex = index < 0 || index >= length ? length - 1 : index;
|
126
|
+
return this._controlPoints[newIndex];
|
127
|
+
};
|
128
|
+
/**
|
129
|
+
* Divide this spline into the specified nubmer of points
|
130
|
+
* those points as an array of points.
|
131
|
+
* @param numPoints Input the nubmer of points returned
|
132
|
+
* @returns Return an array of point
|
133
|
+
*/
|
134
|
+
AcGeSpline3d.prototype.getPoints = function (numPoints) {
|
135
|
+
if (numPoints === void 0) { numPoints = 100; }
|
136
|
+
var curve = this._nurbsCurve;
|
137
|
+
var points = [];
|
138
|
+
// Get the knot vector from the curve
|
139
|
+
var knots = curve.knots();
|
140
|
+
// The valid parameter range is between knots[degree] and knots[knots.length - degree - 1]
|
141
|
+
var degree = this._nurbsCurve.degree();
|
142
|
+
var startParam = knots[degree];
|
143
|
+
var endParam = knots[knots.length - degree - 1];
|
144
|
+
// Adjust step size for correct range
|
145
|
+
var step = (endParam - startParam) / (numPoints - 1);
|
146
|
+
for (var i = 0; i < numPoints; i++) {
|
147
|
+
// Map t to the correct parameter space
|
148
|
+
var t = startParam + i * step;
|
149
|
+
var point = curve.point(t);
|
150
|
+
// Sample the curve at the mapped parameter t
|
151
|
+
points.push(new AcGePoint3d(point[0], point[1], point[2]));
|
152
|
+
}
|
153
|
+
return points;
|
154
|
+
};
|
155
|
+
AcGeSpline3d.prototype.getCurvePoints = function (curve, count) {
|
156
|
+
var points = [];
|
157
|
+
var knots = curve.knots(); // Get the knot vector from the curve
|
158
|
+
// The valid parameter range is between knots[degree] and knots[knots.length - degree - 1]
|
159
|
+
var startParam = knots[3];
|
160
|
+
var endParam = knots[knots.length - 4];
|
161
|
+
var step = (endParam - startParam) / (count - 1); // Adjust step size for correct range
|
162
|
+
for (var i = 0; i < count; i++) {
|
163
|
+
var t = startParam + i * step; // Map t to the correct parameter space
|
164
|
+
points.push(curve.point(t)); // Sample the curve at the mapped parameter t
|
165
|
+
}
|
166
|
+
return points;
|
167
|
+
};
|
168
|
+
/**
|
169
|
+
* @inheritdoc
|
170
|
+
*/
|
171
|
+
AcGeSpline3d.prototype.calculateBoundingBox = function () {
|
172
|
+
var points = this.getPoints(100);
|
173
|
+
return new AcGeBox3d().setFromPoints(points);
|
174
|
+
};
|
175
|
+
Object.defineProperty(AcGeSpline3d.prototype, "closed", {
|
176
|
+
get: function () {
|
177
|
+
return this._closed;
|
178
|
+
},
|
179
|
+
set: function (value) {
|
180
|
+
this._boundingBoxNeedsUpdate = true;
|
181
|
+
this._closed = value;
|
182
|
+
},
|
183
|
+
enumerable: false,
|
184
|
+
configurable: true
|
185
|
+
});
|
186
|
+
/**
|
187
|
+
* @inheritdoc
|
188
|
+
*/
|
189
|
+
AcGeSpline3d.prototype.transform = function (_matrix) {
|
190
|
+
// TODO: Implement this method
|
191
|
+
this._boundingBoxNeedsUpdate = true;
|
192
|
+
return this;
|
193
|
+
};
|
194
|
+
/**
|
195
|
+
* Convert input points to points in verb-nurbs-web format
|
196
|
+
* @param points Input points to convert
|
197
|
+
* @returns Return converted points
|
198
|
+
*/
|
199
|
+
AcGeSpline3d.prototype.toVerbPoints = function (points) {
|
200
|
+
var verbPoints = new Array(points.length);
|
201
|
+
points.forEach(function (point, index) {
|
202
|
+
verbPoints[index] = [point.x, point.y, point.z || 0];
|
203
|
+
});
|
204
|
+
return verbPoints;
|
205
|
+
};
|
206
|
+
/**
|
207
|
+
* Convert input points to points in geometry engine format
|
208
|
+
* @param points Input points to convert
|
209
|
+
* @returns Return converted points
|
210
|
+
*/
|
211
|
+
AcGeSpline3d.prototype.toGePoints = function (points) {
|
212
|
+
var gePoints = new Array(points.length);
|
213
|
+
points.forEach(function (point, index) {
|
214
|
+
gePoints[index] = { x: point[0], y: point[1], z: point[2] };
|
215
|
+
});
|
216
|
+
return gePoints;
|
217
|
+
};
|
218
|
+
return AcGeSpline3d;
|
219
|
+
}(AcGeCurve3d));
|
220
|
+
export { AcGeSpline3d };
|
221
|
+
//# sourceMappingURL=AcGeSpline3d.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeSpline3d.js","sourceRoot":"","sources":["../../src/geometry/AcGeSpline3d.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
export * from './AcGeArea2d';
|
2
|
+
export * from './AcGeShape2d';
|
3
|
+
export * from './AcGeCurve2d';
|
4
|
+
export * from './AcGeCircArc2d';
|
5
|
+
export * from './AcGeCircArc3d';
|
6
|
+
export * from './AcGeEllipseArc2d';
|
7
|
+
export * from './AcGeEllipseArc3d';
|
8
|
+
export * from './AcGePolyline2d';
|
9
|
+
export * from './AcGeLine2d';
|
10
|
+
export * from './AcGeLine3d';
|
11
|
+
export * from './AcGeLoop2d';
|
12
|
+
export * from './AcGeSpline3d';
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
export * from './AcGeArea2d';
|
2
|
+
export * from './AcGeShape2d';
|
3
|
+
export * from './AcGeCurve2d';
|
4
|
+
export * from './AcGeCircArc2d';
|
5
|
+
export * from './AcGeCircArc3d';
|
6
|
+
export * from './AcGeEllipseArc2d';
|
7
|
+
export * from './AcGeEllipseArc3d';
|
8
|
+
export * from './AcGePolyline2d';
|
9
|
+
export * from './AcGeLine2d';
|
10
|
+
export * from './AcGeLine3d';
|
11
|
+
export * from './AcGeLoop2d';
|
12
|
+
export * from './AcGeSpline3d';
|
13
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA"}
|
package/lib/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA"}
|
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA"}
|
@@ -0,0 +1,173 @@
|
|
1
|
+
import { AcGeVector2d, AcGeVector2dLike } from './AcGeVector2d';
|
2
|
+
/**
|
3
|
+
* The class representing an axis-aligned bounding box (AABB) in 2D space.
|
4
|
+
*/
|
5
|
+
export declare class AcGeBox2d {
|
6
|
+
/**
|
7
|
+
* The lower (x, y) boundary of the box
|
8
|
+
*/
|
9
|
+
min: AcGeVector2d;
|
10
|
+
/**
|
11
|
+
* The upper (x, y) boundary of the box
|
12
|
+
*/
|
13
|
+
max: AcGeVector2d;
|
14
|
+
/**
|
15
|
+
* Create a 2d box bounded by min and max.
|
16
|
+
* @param min (optional) Input 2d vector representing the lower (x, y) boundary of the box.
|
17
|
+
* Set it to ( + Infinity, + Infinity ) if undefined or null provided.
|
18
|
+
* @param max (optional) Input 2d vector representing the upper (x, y) boundary of the box.
|
19
|
+
* Set it to ( - Infinity, - Infinity ) if undefined or null provided.
|
20
|
+
*/
|
21
|
+
constructor(min?: AcGeVector2dLike | undefined, max?: AcGeVector2dLike | undefined);
|
22
|
+
/**
|
23
|
+
* Set the lower and upper (x, y) boundaries of this box.
|
24
|
+
* Please note that this method only copies the values from the given objects.
|
25
|
+
* @param min Input 2d vector representing the lower (x, y) boundary of the box.
|
26
|
+
* @param max Input 2d vector representing the upper (x, y) boundary of the box.
|
27
|
+
* @returns Return this box
|
28
|
+
*/
|
29
|
+
set(min: AcGeVector2dLike, max: AcGeVector2dLike): this;
|
30
|
+
/**
|
31
|
+
* Set the upper and lower bounds of this box to include all of the points in points.
|
32
|
+
* @param points Input one array of 2d vector that the resulting box will contain.
|
33
|
+
* @returns Return this box
|
34
|
+
*/
|
35
|
+
setFromPoints(points: AcGeVector2dLike[]): this;
|
36
|
+
/**
|
37
|
+
* Center this box on center and set this box's width and height to the values specified in size.
|
38
|
+
* @param center Input the desired center position of the box.
|
39
|
+
* @param size Input the desired x and y dimensions of the box.
|
40
|
+
* @returns Return this box
|
41
|
+
*/
|
42
|
+
setFromCenterAndSize(center: AcGeVector2dLike, size: AcGeVector2dLike): this;
|
43
|
+
/**
|
44
|
+
* Return a new 2d box with the same min and max as this one.
|
45
|
+
* @returns Return a new 2d box with the same min and max as this one.
|
46
|
+
*/
|
47
|
+
clone(): AcGeBox2d;
|
48
|
+
/**
|
49
|
+
* Copy the min and max from box to this box.
|
50
|
+
* @param box Input the box to copy from
|
51
|
+
* @returns Return this box
|
52
|
+
*/
|
53
|
+
copy(box: AcGeBox2d): this;
|
54
|
+
/**
|
55
|
+
* Make this box empty.
|
56
|
+
* @returns Return this box
|
57
|
+
*/
|
58
|
+
makeEmpty(): this;
|
59
|
+
/**
|
60
|
+
* Return true if this box includes zero points within its bounds. Note that a box with equal lower
|
61
|
+
* and upper bounds still includes one point, the one both bounds share.
|
62
|
+
* @returns Return true if this box includes zero points within its bounds.
|
63
|
+
*/
|
64
|
+
isEmpty(): boolean;
|
65
|
+
/**
|
66
|
+
* Return the center point of the box as a 2d vector.
|
67
|
+
* @param target Input the result will be copied into this 2d vector.
|
68
|
+
* @returns Return the center point of the box as a 2d vector.
|
69
|
+
*/
|
70
|
+
getCenter(target: AcGeVector2d): AcGeVector2d;
|
71
|
+
/**
|
72
|
+
* Return the width and height of this box.
|
73
|
+
* @param target Input the result will be copied into this 2d vector.
|
74
|
+
* @returns Return this box.
|
75
|
+
*/
|
76
|
+
getSize(target: AcGeVector2d): AcGeVector2d;
|
77
|
+
/**
|
78
|
+
* Center point of this box
|
79
|
+
*/
|
80
|
+
get center(): AcGeVector2d;
|
81
|
+
/**
|
82
|
+
* Return the width, height and depth of this box.
|
83
|
+
*/
|
84
|
+
get size(): AcGeVector2d;
|
85
|
+
/**
|
86
|
+
* Expand the boundaries of this box to include point.
|
87
|
+
* @param point Input one point that should be included in the box.
|
88
|
+
* @returns Return this box
|
89
|
+
*/
|
90
|
+
expandByPoint(point: AcGeVector2dLike): this;
|
91
|
+
/**
|
92
|
+
* Expand this box equilaterally by vector. The width of this box will be expanded by the x component
|
93
|
+
* of vector in both directions. The height of this box will be expanded by the y component of vector
|
94
|
+
* in both directions.
|
95
|
+
* @param vector Input 2d vector to expand the box by.
|
96
|
+
* @returns Return this box
|
97
|
+
*/
|
98
|
+
expandByVector(vector: AcGeVector2dLike): this;
|
99
|
+
/**
|
100
|
+
* Expand each dimension of the box by scalar. If negative, the dimensions of the box will be contracted.
|
101
|
+
* @param scalar Input distance to expand the box by.
|
102
|
+
* @returns Return this box
|
103
|
+
*/
|
104
|
+
expandByScalar(scalar: number): this;
|
105
|
+
/**
|
106
|
+
* Return true if the specified point lies within or on the boundaries of this box.
|
107
|
+
* @param point Input 2d point to check for inclusion.
|
108
|
+
* @returns Return true if the specified point lies within or on the boundaries of this box.
|
109
|
+
*/
|
110
|
+
containsPoint(point: AcGeVector2dLike): boolean;
|
111
|
+
/**
|
112
|
+
* Return true if this box includes the entirety of box. If this and box are identical,
|
113
|
+
* this function also returns true.
|
114
|
+
* @param box Input 2d box to test for inclusion.
|
115
|
+
* @returns Return true if this box includes the entirety of box.
|
116
|
+
*/
|
117
|
+
containsBox(box: AcGeBox2d): boolean;
|
118
|
+
/**
|
119
|
+
* Return a point as a proportion of this box's width and height.
|
120
|
+
* @param point Input one point
|
121
|
+
* @param target Input the result will be copied into this 2d vector.
|
122
|
+
* @returns Return a point as a proportion of this box's width and height.
|
123
|
+
*/
|
124
|
+
getParameter(point: AcGeVector2dLike, target: AcGeVector2d): AcGeVector2d;
|
125
|
+
/**
|
126
|
+
* Determine whether or not this box intersects box.
|
127
|
+
* @param box Input 2d box to check for intersection against.
|
128
|
+
* @returns Return true if this box intersects box.
|
129
|
+
*/
|
130
|
+
intersectsBox(box: AcGeBox2d): boolean;
|
131
|
+
/**
|
132
|
+
* Clamp the point within the bounds of this box.
|
133
|
+
* @param point Input one 2d point
|
134
|
+
* @param target Input the result will be copied into this Vector2.
|
135
|
+
* @returns Return the target
|
136
|
+
*/
|
137
|
+
clampPoint(point: AcGeVector2dLike, target: AcGeVector2d): AcGeVector2d;
|
138
|
+
/**
|
139
|
+
* Return the distance from any edge of this box to the specified point. If the point lies inside of
|
140
|
+
* this box, the distance will be 0.
|
141
|
+
* @param point Input 2d vector to measure distance to.
|
142
|
+
* @returns Return the distance from any edge of this box to the specified point.
|
143
|
+
*/
|
144
|
+
distanceToPoint(point: AcGeVector2dLike): number;
|
145
|
+
/**
|
146
|
+
* Return the intersection of this and box, setting the upper bound of this box to the lesser of the
|
147
|
+
* two boxes' upper bounds and the lower bound of this box to the greater of the two boxes' lower bounds.
|
148
|
+
* @param box Input box to intersect with
|
149
|
+
* @returns Return this box
|
150
|
+
*/
|
151
|
+
intersect(box: AcGeBox2d): this;
|
152
|
+
/**
|
153
|
+
* Union this box with box, setting the upper bound of this box to the greater of the two boxes' upper
|
154
|
+
* bounds and the lower bound of this box to the lesser of the two boxes' lower bounds.
|
155
|
+
* @param box Input the box that will be unioned with this box.
|
156
|
+
* @returns Return this box
|
157
|
+
*/
|
158
|
+
union(box: AcGeBox2d): this;
|
159
|
+
/**
|
160
|
+
* Add offset to both the upper and lower bounds of this box, effectively moving this box offset units
|
161
|
+
* in 2D space.
|
162
|
+
* @param offset Input direction and distance of offset.
|
163
|
+
* @returns Return this box
|
164
|
+
*/
|
165
|
+
translate(offset: AcGeVector2dLike): this;
|
166
|
+
/**
|
167
|
+
* Return true if this box and box share the same lower and upper bounds.
|
168
|
+
* @param box Input box to compare with this one.
|
169
|
+
* @returns Return true if this box and box share the same lower and upper bounds.
|
170
|
+
*/
|
171
|
+
equals(box: AcGeBox2d): boolean;
|
172
|
+
}
|
173
|
+
//# sourceMappingURL=AcGeBox2d.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcGeBox2d.d.ts","sourceRoot":"","sources":["../../src/math/AcGeBox2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI/D;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,GAAG,EAAE,YAAY,CAAA;IACjB;;OAEG;IACH,GAAG,EAAE,YAAY,CAAA;IAEjB;;;;;;OAMG;gBAED,GAAG,GAAE,gBAAgB,GAAG,SAAqB,EAC7C,GAAG,GAAE,gBAAgB,GAAG,SAAqB;IAY/C;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB;IAOhD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE;IAUxC;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;IAQrE;;;OAGG;IACH,KAAK;IAIL;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,SAAS;IAOnB;;;OAGG;IACH,SAAS;IAOT;;;;OAIG;IACH,OAAO;IAMP;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY;IAM9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY;IAM5B;;OAEG;IACH,IAAI,MAAM,iBAMT;IAED;;OAEG;IACH,IAAI,IAAI,iBAIP;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,gBAAgB;IAOrC;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,gBAAgB;IAOvC;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM;IAO7B;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,gBAAgB;IASrC;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,SAAS;IAS1B;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY;IAU1D;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,SAAS;IAW5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY;IAIxD;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,gBAAgB;IAIvC;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,SAAS;IASxB;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,SAAS;IAOpB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB;IAOlC;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,SAAS;CAGtB"}
|