@mlightcad/geometry-engine 3.2.38 → 3.2.39
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/geometry-engine.umd.cjs +1 -1
- package/lib/geometry/AcGeCircArc3d.d.ts +7 -0
- package/lib/geometry/AcGeCircArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeCircArc3d.js +12 -0
- package/lib/geometry/AcGeCircArc3d.js.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.d.ts +7 -0
- package/lib/geometry/AcGeEllipseArc3d.d.ts.map +1 -1
- package/lib/geometry/AcGeEllipseArc3d.js +13 -0
- package/lib/geometry/AcGeEllipseArc3d.js.map +1 -1
- package/lib/geometry/AcGeLine3d.d.ts +7 -0
- package/lib/geometry/AcGeLine3d.d.ts.map +1 -1
- package/lib/geometry/AcGeLine3d.js +16 -0
- package/lib/geometry/AcGeLine3d.js.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts +55 -1
- package/lib/geometry/AcGeNurbsCurve.d.ts.map +1 -1
- package/lib/geometry/AcGeNurbsCurve.js +146 -4
- package/lib/geometry/AcGeNurbsCurve.js.map +1 -1
- package/lib/geometry/AcGePolyline2d.d.ts +7 -0
- package/lib/geometry/AcGePolyline2d.d.ts.map +1 -1
- package/lib/geometry/AcGePolyline2d.js +10 -0
- package/lib/geometry/AcGePolyline2d.js.map +1 -1
- package/lib/geometry/AcGePolyline2dOffset.d.ts +28 -0
- package/lib/geometry/AcGePolyline2dOffset.d.ts.map +1 -0
- package/lib/geometry/AcGePolyline2dOffset.js +886 -0
- package/lib/geometry/AcGePolyline2dOffset.js.map +1 -0
- package/lib/geometry/AcGeSpline3d.d.ts +9 -1
- package/lib/geometry/AcGeSpline3d.d.ts.map +1 -1
- package/lib/geometry/AcGeSpline3d.js +7 -0
- package/lib/geometry/AcGeSpline3d.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/util/AcGeCurveOffsetUtil.d.ts +22 -0
- package/lib/util/AcGeCurveOffsetUtil.d.ts.map +1 -0
- package/lib/util/AcGeCurveOffsetUtil.js +37 -0
- package/lib/util/AcGeCurveOffsetUtil.js.map +1 -0
- package/lib/util/AcGeNurbsUtil.d.ts +13 -0
- package/lib/util/AcGeNurbsUtil.d.ts.map +1 -1
- package/lib/util/AcGeNurbsUtil.js +105 -0
- package/lib/util/AcGeNurbsUtil.js.map +1 -1
- package/lib/util/AcGeSampledCurveOffsetUtil.d.ts +21 -0
- package/lib/util/AcGeSampledCurveOffsetUtil.d.ts.map +1 -0
- package/lib/util/AcGeSampledCurveOffsetUtil.js +302 -0
- package/lib/util/AcGeSampledCurveOffsetUtil.js.map +1 -0
- package/lib/util/AcGeTol.d.ts +8 -0
- package/lib/util/AcGeTol.d.ts.map +1 -1
- package/lib/util/AcGeTol.js +14 -0
- package/lib/util/AcGeTol.js.map +1 -1
- package/lib/util/index.d.ts +3 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +3 -1
- package/lib/util/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
+
if (ar || !(i in from)) {
|
|
20
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
+
ar[i] = from[i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
+
};
|
|
26
|
+
import { AcGePolyline2d } from '../geometry/AcGePolyline2d';
|
|
27
|
+
import { AcGePoint2d } from '../math/AcGePoint2d';
|
|
28
|
+
import { AcGeTol, DEFAULT_TOL } from './AcGeTol';
|
|
29
|
+
/**
|
|
30
|
+
* Offsets a densely sampled smooth curve path in the XY plane.
|
|
31
|
+
*
|
|
32
|
+
* Unlike vertex polyline offset (parallel edges with miter joins), each sample
|
|
33
|
+
* is shifted along the local left normal. Self-intersecting loops that appear
|
|
34
|
+
* when the offset distance exceeds the local radius of curvature are trimmed.
|
|
35
|
+
*
|
|
36
|
+
* Sign convention: positive `offsetDist` offsets to the left of the travel
|
|
37
|
+
* direction along the sampled path (consistent with {@link offsetAcGePolyline2d}).
|
|
38
|
+
*
|
|
39
|
+
* @param points - Sampled path points in travel order
|
|
40
|
+
* @param closed - Whether the path is treated as a closed polygon for trimming
|
|
41
|
+
* @param offsetDist - Signed offset distance in drawing units (left = positive)
|
|
42
|
+
* @param tangents - Optional unit tangents aligned with `points`; when omitted,
|
|
43
|
+
* tangents are estimated from neighboring samples via central differences
|
|
44
|
+
* @returns Offset polyline, or `null` when input is degenerate or offset distance is zero
|
|
45
|
+
*/
|
|
46
|
+
export function offsetSmoothedSampledPath(points, closed, offsetDist, tangents) {
|
|
47
|
+
if (points.length < 2 || AcGeTol.equalToZero(offsetDist))
|
|
48
|
+
return null;
|
|
49
|
+
var _a = dedupeConsecutiveSamples(points, tangents), source = _a.points, sourceTangents = _a.tangents;
|
|
50
|
+
if (source.length < 2)
|
|
51
|
+
return null;
|
|
52
|
+
var resolvedTangents = sourceTangents !== null && sourceTangents !== void 0 ? sourceTangents : computePathSampleTangents(source, closed);
|
|
53
|
+
var offsetPoints = offsetPointsByNormals(source, resolvedTangents, offsetDist);
|
|
54
|
+
var trimmed = closed
|
|
55
|
+
? trimClosedPolylineSelfIntersections(offsetPoints)
|
|
56
|
+
: trimOpenPolylineSelfIntersections(offsetPoints);
|
|
57
|
+
if (trimmed.length < 2)
|
|
58
|
+
return null;
|
|
59
|
+
var result = new AcGePolyline2d();
|
|
60
|
+
trimmed.forEach(function (point, index) {
|
|
61
|
+
result.addVertexAt(index, { x: point.x, y: point.y });
|
|
62
|
+
});
|
|
63
|
+
result.closed = closed;
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Computes unit tangents for a sampled path using central differences.
|
|
68
|
+
*
|
|
69
|
+
* Open paths use one-sided differences at endpoints and central differences
|
|
70
|
+
* at interior samples. Closed paths wrap the predecessor of the first point
|
|
71
|
+
* and the successor of the last.
|
|
72
|
+
*
|
|
73
|
+
* @param points - Sampled path vertices in travel order
|
|
74
|
+
* @param closed - Whether the path wraps from last point back to first
|
|
75
|
+
* @returns Unit tangent at each sample; degenerate segments fall back to `(1, 0)`
|
|
76
|
+
*/
|
|
77
|
+
function computePathSampleTangents(points, closed) {
|
|
78
|
+
var count = points.length;
|
|
79
|
+
var tangents = new Array(count);
|
|
80
|
+
for (var i = 0; i < count; i++) {
|
|
81
|
+
var dx = 0;
|
|
82
|
+
var dy = 0;
|
|
83
|
+
if (closed) {
|
|
84
|
+
var prev = points[(i - 1 + count) % count];
|
|
85
|
+
var next = points[(i + 1) % count];
|
|
86
|
+
dx = next.x - prev.x;
|
|
87
|
+
dy = next.y - prev.y;
|
|
88
|
+
}
|
|
89
|
+
else if (i === 0) {
|
|
90
|
+
dx = points[1].x - points[0].x;
|
|
91
|
+
dy = points[1].y - points[0].y;
|
|
92
|
+
}
|
|
93
|
+
else if (i === count - 1) {
|
|
94
|
+
dx = points[count - 1].x - points[count - 2].x;
|
|
95
|
+
dy = points[count - 1].y - points[count - 2].y;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
dx = points[i + 1].x - points[i - 1].x;
|
|
99
|
+
dy = points[i + 1].y - points[i - 1].y;
|
|
100
|
+
}
|
|
101
|
+
var len = Math.hypot(dx, dy);
|
|
102
|
+
if (AcGeTol.isNonPositive(len)) {
|
|
103
|
+
tangents[i] = new AcGePoint2d(1, 0);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
tangents[i] = new AcGePoint2d(dx / len, dy / len);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return tangents;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Offsets each sample along the left normal of its tangent.
|
|
113
|
+
*
|
|
114
|
+
* The left normal of a unit tangent `(tx, ty)` is `(-ty, tx)`, scaled by
|
|
115
|
+
* `offsetDist` and added to the sample position.
|
|
116
|
+
*
|
|
117
|
+
* @param points - Source samples in travel order
|
|
118
|
+
* @param tangents - Unit tangents aligned index-for-index with `points`
|
|
119
|
+
* @param offsetDist - Signed offset distance in drawing units
|
|
120
|
+
* @returns Translated samples forming the raw offset polyline before trimming
|
|
121
|
+
*/
|
|
122
|
+
function offsetPointsByNormals(points, tangents, offsetDist) {
|
|
123
|
+
return points.map(function (point, index) {
|
|
124
|
+
var tangent = tangents[index];
|
|
125
|
+
var nx = -tangent.y * offsetDist;
|
|
126
|
+
var ny = tangent.x * offsetDist;
|
|
127
|
+
return new AcGePoint2d(point.x + nx, point.y + ny);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Removes self-intersecting loops from an open offset polyline.
|
|
132
|
+
*
|
|
133
|
+
* Repeatedly finds the earliest non-adjacent segment crossing and replaces the
|
|
134
|
+
* enclosed vertex chain with the intersection point until no crossings remain.
|
|
135
|
+
* This produces cusp-style joins when the offset distance exceeds the local
|
|
136
|
+
* radius of curvature at concave bends.
|
|
137
|
+
*
|
|
138
|
+
* @param points - Raw offset samples connected in order
|
|
139
|
+
* @returns Trimmed open vertex chain with loops removed
|
|
140
|
+
*/
|
|
141
|
+
function trimOpenPolylineSelfIntersections(points) {
|
|
142
|
+
var current = dedupeConsecutivePoints(points);
|
|
143
|
+
if (current.length < 3)
|
|
144
|
+
return current;
|
|
145
|
+
while (true) {
|
|
146
|
+
var hit = findFirstSelfIntersection(current, false);
|
|
147
|
+
if (!hit)
|
|
148
|
+
break;
|
|
149
|
+
current = dedupeConsecutivePoints(__spreadArray(__spreadArray(__spreadArray([], __read(current.slice(0, hit.segmentA + 1)), false), [
|
|
150
|
+
hit.point
|
|
151
|
+
], false), __read(current.slice(hit.segmentB + 1)), false));
|
|
152
|
+
if (current.length < 2)
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
return current;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Removes self-intersecting loops from a closed offset polyline.
|
|
159
|
+
*
|
|
160
|
+
* Uses the same earliest-intersection trimming strategy as
|
|
161
|
+
* {@link trimOpenPolylineSelfIntersections}, but treats the last-to-first
|
|
162
|
+
* segment as part of the closed ring.
|
|
163
|
+
*
|
|
164
|
+
* @param points - Raw offset samples forming a closed ring
|
|
165
|
+
* @returns Trimmed closed vertex chain with loops removed
|
|
166
|
+
*/
|
|
167
|
+
function trimClosedPolylineSelfIntersections(points) {
|
|
168
|
+
var current = dedupeConsecutivePoints(points);
|
|
169
|
+
if (current.length < 4)
|
|
170
|
+
return current;
|
|
171
|
+
while (true) {
|
|
172
|
+
var hit = findFirstSelfIntersection(current, true);
|
|
173
|
+
if (!hit)
|
|
174
|
+
break;
|
|
175
|
+
current = dedupeConsecutivePoints(__spreadArray(__spreadArray(__spreadArray([], __read(current.slice(0, hit.segmentA + 1)), false), [
|
|
176
|
+
hit.point
|
|
177
|
+
], false), __read(current.slice(hit.segmentB + 1)), false));
|
|
178
|
+
if (current.length < 3)
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
return current;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Finds the earliest non-adjacent segment intersection in a polyline.
|
|
185
|
+
*
|
|
186
|
+
* Segments are tested in lexicographic order `(segmentA, segmentB)` so trimming
|
|
187
|
+
* removes the innermost loop encountered first along the path.
|
|
188
|
+
*
|
|
189
|
+
* @param points - Polyline vertices in order
|
|
190
|
+
* @param closed - Whether the polyline wraps from last vertex back to first
|
|
191
|
+
* @returns Intersection data, or `null` when no crossing exists
|
|
192
|
+
*/
|
|
193
|
+
function findFirstSelfIntersection(points, closed) {
|
|
194
|
+
var segmentCount = closed ? points.length : points.length - 1;
|
|
195
|
+
if (segmentCount < 2)
|
|
196
|
+
return null;
|
|
197
|
+
for (var i = 0; i < segmentCount; i++) {
|
|
198
|
+
var a0 = points[i];
|
|
199
|
+
var a1 = points[(i + 1) % points.length];
|
|
200
|
+
for (var j = i + 1; j < segmentCount; j++) {
|
|
201
|
+
if (areAdjacentSegments(i, j, segmentCount, closed))
|
|
202
|
+
continue;
|
|
203
|
+
var b0 = points[j];
|
|
204
|
+
var b1 = points[(j + 1) % points.length];
|
|
205
|
+
var point = intersectBoundedSegments(a0, a1, b0, b1);
|
|
206
|
+
if (point) {
|
|
207
|
+
return { point: point, segmentA: i, segmentB: j };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Tests whether two segment indices share a vertex and should be skipped
|
|
215
|
+
* during self-intersection search.
|
|
216
|
+
*
|
|
217
|
+
* @param i - Index of the first segment
|
|
218
|
+
* @param j - Index of the second segment
|
|
219
|
+
* @param segmentCount - Total number of segments in the polyline
|
|
220
|
+
* @param closed - Whether the polyline is closed
|
|
221
|
+
* @returns `true` when the segments are identical or share an endpoint
|
|
222
|
+
*/
|
|
223
|
+
function areAdjacentSegments(i, j, segmentCount, closed) {
|
|
224
|
+
if (j === i)
|
|
225
|
+
return true;
|
|
226
|
+
if (j === i + 1)
|
|
227
|
+
return true;
|
|
228
|
+
if (closed && i === 0 && j === segmentCount - 1)
|
|
229
|
+
return true;
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Computes the intersection point of two bounded line segments, if any.
|
|
234
|
+
*
|
|
235
|
+
* Uses parametric line intersection and requires both parameters to lie in
|
|
236
|
+
* `[0, 1]` within {@link DEFAULT_TOL}. Parallel or collinear segments return
|
|
237
|
+
* `null`.
|
|
238
|
+
*
|
|
239
|
+
* @param a0 - Start of the first segment
|
|
240
|
+
* @param a1 - End of the first segment
|
|
241
|
+
* @param b0 - Start of the second segment
|
|
242
|
+
* @param b1 - End of the second segment
|
|
243
|
+
* @returns Intersection point, or `null` when segments do not cross
|
|
244
|
+
*/
|
|
245
|
+
function intersectBoundedSegments(a0, a1, b0, b1) {
|
|
246
|
+
var dx1 = a1.x - a0.x;
|
|
247
|
+
var dy1 = a1.y - a0.y;
|
|
248
|
+
var dx2 = b1.x - b0.x;
|
|
249
|
+
var dy2 = b1.y - b0.y;
|
|
250
|
+
var det = dx1 * dy2 - dy1 * dx2;
|
|
251
|
+
if (AcGeTol.equalToZero(det))
|
|
252
|
+
return null;
|
|
253
|
+
var qpx = b0.x - a0.x;
|
|
254
|
+
var qpy = b0.y - a0.y;
|
|
255
|
+
var t = (qpx * dy2 - qpy * dx2) / det;
|
|
256
|
+
var u = (qpx * dy1 - qpy * dx1) / det;
|
|
257
|
+
var tol = DEFAULT_TOL.equalPointTol;
|
|
258
|
+
if (t < -tol || t > 1 + tol || u < -tol || u > 1 + tol) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
return new AcGePoint2d(a0.x + t * dx1, a0.y + t * dy1);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Removes consecutive duplicate samples while keeping tangents aligned.
|
|
265
|
+
*
|
|
266
|
+
* When `tangents` is provided with the same length as `points`, tangents
|
|
267
|
+
* corresponding to dropped duplicates are removed as well.
|
|
268
|
+
*
|
|
269
|
+
* @param points - Input sample chain, possibly containing consecutive duplicates
|
|
270
|
+
* @param tangents - Optional unit tangents aligned with `points`
|
|
271
|
+
* @returns Deduplicated points and, when supplied, matching tangents
|
|
272
|
+
*/
|
|
273
|
+
function dedupeConsecutiveSamples(points, tangents) {
|
|
274
|
+
var resultPoints = [];
|
|
275
|
+
var resultTangents = [];
|
|
276
|
+
var keepTangents = tangents != null && tangents.length === points.length;
|
|
277
|
+
points.forEach(function (point, index) {
|
|
278
|
+
var last = resultPoints[resultPoints.length - 1];
|
|
279
|
+
if (!last ||
|
|
280
|
+
AcGeTol.isPositive(Math.hypot(last.x - point.x, last.y - point.y))) {
|
|
281
|
+
resultPoints.push(new AcGePoint2d(point.x, point.y));
|
|
282
|
+
if (keepTangents) {
|
|
283
|
+
var tangent = tangents[index];
|
|
284
|
+
resultTangents.push(new AcGePoint2d(tangent.x, tangent.y));
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
return {
|
|
289
|
+
points: resultPoints,
|
|
290
|
+
tangents: keepTangents ? resultTangents : undefined
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Removes consecutive duplicate vertices from a point chain.
|
|
295
|
+
*
|
|
296
|
+
* @param points - Input vertex chain
|
|
297
|
+
* @returns New array with only distinct consecutive points
|
|
298
|
+
*/
|
|
299
|
+
function dedupeConsecutivePoints(points) {
|
|
300
|
+
return dedupeConsecutiveSamples(points).points;
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=AcGeSampledCurveOffsetUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcGeSampledCurveOffsetUtil.js","sourceRoot":"","sources":["../../src/util/AcGeSampledCurveOffsetUtil.ts"],"names":[],"mappings":"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"}
|
package/lib/util/AcGeTol.d.ts
CHANGED
|
@@ -90,6 +90,14 @@ export declare class AcGeTol {
|
|
|
90
90
|
* tolerance value
|
|
91
91
|
*/
|
|
92
92
|
static less(value1: number, value2: number, tol?: number): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Return true if the value is greater than the specified tolerance.
|
|
95
|
+
*/
|
|
96
|
+
static isPositive(value: number, tol?: number): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Return true if the value is less than or equal to the specified tolerance.
|
|
99
|
+
*/
|
|
100
|
+
static isNonPositive(value: number, tol?: number): boolean;
|
|
93
101
|
}
|
|
94
102
|
export declare const DEFAULT_TOL: AcGeTol;
|
|
95
103
|
//# sourceMappingURL=AcGeTol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeTol.d.ts","sourceRoot":"","sources":["../../src/util/AcGeTol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAGhB,MAAM,SAAS,CAAA;AAGhB;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;;IAMH;;OAEG;IACH,KAAK;IAOL;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe;IAIrD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe;IAIrD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB;IAIrD;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAkB,GACtB,OAAO;IAIV;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAkB,GACtB,OAAO;IAIV;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB;
|
|
1
|
+
{"version":3,"file":"AcGeTol.d.ts","sourceRoot":"","sources":["../../src/util/AcGeTol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAGhB,MAAM,SAAS,CAAA;AAGhB;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;;IAMH;;OAEG;IACH,KAAK;IAOL;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe;IAIrD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe;IAIrD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB;IAIrD;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAkB,GACtB,OAAO;IAIV;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,MAAkB,GACtB,OAAO;IAIV;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB;IAInE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO;IAIlE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO;CAGtE;AAED,eAAO,MAAM,WAAW,SAAgB,CAAA"}
|
package/lib/util/AcGeTol.js
CHANGED
|
@@ -85,6 +85,20 @@ var AcGeTol = /** @class */ (function () {
|
|
|
85
85
|
if (tol === void 0) { tol = FLOAT_TOL; }
|
|
86
86
|
return value1 - value2 < tol;
|
|
87
87
|
};
|
|
88
|
+
/**
|
|
89
|
+
* Return true if the value is greater than the specified tolerance.
|
|
90
|
+
*/
|
|
91
|
+
AcGeTol.isPositive = function (value, tol) {
|
|
92
|
+
if (tol === void 0) { tol = FLOAT_TOL; }
|
|
93
|
+
return value > tol;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Return true if the value is less than or equal to the specified tolerance.
|
|
97
|
+
*/
|
|
98
|
+
AcGeTol.isNonPositive = function (value, tol) {
|
|
99
|
+
if (tol === void 0) { tol = FLOAT_TOL; }
|
|
100
|
+
return value <= tol;
|
|
101
|
+
};
|
|
88
102
|
return AcGeTol;
|
|
89
103
|
}());
|
|
90
104
|
export { AcGeTol };
|
package/lib/util/AcGeTol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcGeTol.js","sourceRoot":"","sources":["../../src/util/AcGeTol.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,YAAY,EACb,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;GAEG;AACH;IAgCE;;OAEG;IACH;QACE,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,uBAAK,GAAL;QACE,IAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;QAC5B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACzC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;OAKG;IACH,8BAAY,GAAZ,UAAa,EAAmB,EAAE,EAAmB;QACnD,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;IACnE,CAAC;IAED;;;;;OAKG;IACH,8BAAY,GAAZ,UAAa,EAAmB,EAAE,EAAmB;QACnD,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;IACnE,CAAC;IAED;;OAEG;IACI,mBAAW,GAAlB,UAAmB,CAAS,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACnD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC5B,CAAC;IAED;;;;;;;OAOG;IACI,aAAK,GAAZ,UACE,MAAc,EACd,MAAc,EACd,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAA;IACxC,CAAC;IAED;;;;;;;;;OASG;IACI,aAAK,GAAZ,UACE,MAAc,EACd,MAAc,EACd,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QAEvB,OAAO,MAAM,GAAG,MAAM,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACI,YAAI,GAAX,UAAY,MAAc,EAAE,MAAc,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACjE,OAAO,MAAM,GAAG,MAAM,GAAG,GAAG,CAAA;IAC9B,CAAC;IACH,cAAC;AAAD,CAAC,
|
|
1
|
+
{"version":3,"file":"AcGeTol.js","sourceRoot":"","sources":["../../src/util/AcGeTol.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,YAAY,EACb,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;GAEG;AACH;IAgCE;;OAEG;IACH;QACE,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,uBAAK,GAAL;QACE,IAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;QAC5B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACzC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QAC3C,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;OAKG;IACH,8BAAY,GAAZ,UAAa,EAAmB,EAAE,EAAmB;QACnD,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;IACnE,CAAC;IAED;;;;;OAKG;IACH,8BAAY,GAAZ,UAAa,EAAmB,EAAE,EAAmB;QACnD,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;IACnE,CAAC;IAED;;OAEG;IACI,mBAAW,GAAlB,UAAmB,CAAS,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACnD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC5B,CAAC;IAED;;;;;;;OAOG;IACI,aAAK,GAAZ,UACE,MAAc,EACd,MAAc,EACd,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAA;IACxC,CAAC;IAED;;;;;;;;;OASG;IACI,aAAK,GAAZ,UACE,MAAc,EACd,MAAc,EACd,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QAEvB,OAAO,MAAM,GAAG,MAAM,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACI,YAAI,GAAX,UAAY,MAAc,EAAE,MAAc,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACjE,OAAO,MAAM,GAAG,MAAM,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED;;OAEG;IACI,kBAAU,GAAjB,UAAkB,KAAa,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACtD,OAAO,KAAK,GAAG,GAAG,CAAA;IACpB,CAAC;IAED;;OAEG;IACI,qBAAa,GAApB,UAAqB,KAAa,EAAE,GAAuB;QAAvB,oBAAA,EAAA,eAAuB;QACzD,OAAO,KAAK,IAAI,GAAG,CAAA;IACrB,CAAC;IACH,cAAC;AAAD,CAAC,AA1ID,IA0IC;;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAA"}
|
package/lib/util/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, TAU } from './AcGeConstants';
|
|
2
2
|
export { AcGeGeometryUtil, isPointInPolygon, isPolygonIntersect } from './AcGeGeometryUtil';
|
|
3
3
|
export { AcGeMathUtil, DEG2RAD, RAD2DEG, ceilPowerOfTwo, clamp, damp, degToRad, euclideanModulo, floorPowerOfTwo, generateUUID, intPartLength, inverseLerp, isBetween, isBetweenAngle, isPowerOfTwo, lerp, mapLinear, normalizeAngle, pingpong, radToDeg, randFloat, randFloatSpread, randInt, relativeEps, seededRandom, smootherstep, smoothstep } from './AcGeMathUtil';
|
|
4
|
-
export { basisFunction, calculateCurveLength, computeParameterValues, evaluateNurbsPoint, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUniformKnots, interpolateControlPoints, interpolateNurbsCurve } from './AcGeNurbsUtil';
|
|
4
|
+
export { basisFunction, calculateCurveLength, computeParameterValues, evaluateNurbsPoint, evaluateNurbsDerivatives, signedPlanarCurvature, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUniformKnots, interpolateControlPoints, interpolateNurbsCurve } from './AcGeNurbsUtil';
|
|
5
5
|
export { getOcsAngle, getOcsReferenceVector, transformOcsPointToWcs, transformWcsPointToOcs } from './AcGeOcsUtil';
|
|
6
6
|
export { AcGeTol, DEFAULT_TOL } from './AcGeTol';
|
|
7
|
+
export { offsetPointByDirectionInXY, offsetVertexPath } from './AcGeCurveOffsetUtil';
|
|
8
|
+
export { offsetSmoothedSampledPath } from './AcGeSampledCurveOffsetUtil';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/util/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA"}
|
package/lib/util/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { FLOAT_TOL, ORIGIN_POINT_2D, ORIGIN_POINT_3D, TAU } from './AcGeConstants';
|
|
2
2
|
export { AcGeGeometryUtil, isPointInPolygon, isPolygonIntersect } from './AcGeGeometryUtil';
|
|
3
3
|
export { AcGeMathUtil, DEG2RAD, RAD2DEG, ceilPowerOfTwo, clamp, damp, degToRad, euclideanModulo, floorPowerOfTwo, generateUUID, intPartLength, inverseLerp, isBetween, isBetweenAngle, isPowerOfTwo, lerp, mapLinear, normalizeAngle, pingpong, radToDeg, randFloat, randFloatSpread, randInt, relativeEps, seededRandom, smootherstep, smoothstep } from './AcGeMathUtil';
|
|
4
|
-
export { basisFunction, calculateCurveLength, computeParameterValues, evaluateNurbsPoint, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUniformKnots, interpolateControlPoints, interpolateNurbsCurve } from './AcGeNurbsUtil';
|
|
4
|
+
export { basisFunction, calculateCurveLength, computeParameterValues, evaluateNurbsPoint, evaluateNurbsDerivatives, signedPlanarCurvature, generateAveragedKnots, generateChordKnots, generateSqrtChordKnots, generateUniformKnots, interpolateControlPoints, interpolateNurbsCurve } from './AcGeNurbsUtil';
|
|
5
5
|
export { getOcsAngle, getOcsReferenceVector, transformOcsPointToWcs, transformWcsPointToOcs } from './AcGeOcsUtil';
|
|
6
6
|
export { AcGeTol, DEFAULT_TOL } from './AcGeTol';
|
|
7
|
+
export { offsetPointByDirectionInXY, offsetVertexPath } from './AcGeCurveOffsetUtil';
|
|
8
|
+
export { offsetSmoothedSampledPath } from './AcGeSampledCurveOffsetUtil';
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
package/lib/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,GAAG,EACJ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mlightcad/geometry-engine",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.39",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"require": "./dist/geometry-engine.umd.cjs"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@mlightcad/common": "1.4.
|
|
36
|
+
"@mlightcad/common": "1.4.39"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"clean": "rimraf dist lib tsconfig.tsbuildinfo",
|