@mlightcad/data-model 1.10.3 → 1.10.4
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/data-model.cjs +11 -10
- package/lib/acis/AcDbAcisDecode.d.ts +23 -0
- package/lib/acis/AcDbAcisDecode.d.ts.map +1 -0
- package/lib/acis/AcDbAcisDecode.js +95 -0
- package/lib/acis/AcDbAcisDecode.js.map +1 -0
- package/lib/acis/AcDbAcisEntities.d.ts +41 -0
- package/lib/acis/AcDbAcisEntities.d.ts.map +1 -0
- package/lib/acis/AcDbAcisEntities.js +116 -0
- package/lib/acis/AcDbAcisEntities.js.map +1 -0
- package/lib/acis/AcDbAcisGeometry.d.ts +264 -0
- package/lib/acis/AcDbAcisGeometry.d.ts.map +1 -0
- package/lib/acis/AcDbAcisGeometry.js +409 -0
- package/lib/acis/AcDbAcisGeometry.js.map +1 -0
- package/lib/acis/AcDbAcisSab.d.ts +101 -0
- package/lib/acis/AcDbAcisSab.d.ts.map +1 -0
- package/lib/acis/AcDbAcisSab.js +250 -0
- package/lib/acis/AcDbAcisSab.js.map +1 -0
- package/lib/acis/AcDbAcisSatWireframe.d.ts +13 -0
- package/lib/acis/AcDbAcisSatWireframe.d.ts.map +1 -0
- package/lib/acis/AcDbAcisSatWireframe.js +142 -0
- package/lib/acis/AcDbAcisSatWireframe.js.map +1 -0
- package/lib/acis/AcDbAcisWireframe.d.ts +20 -0
- package/lib/acis/AcDbAcisWireframe.d.ts.map +1 -0
- package/lib/acis/AcDbAcisWireframe.js +133 -0
- package/lib/acis/AcDbAcisWireframe.js.map +1 -0
- package/lib/acis/index.d.ts +15 -0
- package/lib/acis/index.d.ts.map +1 -0
- package/lib/acis/index.js +12 -0
- package/lib/acis/index.js.map +1 -0
- package/lib/entity/AcDb3dSolid.d.ts +42 -27
- package/lib/entity/AcDb3dSolid.d.ts.map +1 -1
- package/lib/entity/AcDb3dSolid.js +150 -54
- package/lib/entity/AcDb3dSolid.js.map +1 -1
- package/lib/entity/AcDbFcf.d.ts.map +1 -1
- package/lib/entity/AcDbFcf.js +2 -3
- package/lib/entity/AcDbFcf.js.map +1 -1
- package/lib/entity/AcDbTextExtentsHelpers.d.ts +12 -0
- package/lib/entity/AcDbTextExtentsHelpers.d.ts.map +1 -1
- package/lib/entity/AcDbTextExtentsHelpers.js +34 -0
- package/lib/entity/AcDbTextExtentsHelpers.js.map +1 -1
- package/lib/entity/index.d.ts +1 -1
- package/lib/entity/index.d.ts.map +1 -1
- package/lib/entity/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
// ACIS B-rep geometry extraction.
|
|
2
|
+
//
|
|
3
|
+
// Turns the resolved record graph (./AcDbAcisEntities.ts AcDbAcisModel) into usable geometry:
|
|
4
|
+
// vertices (3D points), edges (segments between resolved vertex points + curve
|
|
5
|
+
// type/params), and faces (surface type/params + loop structure). It reads each
|
|
6
|
+
// record's analytic parameters by SAB token TAG-TYPE in wire order (a TokenCursor
|
|
7
|
+
// that skips pointer/int noise) — NOT by positional field schema, which is the
|
|
8
|
+
// exact assumption that breaks ezdxf's typed loader on newer ASM streams.
|
|
9
|
+
//
|
|
10
|
+
// Field-order sources (see DEFERRED note for intcurve):
|
|
11
|
+
// point / straight-curve / plane-surface — ezdxf ezdxf/acis/entities.py
|
|
12
|
+
// (Point.restore_data, StraightCurve.restore_data, Plane.restore_common) — oracle-backed.
|
|
13
|
+
// ellipse-curve / cone-surface / torus-surface — spec-confirmed against the
|
|
14
|
+
// ACIS 7.0 SAT save-file reference (ellipse/cone restore_data field order)
|
|
15
|
+
// and empirically cross-checked vs corpus records + an annotated .sat. There
|
|
16
|
+
// is no automated runtime oracle (ezdxf has no Ellipse/Cone/Torus types).
|
|
17
|
+
var __values = (this && this.__values) || function(o) {
|
|
18
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
19
|
+
if (m) return m.call(o);
|
|
20
|
+
if (o && typeof o.length === "number") return {
|
|
21
|
+
next: function () {
|
|
22
|
+
if (o && i >= o.length) o = void 0;
|
|
23
|
+
return { value: o && o[i++], done: !o };
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
27
|
+
};
|
|
28
|
+
import { AcDbAcisSabTag } from './AcDbAcisSab';
|
|
29
|
+
/** Walks a record's tokens in wire order, yielding the next token of a wanted tag. */
|
|
30
|
+
var AcDbAcisTokenCursor = /** @class */ (function () {
|
|
31
|
+
function AcDbAcisTokenCursor(tokens) {
|
|
32
|
+
this.tokens = tokens;
|
|
33
|
+
this.i = 0;
|
|
34
|
+
}
|
|
35
|
+
AcDbAcisTokenCursor.prototype.next = function () {
|
|
36
|
+
var tags = [];
|
|
37
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
38
|
+
tags[_i] = arguments[_i];
|
|
39
|
+
}
|
|
40
|
+
while (this.i < this.tokens.length) {
|
|
41
|
+
var token = this.tokens[this.i++];
|
|
42
|
+
if (token !== undefined && tags.includes(token.tag))
|
|
43
|
+
return token;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
};
|
|
47
|
+
AcDbAcisTokenCursor.prototype.nextVec = function () {
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = this.next(AcDbAcisSabTag.LocationVec, AcDbAcisSabTag.DirectionVec)) === null || _a === void 0 ? void 0 : _a.value;
|
|
50
|
+
};
|
|
51
|
+
AcDbAcisTokenCursor.prototype.nextDouble = function () {
|
|
52
|
+
var _a;
|
|
53
|
+
return (_a = this.next(AcDbAcisSabTag.Double)) === null || _a === void 0 ? void 0 : _a.value;
|
|
54
|
+
};
|
|
55
|
+
return AcDbAcisTokenCursor;
|
|
56
|
+
}());
|
|
57
|
+
var refOfType = function (node, suffix) { var _a; return (_a = node.refs.find(function (r) { return r !== null && (r.type === suffix || r.type.endsWith(suffix)); })) !== null && _a !== void 0 ? _a : null; };
|
|
58
|
+
var refsOfType = function (node, type) {
|
|
59
|
+
return node.refs.filter(function (r) { return r !== null && r.type === type; });
|
|
60
|
+
};
|
|
61
|
+
function vertexPoint(vertex) {
|
|
62
|
+
if (vertex === null)
|
|
63
|
+
return null;
|
|
64
|
+
var point = refOfType(vertex, 'point');
|
|
65
|
+
if (point === null)
|
|
66
|
+
return null;
|
|
67
|
+
var vec = point.record.tokens.find(function (t) { return t.tag === AcDbAcisSabTag.LocationVec; });
|
|
68
|
+
return vec ? vec.value : null;
|
|
69
|
+
}
|
|
70
|
+
function curveParams(curve) {
|
|
71
|
+
var c = new AcDbAcisTokenCursor(curve.record.tokens);
|
|
72
|
+
if (curve.type === 'straight-curve') {
|
|
73
|
+
var origin_1 = c.nextVec();
|
|
74
|
+
var direction = c.nextVec();
|
|
75
|
+
if (origin_1 && direction)
|
|
76
|
+
return { kind: 'straight', origin: origin_1, direction: direction };
|
|
77
|
+
}
|
|
78
|
+
else if (curve.type === 'ellipse-curve') {
|
|
79
|
+
var center = c.nextVec();
|
|
80
|
+
var normal = c.nextVec();
|
|
81
|
+
var majorAxis = c.nextVec();
|
|
82
|
+
var ratio = c.nextDouble();
|
|
83
|
+
if (center && normal && majorAxis && ratio !== undefined) {
|
|
84
|
+
return { kind: 'ellipse', center: center, normal: normal, majorAxis: majorAxis, ratio: ratio };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (curve.type === 'intcurve-curve') {
|
|
88
|
+
return { kind: 'intcurve', controlPoints: intcurveControlPoints(curve.record.tokens) };
|
|
89
|
+
}
|
|
90
|
+
return { kind: 'unknown' };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Extract the `nubs`/`nurbs` B-spline control polygon from an intcurve-curve's
|
|
94
|
+
* subtype tokens. Layout (ACIS .sat): after the `nubs` entity-type come
|
|
95
|
+
* `degree`, a flag enum, `numDistinctKnots`, then `numDistinctKnots × (knot
|
|
96
|
+
* Double, multiplicity Int)`, then a run of control-point coordinate Doubles
|
|
97
|
+
* (grouped into x/y/z triples; any trailing fit-tolerance scalar is dropped).
|
|
98
|
+
*/
|
|
99
|
+
function intcurveControlPoints(tokens) {
|
|
100
|
+
var _a, _b, _c;
|
|
101
|
+
var nubs = tokens.findIndex(function (t) { return t.tag === AcDbAcisSabTag.EntityType && (t.value === 'nubs' || t.value === 'nurbs'); });
|
|
102
|
+
if (nubs < 0)
|
|
103
|
+
return [];
|
|
104
|
+
// numKnots is the last Int before the first Double after `nubs` (skips degree/flag).
|
|
105
|
+
var i = nubs + 1;
|
|
106
|
+
var numKnots = -1;
|
|
107
|
+
for (; i < tokens.length; i++) {
|
|
108
|
+
var t = tokens[i];
|
|
109
|
+
if (t === undefined)
|
|
110
|
+
break;
|
|
111
|
+
if (t.tag === AcDbAcisSabTag.Double)
|
|
112
|
+
break;
|
|
113
|
+
if (t.tag === AcDbAcisSabTag.Int)
|
|
114
|
+
numKnots = t.value;
|
|
115
|
+
if (t.tag === AcDbAcisSabTag.EntityType || t.tag === AcDbAcisSabTag.SubtypeEnd)
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
if (numKnots < 0)
|
|
119
|
+
return [];
|
|
120
|
+
for (var k = 0; k < numKnots; k++) {
|
|
121
|
+
if (((_a = tokens[i]) === null || _a === void 0 ? void 0 : _a.tag) !== AcDbAcisSabTag.Double)
|
|
122
|
+
return []; // knot value
|
|
123
|
+
i += 1;
|
|
124
|
+
if (((_b = tokens[i]) === null || _b === void 0 ? void 0 : _b.tag) === AcDbAcisSabTag.Int)
|
|
125
|
+
i += 1; // multiplicity (optional)
|
|
126
|
+
}
|
|
127
|
+
var coords = [];
|
|
128
|
+
while (((_c = tokens[i]) === null || _c === void 0 ? void 0 : _c.tag) === AcDbAcisSabTag.Double) {
|
|
129
|
+
var token = tokens[i];
|
|
130
|
+
if (token === undefined)
|
|
131
|
+
break;
|
|
132
|
+
coords.push(token.value);
|
|
133
|
+
i += 1;
|
|
134
|
+
}
|
|
135
|
+
var points = [];
|
|
136
|
+
for (var k = 0; k + 3 <= coords.length; k += 3) {
|
|
137
|
+
var x = coords[k];
|
|
138
|
+
var y = coords[k + 1];
|
|
139
|
+
var z = coords[k + 2];
|
|
140
|
+
if (x === undefined || y === undefined || z === undefined)
|
|
141
|
+
break;
|
|
142
|
+
points.push([x, y, z]);
|
|
143
|
+
}
|
|
144
|
+
return points;
|
|
145
|
+
}
|
|
146
|
+
function surfaceParams(surface) {
|
|
147
|
+
var c = new AcDbAcisTokenCursor(surface.record.tokens);
|
|
148
|
+
if (surface.type === 'plane-surface') {
|
|
149
|
+
var origin_2 = c.nextVec();
|
|
150
|
+
var normal = c.nextVec();
|
|
151
|
+
var uDir = c.nextVec();
|
|
152
|
+
if (origin_2 && normal)
|
|
153
|
+
return uDir ? { kind: 'plane', origin: origin_2, normal: normal, uDir: uDir } : { kind: 'plane', origin: origin_2, normal: normal };
|
|
154
|
+
}
|
|
155
|
+
else if (surface.type === 'cone-surface') {
|
|
156
|
+
var origin_3 = c.nextVec();
|
|
157
|
+
var axis = c.nextVec();
|
|
158
|
+
var majorAxis = c.nextVec();
|
|
159
|
+
var ratio = c.nextDouble();
|
|
160
|
+
var sineAngle = c.nextDouble();
|
|
161
|
+
var cosineAngle = c.nextDouble();
|
|
162
|
+
if (origin_3 && axis && majorAxis && ratio !== undefined && sineAngle !== undefined && cosineAngle !== undefined) {
|
|
163
|
+
return { kind: 'cone', origin: origin_3, axis: axis, majorAxis: majorAxis, ratio: ratio, sineAngle: sineAngle, cosineAngle: cosineAngle };
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (surface.type === 'torus-surface') {
|
|
167
|
+
var center = c.nextVec();
|
|
168
|
+
var axis = c.nextVec();
|
|
169
|
+
var majorRadius = c.nextDouble();
|
|
170
|
+
var minorRadius = c.nextDouble();
|
|
171
|
+
if (center && axis && majorRadius !== undefined && minorRadius !== undefined) {
|
|
172
|
+
return { kind: 'torus', center: center, axis: axis, majorRadius: majorRadius, minorRadius: minorRadius };
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else if (surface.type === 'sphere-surface') {
|
|
176
|
+
var center = c.nextVec();
|
|
177
|
+
var radius = c.nextDouble();
|
|
178
|
+
var uDir = c.nextVec();
|
|
179
|
+
var poleAxis = c.nextVec();
|
|
180
|
+
if (center && radius !== undefined && uDir && poleAxis) {
|
|
181
|
+
return { kind: 'sphere', center: center, radius: radius, uDir: uDir, poleAxis: poleAxis };
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return { kind: 'unknown' };
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Parses analytic surface parameters from a `-surface` ACIS node.
|
|
188
|
+
*
|
|
189
|
+
* @param surface - Resolved surface node from an ACIS model graph.
|
|
190
|
+
* @returns Discriminated surface parameters, or `{ kind: 'unknown' }`.
|
|
191
|
+
*/
|
|
192
|
+
export function acDbAcisParseSurfaceParams(surface) {
|
|
193
|
+
return surfaceParams(surface);
|
|
194
|
+
}
|
|
195
|
+
var SURFACE_KIND = {
|
|
196
|
+
'plane-surface': 'plane', 'cone-surface': 'cone', 'torus-surface': 'torus',
|
|
197
|
+
'sphere-surface': 'sphere', 'spline-surface': 'spline',
|
|
198
|
+
};
|
|
199
|
+
var CURVE_KIND = {
|
|
200
|
+
'straight-curve': 'straight', 'ellipse-curve': 'ellipse', 'intcurve-curve': 'intcurve',
|
|
201
|
+
};
|
|
202
|
+
/** Count coedges in a loop's ring (next-coedge in wire order), guarded against cycles. */
|
|
203
|
+
function loopCoedgeCount(loop) {
|
|
204
|
+
var _a;
|
|
205
|
+
var start = refOfType(loop, 'coedge');
|
|
206
|
+
if (start === null)
|
|
207
|
+
return 0;
|
|
208
|
+
var seen = new Set();
|
|
209
|
+
var coedge = start;
|
|
210
|
+
while (coedge !== null && !seen.has(coedge.index)) {
|
|
211
|
+
seen.add(coedge.index);
|
|
212
|
+
// next_coedge is the first coedge-typed ref (next, prev, partner follow in wire order).
|
|
213
|
+
coedge = (_a = refsOfType(coedge, 'coedge')[0]) !== null && _a !== void 0 ? _a : null;
|
|
214
|
+
}
|
|
215
|
+
return seen.size;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Extract the B-rep geometry from a decoded ACIS model. Never throws; unresolved
|
|
219
|
+
* topology/geometry is reported via `diagnostics` and `'unknown'` type labels.
|
|
220
|
+
*
|
|
221
|
+
* @param model - Resolved ACIS model graph.
|
|
222
|
+
* @returns Extracted vertices, edges, faces, bounding box, and diagnostics.
|
|
223
|
+
*/
|
|
224
|
+
export function extractAcDbAcisGeometry(model) {
|
|
225
|
+
var diagnostics = [];
|
|
226
|
+
var minX = Infinity, minY = Infinity, minZ = Infinity;
|
|
227
|
+
var maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;
|
|
228
|
+
var grow = function (p) {
|
|
229
|
+
if (p[0] < minX)
|
|
230
|
+
minX = p[0];
|
|
231
|
+
if (p[0] > maxX)
|
|
232
|
+
maxX = p[0];
|
|
233
|
+
if (p[1] < minY)
|
|
234
|
+
minY = p[1];
|
|
235
|
+
if (p[1] > maxY)
|
|
236
|
+
maxY = p[1];
|
|
237
|
+
if (p[2] < minZ)
|
|
238
|
+
minZ = p[2];
|
|
239
|
+
if (p[2] > maxZ)
|
|
240
|
+
maxZ = p[2];
|
|
241
|
+
};
|
|
242
|
+
var vertices = model.nodesOfType('vertex').map(function (v) {
|
|
243
|
+
var point = vertexPoint(v);
|
|
244
|
+
if (point === null)
|
|
245
|
+
diagnostics.push("vertex#".concat(String(v.index), ": no resolvable point"));
|
|
246
|
+
else
|
|
247
|
+
grow(point);
|
|
248
|
+
return { nodeIndex: v.index, point: point };
|
|
249
|
+
});
|
|
250
|
+
var edges = model.nodesOfType('edge').map(function (e) {
|
|
251
|
+
var _a, _b, _c;
|
|
252
|
+
var verts = refsOfType(e, 'vertex');
|
|
253
|
+
var start = vertexPoint((_a = verts[0]) !== null && _a !== void 0 ? _a : null);
|
|
254
|
+
var end = vertexPoint((_b = verts[1]) !== null && _b !== void 0 ? _b : null);
|
|
255
|
+
var curveNode = refOfType(e, '-curve');
|
|
256
|
+
var curveType = curveNode ? ((_c = CURVE_KIND[curveNode.type]) !== null && _c !== void 0 ? _c : 'unknown') : 'unknown';
|
|
257
|
+
var curve = curveNode ? curveParams(curveNode) : undefined;
|
|
258
|
+
if (start !== null && end !== null && start[0] === end[0] && start[1] === end[1] && start[2] === end[2]) {
|
|
259
|
+
diagnostics.push("edge#".concat(String(e.index), ": degenerate (coincident endpoints)"));
|
|
260
|
+
}
|
|
261
|
+
return curve === undefined || curve.kind === 'unknown'
|
|
262
|
+
? { nodeIndex: e.index, start: start, end: end, curveType: curveType }
|
|
263
|
+
: { nodeIndex: e.index, start: start, end: end, curveType: curveType, curve: curve };
|
|
264
|
+
});
|
|
265
|
+
var faces = model.nodesOfType('face').map(function (f) {
|
|
266
|
+
var _a;
|
|
267
|
+
var surfaceNode = refOfType(f, '-surface');
|
|
268
|
+
var surfaceType = surfaceNode ? ((_a = SURFACE_KIND[surfaceNode.type]) !== null && _a !== void 0 ? _a : 'unknown') : 'unknown';
|
|
269
|
+
var surface = surfaceNode ? surfaceParams(surfaceNode) : undefined;
|
|
270
|
+
// Walk the next-loop chain (loop-typed ref), guarded against cycles.
|
|
271
|
+
var loops = [];
|
|
272
|
+
var seen = new Set();
|
|
273
|
+
var loop = refOfType(f, 'loop');
|
|
274
|
+
while (loop !== null && !seen.has(loop.index)) {
|
|
275
|
+
seen.add(loop.index);
|
|
276
|
+
loops.push({ nodeIndex: loop.index, coedgeCount: loopCoedgeCount(loop) });
|
|
277
|
+
loop = refOfType(loop, 'loop');
|
|
278
|
+
}
|
|
279
|
+
if (surfaceNode === null)
|
|
280
|
+
diagnostics.push("face#".concat(String(f.index), ": no surface"));
|
|
281
|
+
return surface === undefined || surface.kind === 'unknown'
|
|
282
|
+
? { nodeIndex: f.index, surfaceType: surfaceType, loops: loops }
|
|
283
|
+
: { nodeIndex: f.index, surfaceType: surfaceType, surface: surface, loops: loops };
|
|
284
|
+
});
|
|
285
|
+
var bbox = minX === Infinity
|
|
286
|
+
? null
|
|
287
|
+
: { min: [minX, minY, minZ], max: [maxX, maxY, maxZ] };
|
|
288
|
+
return { vertices: vertices, edges: edges, faces: faces, bbox: bbox, diagnostics: diagnostics };
|
|
289
|
+
}
|
|
290
|
+
var v3add = function (a, b) { return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; };
|
|
291
|
+
var v3mul = function (a, s) { return [a[0] * s, a[1] * s, a[2] * s]; };
|
|
292
|
+
var v3len = function (a) { return Math.hypot(a[0], a[1], a[2]); };
|
|
293
|
+
var v3cross = function (a, b) {
|
|
294
|
+
return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
|
|
295
|
+
};
|
|
296
|
+
var v3norm = function (a) {
|
|
297
|
+
var length = Math.hypot(a[0], a[1], a[2]);
|
|
298
|
+
return length > 0 ? [a[0] / length, a[1] / length, a[2] / length] : [0, 0, 0];
|
|
299
|
+
};
|
|
300
|
+
/**
|
|
301
|
+
* Reads the curve parameter interval carried on an `edge` record (first two doubles).
|
|
302
|
+
*
|
|
303
|
+
* @param edge - Resolved `edge` node from an ACIS model graph.
|
|
304
|
+
* @returns Parameter interval `[t0, t1]`, or `null` when unavailable.
|
|
305
|
+
*/
|
|
306
|
+
export function acDbAcisEdgeParamBounds(edge) {
|
|
307
|
+
var e_1, _a;
|
|
308
|
+
var values = [];
|
|
309
|
+
try {
|
|
310
|
+
for (var _b = __values(edge.record.tokens), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
311
|
+
var token = _c.value;
|
|
312
|
+
if (token.tag === AcDbAcisSabTag.Double) {
|
|
313
|
+
values.push(token.value);
|
|
314
|
+
if (values.length === 2)
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
320
|
+
finally {
|
|
321
|
+
try {
|
|
322
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
323
|
+
}
|
|
324
|
+
finally { if (e_1) throw e_1.error; }
|
|
325
|
+
}
|
|
326
|
+
var start = values[0];
|
|
327
|
+
var end = values[1];
|
|
328
|
+
return start === undefined || end === undefined ? null : [start, end];
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Sample an ellipse-curve arc over its parameter interval.
|
|
332
|
+
*
|
|
333
|
+
* @param params - Parsed ellipse curve parameters.
|
|
334
|
+
* @param t0 - Start parameter in radians.
|
|
335
|
+
* @param t1 - End parameter in radians.
|
|
336
|
+
* @param samples - Number of interior segments (≥1).
|
|
337
|
+
* @returns Sampled points along the arc, including both endpoints.
|
|
338
|
+
*/
|
|
339
|
+
export function sampleAcDbAcisEllipseArc(params, t0, t1, samples) {
|
|
340
|
+
var minor = v3mul(v3cross(v3norm(params.normal), params.majorAxis), params.ratio);
|
|
341
|
+
var steps = Math.max(1, samples);
|
|
342
|
+
var out = [];
|
|
343
|
+
for (var i = 0; i <= steps; i++) {
|
|
344
|
+
var t = t0 + ((t1 - t0) * i) / steps;
|
|
345
|
+
out.push(v3add(params.center, v3add(v3mul(params.majorAxis, Math.cos(t)), v3mul(minor, Math.sin(t)))));
|
|
346
|
+
}
|
|
347
|
+
return out;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Sample wireframe circles for a sphere surface (latitude/longitude-style rings).
|
|
351
|
+
*
|
|
352
|
+
* @param params - Parsed sphere surface parameters.
|
|
353
|
+
* @param segments - Approximate number of samples per full ring (default 16).
|
|
354
|
+
* @returns Closed polylines forming a sphere wireframe scaffold.
|
|
355
|
+
*/
|
|
356
|
+
export function sampleAcDbAcisSphereWireframe(params, segments) {
|
|
357
|
+
var e_2, _a;
|
|
358
|
+
if (segments === void 0) { segments = 16; }
|
|
359
|
+
var pole = v3norm(params.poleAxis);
|
|
360
|
+
var u = v3norm(params.uDir);
|
|
361
|
+
var v = v3cross(pole, u);
|
|
362
|
+
if (v3len(v) < 1e-9) {
|
|
363
|
+
u = Math.abs(pole[0]) < 0.9 ? [1, 0, 0] : [0, 1, 0];
|
|
364
|
+
v = v3norm(v3cross(pole, u));
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
v = v3norm(v);
|
|
368
|
+
}
|
|
369
|
+
u = v3norm(v3cross(v, pole));
|
|
370
|
+
var rings = [];
|
|
371
|
+
var sampleRing = function (axisA, axisB) {
|
|
372
|
+
var pts = [];
|
|
373
|
+
var steps = Math.max(8, segments);
|
|
374
|
+
for (var i = 0; i <= steps; i++) {
|
|
375
|
+
var t = (Math.PI * 2 * i) / steps;
|
|
376
|
+
pts.push(v3add(params.center, v3add(v3mul(axisA, params.radius * Math.cos(t)), v3mul(axisB, params.radius * Math.sin(t)))));
|
|
377
|
+
}
|
|
378
|
+
rings.push(pts);
|
|
379
|
+
};
|
|
380
|
+
sampleRing(u, v);
|
|
381
|
+
sampleRing(u, pole);
|
|
382
|
+
sampleRing(v, pole);
|
|
383
|
+
try {
|
|
384
|
+
for (var _b = __values([-0.5, 0.5]), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
385
|
+
var lat = _c.value;
|
|
386
|
+
var offset = v3mul(pole, params.radius * lat);
|
|
387
|
+
var ringCenter = v3add(params.center, offset);
|
|
388
|
+
var ringRadius = params.radius * Math.sqrt(Math.max(0, 1 - lat * lat));
|
|
389
|
+
if (ringRadius > 1e-6) {
|
|
390
|
+
var pts = [];
|
|
391
|
+
var steps = Math.max(8, segments);
|
|
392
|
+
for (var i = 0; i <= steps; i++) {
|
|
393
|
+
var t = (Math.PI * 2 * i) / steps;
|
|
394
|
+
pts.push(v3add(ringCenter, v3add(v3mul(u, ringRadius * Math.cos(t)), v3mul(v, ringRadius * Math.sin(t)))));
|
|
395
|
+
}
|
|
396
|
+
rings.push(pts);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
401
|
+
finally {
|
|
402
|
+
try {
|
|
403
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
404
|
+
}
|
|
405
|
+
finally { if (e_2) throw e_2.error; }
|
|
406
|
+
}
|
|
407
|
+
return rings;
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=AcDbAcisGeometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisGeometry.js","sourceRoot":"","sources":["../../src/acis/AcDbAcisGeometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SAB tag bytes (ezdxf `Tags`).
|
|
3
|
+
* Each tag identifies the type of the next value in a SAB record stream.
|
|
4
|
+
*/
|
|
5
|
+
export declare const AcDbAcisSabTag: {
|
|
6
|
+
readonly NoType: 0;
|
|
7
|
+
readonly Byte: 1;
|
|
8
|
+
readonly Char: 2;
|
|
9
|
+
readonly Short: 3;
|
|
10
|
+
readonly Int: 4;
|
|
11
|
+
readonly Float: 5;
|
|
12
|
+
readonly Double: 6;
|
|
13
|
+
readonly Str: 7;
|
|
14
|
+
readonly Str2: 8;
|
|
15
|
+
readonly Str3: 9;
|
|
16
|
+
readonly BoolTrue: 10;
|
|
17
|
+
readonly BoolFalse: 11;
|
|
18
|
+
readonly Pointer: 12;
|
|
19
|
+
readonly EntityType: 13;
|
|
20
|
+
readonly EntityTypeEx: 14;
|
|
21
|
+
readonly SubtypeStart: 15;
|
|
22
|
+
readonly SubtypeEnd: 16;
|
|
23
|
+
readonly RecordEnd: 17;
|
|
24
|
+
readonly LiteralStr: 18;
|
|
25
|
+
readonly LocationVec: 19;
|
|
26
|
+
readonly DirectionVec: 20;
|
|
27
|
+
readonly Enum: 21;
|
|
28
|
+
readonly Unknown0x17: 23;
|
|
29
|
+
};
|
|
30
|
+
/** A 3D vector tuple `[x, y, z]` as stored in SAB location/direction tags. */
|
|
31
|
+
export type AcDbAcisSabVector = readonly [number, number, number];
|
|
32
|
+
/** Possible decoded values for a single SAB field token. */
|
|
33
|
+
export type AcDbAcisSabTokenValue = number | boolean | string | AcDbAcisSabVector;
|
|
34
|
+
/**
|
|
35
|
+
* One decoded field token from a SAB record stream.
|
|
36
|
+
*/
|
|
37
|
+
export interface AcDbAcisSabToken {
|
|
38
|
+
/** SAB tag byte identifying the value type. */
|
|
39
|
+
readonly tag: number;
|
|
40
|
+
/** Decoded field value. */
|
|
41
|
+
readonly value: AcDbAcisSabTokenValue;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* One ACIS entity record from a SAB stream.
|
|
45
|
+
*/
|
|
46
|
+
export interface AcDbAcisSabRecord {
|
|
47
|
+
/** Record identity = the first entity-type, e.g. `"body"`, `"plane-surface"`. */
|
|
48
|
+
readonly type: string;
|
|
49
|
+
/**
|
|
50
|
+
* All field tokens in wire order, including entity-type tokens (the first is
|
|
51
|
+
* the record identity; later ones name nested subtypes, e.g. an
|
|
52
|
+
* `intcurve-curve`'s `nullbs` geometry).
|
|
53
|
+
*/
|
|
54
|
+
readonly tokens: readonly AcDbAcisSabToken[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Header metadata parsed from the start of a SAB stream.
|
|
58
|
+
*/
|
|
59
|
+
export interface AcDbAcisSabHeader {
|
|
60
|
+
/** File signature, e.g. `"ACIS BinaryFile"` or `"ASM BinaryFile4"`. */
|
|
61
|
+
readonly signature: string;
|
|
62
|
+
/** SAB format version number. */
|
|
63
|
+
readonly version: number;
|
|
64
|
+
/** Total record count declared in the header. */
|
|
65
|
+
readonly numRecords: number;
|
|
66
|
+
/** Entity count declared in the header. */
|
|
67
|
+
readonly numEntities: number;
|
|
68
|
+
/** Header flags bitmask. */
|
|
69
|
+
readonly flags: number;
|
|
70
|
+
/** Product identifier string. */
|
|
71
|
+
readonly productId: string;
|
|
72
|
+
/** ACIS kernel version string. */
|
|
73
|
+
readonly acisVersion: string;
|
|
74
|
+
/** Creation timestamp string from the SAB header. */
|
|
75
|
+
readonly creationDate: string;
|
|
76
|
+
/** Model units expressed in millimeters. */
|
|
77
|
+
readonly unitsInMm: number;
|
|
78
|
+
/** Resolution tolerance from the SAB header. */
|
|
79
|
+
readonly resTol: number;
|
|
80
|
+
/** Normal tolerance from the SAB header. */
|
|
81
|
+
readonly norTol: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Fully parsed SAB payload: file header plus the ordered record list.
|
|
85
|
+
*/
|
|
86
|
+
export interface AcDbAcisSabData {
|
|
87
|
+
/** Parsed SAB file header. */
|
|
88
|
+
readonly header: AcDbAcisSabHeader;
|
|
89
|
+
/** Ordered list of decoded entity records. */
|
|
90
|
+
readonly records: readonly AcDbAcisSabRecord[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Decode a byte-true SAB stream into a header + record list. Reading stops at
|
|
94
|
+
* the `End-of-(ACIS|ASM)-data` record (inclusive) or when the data is exhausted.
|
|
95
|
+
*
|
|
96
|
+
* @param data - Raw SAB byte stream starting at (or containing) a known signature.
|
|
97
|
+
* @returns Parsed header and records.
|
|
98
|
+
* @throws `RangeError` on a malformed or truncated stream.
|
|
99
|
+
*/
|
|
100
|
+
export declare function parseAcDbAcisSab(data: Uint8Array): AcDbAcisSabData;
|
|
101
|
+
//# sourceMappingURL=AcDbAcisSab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisSab.d.ts","sourceRoot":"","sources":["../../src/acis/AcDbAcisSab.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;CAMjB,CAAC;AAEX,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAElE,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAgID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAUlE"}
|