@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,250 @@
|
|
|
1
|
+
// SAB (Standard ACIS Binary) low-level decoder.
|
|
2
|
+
//
|
|
3
|
+
// Decodes the byte-true SAB stream produced by `extractAcisSabStream` (see
|
|
4
|
+
// ../acisDecode.ts) into a typed record list: the binary tag stream → a header
|
|
5
|
+
// + a list of records, each with an entity-type name and its field tokens.
|
|
6
|
+
// This is the foundation for the B-rep entity DAG (./AcDbAcisEntities.ts).
|
|
7
|
+
//
|
|
8
|
+
// The tag/byte layout is ported from ezdxf's `ezdxf/acis/sab.py`
|
|
9
|
+
// (Copyright (c) Manfred Moitzi, MIT License) — the SAB byte format itself is
|
|
10
|
+
// not copyrightable; the field-width conventions follow that reference.
|
|
11
|
+
var __values = (this && this.__values) || function(o) {
|
|
12
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
13
|
+
if (m) return m.call(o);
|
|
14
|
+
if (o && typeof o.length === "number") return {
|
|
15
|
+
next: function () {
|
|
16
|
+
if (o && i >= o.length) o = void 0;
|
|
17
|
+
return { value: o && o[i++], done: !o };
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
21
|
+
};
|
|
22
|
+
var SIGNATURES = ['ACIS BinaryFile', 'ASM BinaryFile4'];
|
|
23
|
+
var DATA_END_MARKERS = new Set([
|
|
24
|
+
'End-of-ACIS-data',
|
|
25
|
+
'End-of-ASM-data',
|
|
26
|
+
'End-of-ACIS-History-data',
|
|
27
|
+
]);
|
|
28
|
+
/**
|
|
29
|
+
* SAB tag bytes (ezdxf `Tags`).
|
|
30
|
+
* Each tag identifies the type of the next value in a SAB record stream.
|
|
31
|
+
*/
|
|
32
|
+
export var AcDbAcisSabTag = {
|
|
33
|
+
NoType: 0x00, Byte: 0x01, Char: 0x02, Short: 0x03, Int: 0x04, Float: 0x05,
|
|
34
|
+
Double: 0x06, Str: 0x07, Str2: 0x08, Str3: 0x09, BoolTrue: 0x0a,
|
|
35
|
+
BoolFalse: 0x0b, Pointer: 0x0c, EntityType: 0x0d, EntityTypeEx: 0x0e,
|
|
36
|
+
SubtypeStart: 0x0f, SubtypeEnd: 0x10, RecordEnd: 0x11, LiteralStr: 0x12,
|
|
37
|
+
LocationVec: 0x13, DirectionVec: 0x14, Enum: 0x15, Unknown0x17: 0x17,
|
|
38
|
+
};
|
|
39
|
+
/** Sequential byte reader for low-level SAB decoding. */
|
|
40
|
+
var AcDbAcisSabByteReader = /** @class */ (function () {
|
|
41
|
+
function AcDbAcisSabByteReader(data) {
|
|
42
|
+
this.data = data;
|
|
43
|
+
this.index = 0;
|
|
44
|
+
this.view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
45
|
+
}
|
|
46
|
+
Object.defineProperty(AcDbAcisSabByteReader.prototype, "hasData", {
|
|
47
|
+
get: function () { return this.index < this.data.length; },
|
|
48
|
+
enumerable: false,
|
|
49
|
+
configurable: true
|
|
50
|
+
});
|
|
51
|
+
AcDbAcisSabByteReader.prototype.require = function (n) {
|
|
52
|
+
if (this.index + n > this.data.length) {
|
|
53
|
+
throw new RangeError("SAB: read past end of data (need ".concat(String(n), " at ").concat(String(this.index), ")"));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
AcDbAcisSabByteReader.prototype.readByte = function () {
|
|
57
|
+
var _a;
|
|
58
|
+
this.require(1);
|
|
59
|
+
return (_a = this.data[this.index++]) !== null && _a !== void 0 ? _a : 0;
|
|
60
|
+
};
|
|
61
|
+
AcDbAcisSabByteReader.prototype.readInt = function () {
|
|
62
|
+
this.require(4);
|
|
63
|
+
var v = this.view.getInt32(this.index, true);
|
|
64
|
+
this.index += 4;
|
|
65
|
+
return v;
|
|
66
|
+
};
|
|
67
|
+
AcDbAcisSabByteReader.prototype.readFloat = function () {
|
|
68
|
+
this.require(8);
|
|
69
|
+
var v = this.view.getFloat64(this.index, true);
|
|
70
|
+
this.index += 8;
|
|
71
|
+
return v;
|
|
72
|
+
};
|
|
73
|
+
AcDbAcisSabByteReader.prototype.readStr = function (length) {
|
|
74
|
+
this.require(length);
|
|
75
|
+
var text = LATIN1.decode(this.data.subarray(this.index, this.index + length));
|
|
76
|
+
this.index += length;
|
|
77
|
+
return text;
|
|
78
|
+
};
|
|
79
|
+
return AcDbAcisSabByteReader;
|
|
80
|
+
}());
|
|
81
|
+
var LATIN1 = new TextDecoder('latin1');
|
|
82
|
+
function readHeader(r, data) {
|
|
83
|
+
var e_1, _a;
|
|
84
|
+
var signature = '';
|
|
85
|
+
try {
|
|
86
|
+
for (var SIGNATURES_1 = __values(SIGNATURES), SIGNATURES_1_1 = SIGNATURES_1.next(); !SIGNATURES_1_1.done; SIGNATURES_1_1 = SIGNATURES_1.next()) {
|
|
87
|
+
var sig = SIGNATURES_1_1.value;
|
|
88
|
+
if (startsWithAscii(data, sig)) {
|
|
89
|
+
signature = sig;
|
|
90
|
+
r.index = sig.length;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
96
|
+
finally {
|
|
97
|
+
try {
|
|
98
|
+
if (SIGNATURES_1_1 && !SIGNATURES_1_1.done && (_a = SIGNATURES_1.return)) _a.call(SIGNATURES_1);
|
|
99
|
+
}
|
|
100
|
+
finally { if (e_1) throw e_1.error; }
|
|
101
|
+
}
|
|
102
|
+
if (signature === '')
|
|
103
|
+
throw new RangeError('SAB: not a SAB stream (missing signature)');
|
|
104
|
+
var version = r.readInt();
|
|
105
|
+
var numRecords = r.readInt();
|
|
106
|
+
var numEntities = r.readInt();
|
|
107
|
+
var flags = r.readInt();
|
|
108
|
+
var productId = readStrTag(r);
|
|
109
|
+
var acisVersion = readStrTag(r);
|
|
110
|
+
var creationDate = readStrTag(r);
|
|
111
|
+
var unitsInMm = readDoubleTag(r);
|
|
112
|
+
var resTol = readDoubleTag(r);
|
|
113
|
+
var norTol = readDoubleTag(r);
|
|
114
|
+
return {
|
|
115
|
+
signature: signature,
|
|
116
|
+
version: version,
|
|
117
|
+
numRecords: numRecords,
|
|
118
|
+
numEntities: numEntities,
|
|
119
|
+
flags: flags,
|
|
120
|
+
productId: productId,
|
|
121
|
+
acisVersion: acisVersion,
|
|
122
|
+
creationDate: creationDate,
|
|
123
|
+
unitsInMm: unitsInMm,
|
|
124
|
+
resTol: resTol,
|
|
125
|
+
norTol: norTol,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function readStrTag(r) {
|
|
129
|
+
if (r.readByte() !== AcDbAcisSabTag.Str)
|
|
130
|
+
throw new RangeError('SAB: expected string tag (0x07)');
|
|
131
|
+
return r.readStr(r.readByte());
|
|
132
|
+
}
|
|
133
|
+
function readDoubleTag(r) {
|
|
134
|
+
if (r.readByte() !== AcDbAcisSabTag.Double)
|
|
135
|
+
throw new RangeError('SAB: expected double tag (0x06)');
|
|
136
|
+
return r.readFloat();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Read one record (tokens up to RECORD_END, or the data-end marker at stream
|
|
140
|
+
* end). Mirrors ezdxf `Decoder.read_record`: the entity-type name is assembled
|
|
141
|
+
* from one or more ENTITY_TYPE_EX parts plus a final ENTITY_TYPE, joined by `-`.
|
|
142
|
+
*/
|
|
143
|
+
function readRecord(r) {
|
|
144
|
+
var tokens = [];
|
|
145
|
+
var typeParts = [];
|
|
146
|
+
var type = '';
|
|
147
|
+
var subtypeLevel = 0;
|
|
148
|
+
for (;;) {
|
|
149
|
+
if (!r.hasData) {
|
|
150
|
+
if (DATA_END_MARKERS.has(type))
|
|
151
|
+
return { type: type, tokens: tokens };
|
|
152
|
+
throw new RangeError('SAB: premature end of data');
|
|
153
|
+
}
|
|
154
|
+
var tag = r.readByte();
|
|
155
|
+
switch (tag) {
|
|
156
|
+
case AcDbAcisSabTag.Int:
|
|
157
|
+
tokens.push({ tag: tag, value: r.readInt() });
|
|
158
|
+
break;
|
|
159
|
+
case AcDbAcisSabTag.Double:
|
|
160
|
+
tokens.push({ tag: tag, value: r.readFloat() });
|
|
161
|
+
break;
|
|
162
|
+
case AcDbAcisSabTag.Str:
|
|
163
|
+
tokens.push({ tag: tag, value: r.readStr(r.readByte()) });
|
|
164
|
+
break;
|
|
165
|
+
case AcDbAcisSabTag.Pointer:
|
|
166
|
+
tokens.push({ tag: tag, value: r.readInt() });
|
|
167
|
+
break;
|
|
168
|
+
case AcDbAcisSabTag.BoolTrue:
|
|
169
|
+
tokens.push({ tag: tag, value: true });
|
|
170
|
+
break;
|
|
171
|
+
case AcDbAcisSabTag.BoolFalse:
|
|
172
|
+
tokens.push({ tag: tag, value: false });
|
|
173
|
+
break;
|
|
174
|
+
case AcDbAcisSabTag.LiteralStr:
|
|
175
|
+
tokens.push({ tag: tag, value: r.readStr(r.readInt()) });
|
|
176
|
+
break;
|
|
177
|
+
case AcDbAcisSabTag.EntityTypeEx:
|
|
178
|
+
typeParts.push(r.readStr(r.readByte()));
|
|
179
|
+
break;
|
|
180
|
+
case AcDbAcisSabTag.EntityType: {
|
|
181
|
+
typeParts.push(r.readStr(r.readByte()));
|
|
182
|
+
var name_1 = typeParts.join('-');
|
|
183
|
+
typeParts.length = 0;
|
|
184
|
+
// The record's identity is the FIRST entity-type. Later ENTITY_TYPE
|
|
185
|
+
// tokens belong to nested subtypes (e.g. an intcurve-curve's `nullbs`
|
|
186
|
+
// geometry) — keep them as tokens, don't overwrite the record type.
|
|
187
|
+
if (type === '')
|
|
188
|
+
type = name_1;
|
|
189
|
+
tokens.push({ tag: tag, value: name_1 });
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
case AcDbAcisSabTag.LocationVec:
|
|
193
|
+
tokens.push({ tag: tag, value: readVec(r) });
|
|
194
|
+
break;
|
|
195
|
+
case AcDbAcisSabTag.DirectionVec:
|
|
196
|
+
tokens.push({ tag: tag, value: readVec(r) });
|
|
197
|
+
break;
|
|
198
|
+
case AcDbAcisSabTag.Enum:
|
|
199
|
+
tokens.push({ tag: tag, value: r.readInt() });
|
|
200
|
+
break;
|
|
201
|
+
case AcDbAcisSabTag.Unknown0x17:
|
|
202
|
+
tokens.push({ tag: tag, value: r.readFloat() });
|
|
203
|
+
break;
|
|
204
|
+
case AcDbAcisSabTag.SubtypeStart:
|
|
205
|
+
subtypeLevel++;
|
|
206
|
+
tokens.push({ tag: tag, value: subtypeLevel });
|
|
207
|
+
break;
|
|
208
|
+
case AcDbAcisSabTag.SubtypeEnd:
|
|
209
|
+
tokens.push({ tag: tag, value: subtypeLevel });
|
|
210
|
+
subtypeLevel--;
|
|
211
|
+
break;
|
|
212
|
+
case AcDbAcisSabTag.RecordEnd: return { type: type, tokens: tokens };
|
|
213
|
+
default:
|
|
214
|
+
throw new RangeError("SAB: unknown tag 0x".concat(tag.toString(16), " (").concat(String(tag), ") in record '").concat(type, "'"));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function readVec(r) {
|
|
219
|
+
return [r.readFloat(), r.readFloat(), r.readFloat()];
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Decode a byte-true SAB stream into a header + record list. Reading stops at
|
|
223
|
+
* the `End-of-(ACIS|ASM)-data` record (inclusive) or when the data is exhausted.
|
|
224
|
+
*
|
|
225
|
+
* @param data - Raw SAB byte stream starting at (or containing) a known signature.
|
|
226
|
+
* @returns Parsed header and records.
|
|
227
|
+
* @throws `RangeError` on a malformed or truncated stream.
|
|
228
|
+
*/
|
|
229
|
+
export function parseAcDbAcisSab(data) {
|
|
230
|
+
var r = new AcDbAcisSabByteReader(data);
|
|
231
|
+
var header = readHeader(r, data);
|
|
232
|
+
var records = [];
|
|
233
|
+
while (r.hasData) {
|
|
234
|
+
var record = readRecord(r);
|
|
235
|
+
records.push(record);
|
|
236
|
+
if (DATA_END_MARKERS.has(record.type))
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
return { header: header, records: records };
|
|
240
|
+
}
|
|
241
|
+
function startsWithAscii(data, prefix) {
|
|
242
|
+
if (data.length < prefix.length)
|
|
243
|
+
return false;
|
|
244
|
+
for (var i = 0; i < prefix.length; i++) {
|
|
245
|
+
if (data[i] !== prefix.charCodeAt(i))
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=AcDbAcisSab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisSab.js","sourceRoot":"","sources":["../../src/acis/AcDbAcisSab.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort wireframe extraction from SAT/ASM text (non-SAB) payloads.
|
|
3
|
+
* Used when ACSH history provides inline text rather than ACDSDATA binary.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Extract wireframe segments from a SAT text stream by matching common curve
|
|
7
|
+
* records. This is a fallback when SAB decoding is unavailable.
|
|
8
|
+
*
|
|
9
|
+
* @param satText - Plain SAT/ASM text payload.
|
|
10
|
+
* @returns Flat `Float32Array` of line-segment endpoint pairs (`[x,y,z,x,y,z,...]`).
|
|
11
|
+
*/
|
|
12
|
+
export declare function acDbAcisWireframeSegmentsFromSatText(satText: string): Float32Array;
|
|
13
|
+
//# sourceMappingURL=AcDbAcisSatWireframe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisSatWireframe.d.ts","sourceRoot":"","sources":["../../src/acis/AcDbAcisSatWireframe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4FH;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAuBlF"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort wireframe extraction from SAT/ASM text (non-SAB) payloads.
|
|
3
|
+
* Used when ACSH history provides inline text rather than ACDSDATA binary.
|
|
4
|
+
*/
|
|
5
|
+
var __values = (this && this.__values) || function(o) {
|
|
6
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
7
|
+
if (m) return m.call(o);
|
|
8
|
+
if (o && typeof o.length === "number") return {
|
|
9
|
+
next: function () {
|
|
10
|
+
if (o && i >= o.length) o = void 0;
|
|
11
|
+
return { value: o && o[i++], done: !o };
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
15
|
+
};
|
|
16
|
+
import { sampleAcDbAcisEllipseArc, } from './AcDbAcisGeometry';
|
|
17
|
+
var DEFAULT_ELLIPSE_SAMPLES = 16;
|
|
18
|
+
/**
|
|
19
|
+
* Reads numeric tokens from one SAT record, skipping pointers and sentinel tokens.
|
|
20
|
+
*
|
|
21
|
+
* @param record - One SAT entity record line.
|
|
22
|
+
* @param skipLeadingIndex - When true, skip the leading record index token.
|
|
23
|
+
*/
|
|
24
|
+
function readSatNumericTokens(record, skipLeadingIndex) {
|
|
25
|
+
var e_1, _a;
|
|
26
|
+
if (skipLeadingIndex === void 0) { skipLeadingIndex = true; }
|
|
27
|
+
var parts = record.split(/\s+/);
|
|
28
|
+
var values = [];
|
|
29
|
+
var skippedIndex = !skipLeadingIndex;
|
|
30
|
+
try {
|
|
31
|
+
for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
|
|
32
|
+
var part = parts_1_1.value;
|
|
33
|
+
if (!skippedIndex && /^-?\d+$/.test(part)) {
|
|
34
|
+
skippedIndex = true;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (part.startsWith('$') || part === 'I' || part === 'F' || part === '#') {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
var value = Number.parseFloat(part);
|
|
41
|
+
if (Number.isFinite(value)) {
|
|
42
|
+
values.push(value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
47
|
+
finally {
|
|
48
|
+
try {
|
|
49
|
+
if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
|
|
50
|
+
}
|
|
51
|
+
finally { if (e_1) throw e_1.error; }
|
|
52
|
+
}
|
|
53
|
+
return values;
|
|
54
|
+
}
|
|
55
|
+
/** Appends one line segment (`a` → `b`) to a flat coordinate buffer. */
|
|
56
|
+
function pushSegment(segments, a, b) {
|
|
57
|
+
segments.push(a[0], a[1], a[2], b[0], b[1], b[2]);
|
|
58
|
+
}
|
|
59
|
+
/** Splits SAT text into individual `#`-delimited entity records. */
|
|
60
|
+
function splitSatRecords(satText) {
|
|
61
|
+
return satText
|
|
62
|
+
.split('#')
|
|
63
|
+
.map(function (record) { return record.trim(); })
|
|
64
|
+
.filter(function (record) { return record.length > 0; });
|
|
65
|
+
}
|
|
66
|
+
/** Parses a `straight-curve` SAT record into start/end segment endpoints. */
|
|
67
|
+
function parseStraightCurve(record) {
|
|
68
|
+
if (!record.includes('straight-curve')) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
var values = readSatNumericTokens(record);
|
|
72
|
+
if (values.length < 6) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
var ox = values[0];
|
|
76
|
+
var oy = values[1];
|
|
77
|
+
var oz = values[2];
|
|
78
|
+
var dx = values[3];
|
|
79
|
+
var dy = values[4];
|
|
80
|
+
var dz = values[5];
|
|
81
|
+
return [
|
|
82
|
+
[ox, oy, oz],
|
|
83
|
+
[ox + dx, oy + dy, oz + dz],
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
/** Parses an `ellipse-curve` SAT record into analytic curve parameters. */
|
|
87
|
+
function parseEllipseCurve(record) {
|
|
88
|
+
if (!record.includes('ellipse-curve')) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
var values = readSatNumericTokens(record);
|
|
92
|
+
if (values.length < 10) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
kind: 'ellipse',
|
|
97
|
+
center: [values[0], values[1], values[2]],
|
|
98
|
+
normal: [values[3], values[4], values[5]],
|
|
99
|
+
majorAxis: [values[6], values[7], values[8]],
|
|
100
|
+
ratio: values[9],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Extract wireframe segments from a SAT text stream by matching common curve
|
|
105
|
+
* records. This is a fallback when SAB decoding is unavailable.
|
|
106
|
+
*
|
|
107
|
+
* @param satText - Plain SAT/ASM text payload.
|
|
108
|
+
* @returns Flat `Float32Array` of line-segment endpoint pairs (`[x,y,z,x,y,z,...]`).
|
|
109
|
+
*/
|
|
110
|
+
export function acDbAcisWireframeSegmentsFromSatText(satText) {
|
|
111
|
+
var e_2, _a;
|
|
112
|
+
var segments = [];
|
|
113
|
+
if (!satText || satText.trim().length === 0) {
|
|
114
|
+
return new Float32Array(0);
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
for (var _b = __values(splitSatRecords(satText)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
118
|
+
var record = _c.value;
|
|
119
|
+
var straight = parseStraightCurve(record);
|
|
120
|
+
if (straight !== null) {
|
|
121
|
+
pushSegment(segments, straight[0], straight[1]);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
var ellipse = parseEllipseCurve(record);
|
|
125
|
+
if (ellipse !== null) {
|
|
126
|
+
var arc = sampleAcDbAcisEllipseArc(ellipse, 0, Math.PI * 2, DEFAULT_ELLIPSE_SAMPLES);
|
|
127
|
+
for (var i = 1; i < arc.length; i++) {
|
|
128
|
+
pushSegment(segments, arc[i - 1], arc[i]);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
134
|
+
finally {
|
|
135
|
+
try {
|
|
136
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
137
|
+
}
|
|
138
|
+
finally { if (e_2) throw e_2.error; }
|
|
139
|
+
}
|
|
140
|
+
return new Float32Array(segments);
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=AcDbAcisSatWireframe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisSatWireframe.js","sourceRoot":"","sources":["../../src/acis/AcDbAcisSatWireframe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AcDbAcisModel } from './AcDbAcisEntities';
|
|
2
|
+
import { type AcDbAcisGeometry } from './AcDbAcisGeometry';
|
|
3
|
+
/**
|
|
4
|
+
* Converts extracted ACIS B-rep geometry into line-segment endpoint pairs
|
|
5
|
+
* suitable for {@link AcGiRenderer.lineSegments}.
|
|
6
|
+
*
|
|
7
|
+
* @param geometry - Geometry extracted from a decoded ACIS model.
|
|
8
|
+
* @param model - Optional source model used to read edge parameter bounds.
|
|
9
|
+
* @returns Flat `Float32Array` of segment endpoint pairs.
|
|
10
|
+
*/
|
|
11
|
+
export declare function acdbAcisWireframeSegmentsFromGeometry(geometry: AcDbAcisGeometry, model?: AcDbAcisModel): Float32Array;
|
|
12
|
+
/**
|
|
13
|
+
* Decodes a SAB byte stream and returns wireframe line segments, or `null`
|
|
14
|
+
* when decoding fails or no drawable geometry is present.
|
|
15
|
+
*
|
|
16
|
+
* @param sabBytes - Raw SAB/ASM binary payload.
|
|
17
|
+
* @returns Wireframe segment buffer, or `null` when nothing drawable is found.
|
|
18
|
+
*/
|
|
19
|
+
export declare function acdbAcisWireframeSegmentsFromSab(sabBytes: Uint8Array): Float32Array | null;
|
|
20
|
+
//# sourceMappingURL=AcDbAcisWireframe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisWireframe.d.ts","sourceRoot":"","sources":["../../src/acis/AcDbAcisWireframe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAEL,KAAK,gBAAgB,EAMtB,MAAM,oBAAoB,CAAA;AA0C3B;;;;;;;GAOG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,CAAC,EAAE,aAAa,GACpB,YAAY,CAgCd;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,UAAU,GACnB,YAAY,GAAG,IAAI,CAUrB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var __values = (this && this.__values) || function(o) {
|
|
2
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
3
|
+
if (m) return m.call(o);
|
|
4
|
+
if (o && typeof o.length === "number") return {
|
|
5
|
+
next: function () {
|
|
6
|
+
if (o && i >= o.length) o = void 0;
|
|
7
|
+
return { value: o && o[i++], done: !o };
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
11
|
+
};
|
|
12
|
+
import { decodeAcDbAcisModel } from './AcDbAcisDecode';
|
|
13
|
+
import { acDbAcisEdgeParamBounds, acDbAcisParseSurfaceParams, extractAcDbAcisGeometry, sampleAcDbAcisEllipseArc, sampleAcDbAcisSphereWireframe, } from './AcDbAcisGeometry';
|
|
14
|
+
/** Default number of samples when tessellating ellipse edges for wireframe output. */
|
|
15
|
+
var DEFAULT_ELLIPSE_SAMPLES = 16;
|
|
16
|
+
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; };
|
|
17
|
+
/** Appends one line segment (`a` → `b`) to a flat coordinate buffer. */
|
|
18
|
+
function pushSegment(segments, a, b) {
|
|
19
|
+
segments.push(a[0], a[1], a[2], b[0], b[1], b[2]);
|
|
20
|
+
}
|
|
21
|
+
/** Appends consecutive point pairs from `points` as line segments. */
|
|
22
|
+
function pushPolyline(segments, points) {
|
|
23
|
+
for (var i = 0; i + 1 < points.length; i++) {
|
|
24
|
+
var a = points[i];
|
|
25
|
+
var b = points[i + 1];
|
|
26
|
+
if (a && b)
|
|
27
|
+
pushSegment(segments, a, b);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Builds wireframe rings for sphere faces when edge-based wireframe is empty.
|
|
32
|
+
*
|
|
33
|
+
* @param model - Resolved ACIS model graph.
|
|
34
|
+
* @returns Line-segment endpoint pairs for sphere surface scaffolds.
|
|
35
|
+
*/
|
|
36
|
+
function acdbAcisWireframeSegmentsFromSphereFaces(model) {
|
|
37
|
+
var e_1, _a, e_2, _b;
|
|
38
|
+
var segments = [];
|
|
39
|
+
try {
|
|
40
|
+
for (var _c = __values(model.nodesOfType('face')), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
41
|
+
var face = _d.value;
|
|
42
|
+
var surfaceNode = refOfType(face, '-surface');
|
|
43
|
+
if ((surfaceNode === null || surfaceNode === void 0 ? void 0 : surfaceNode.type) !== 'sphere-surface')
|
|
44
|
+
continue;
|
|
45
|
+
var params = acDbAcisParseSurfaceParams(surfaceNode);
|
|
46
|
+
if (params.kind !== 'sphere')
|
|
47
|
+
continue;
|
|
48
|
+
try {
|
|
49
|
+
for (var _e = (e_2 = void 0, __values(sampleAcDbAcisSphereWireframe(params))), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
50
|
+
var ring = _f.value;
|
|
51
|
+
pushPolyline(segments, ring);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
55
|
+
finally {
|
|
56
|
+
try {
|
|
57
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
58
|
+
}
|
|
59
|
+
finally { if (e_2) throw e_2.error; }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
64
|
+
finally {
|
|
65
|
+
try {
|
|
66
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
67
|
+
}
|
|
68
|
+
finally { if (e_1) throw e_1.error; }
|
|
69
|
+
}
|
|
70
|
+
return new Float32Array(segments);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Converts extracted ACIS B-rep geometry into line-segment endpoint pairs
|
|
74
|
+
* suitable for {@link AcGiRenderer.lineSegments}.
|
|
75
|
+
*
|
|
76
|
+
* @param geometry - Geometry extracted from a decoded ACIS model.
|
|
77
|
+
* @param model - Optional source model used to read edge parameter bounds.
|
|
78
|
+
* @returns Flat `Float32Array` of segment endpoint pairs.
|
|
79
|
+
*/
|
|
80
|
+
export function acdbAcisWireframeSegmentsFromGeometry(geometry, model) {
|
|
81
|
+
var e_3, _a;
|
|
82
|
+
var _b, _c, _d, _e;
|
|
83
|
+
var segments = [];
|
|
84
|
+
try {
|
|
85
|
+
for (var _f = __values(geometry.edges), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
86
|
+
var edge = _g.value;
|
|
87
|
+
var edgeNode = model === null || model === void 0 ? void 0 : model.nodes[edge.nodeIndex];
|
|
88
|
+
if (((_b = edge.curve) === null || _b === void 0 ? void 0 : _b.kind) === 'ellipse') {
|
|
89
|
+
var bounds = edgeNode !== undefined ? acDbAcisEdgeParamBounds(edgeNode) : null;
|
|
90
|
+
var t0 = (_c = bounds === null || bounds === void 0 ? void 0 : bounds[0]) !== null && _c !== void 0 ? _c : 0;
|
|
91
|
+
var t1 = (_d = bounds === null || bounds === void 0 ? void 0 : bounds[1]) !== null && _d !== void 0 ? _d : Math.PI * 2;
|
|
92
|
+
pushPolyline(segments, sampleAcDbAcisEllipseArc(edge.curve, t0, t1, DEFAULT_ELLIPSE_SAMPLES));
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (((_e = edge.curve) === null || _e === void 0 ? void 0 : _e.kind) === 'intcurve' &&
|
|
96
|
+
edge.curve.controlPoints.length > 0) {
|
|
97
|
+
pushPolyline(segments, edge.curve.controlPoints);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (edge.start && edge.end) {
|
|
101
|
+
pushSegment(segments, edge.start, edge.end);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
106
|
+
finally {
|
|
107
|
+
try {
|
|
108
|
+
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
109
|
+
}
|
|
110
|
+
finally { if (e_3) throw e_3.error; }
|
|
111
|
+
}
|
|
112
|
+
return new Float32Array(segments);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Decodes a SAB byte stream and returns wireframe line segments, or `null`
|
|
116
|
+
* when decoding fails or no drawable geometry is present.
|
|
117
|
+
*
|
|
118
|
+
* @param sabBytes - Raw SAB/ASM binary payload.
|
|
119
|
+
* @returns Wireframe segment buffer, or `null` when nothing drawable is found.
|
|
120
|
+
*/
|
|
121
|
+
export function acdbAcisWireframeSegmentsFromSab(sabBytes) {
|
|
122
|
+
var model = decodeAcDbAcisModel(sabBytes);
|
|
123
|
+
if (model === null)
|
|
124
|
+
return null;
|
|
125
|
+
var geometry = extractAcDbAcisGeometry(model);
|
|
126
|
+
var edgeWireframe = acdbAcisWireframeSegmentsFromGeometry(geometry, model);
|
|
127
|
+
if (edgeWireframe.length > 0) {
|
|
128
|
+
return edgeWireframe;
|
|
129
|
+
}
|
|
130
|
+
var sphereWireframe = acdbAcisWireframeSegmentsFromSphereFaces(model);
|
|
131
|
+
return sphereWireframe.length > 0 ? sphereWireframe : null;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=AcDbAcisWireframe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbAcisWireframe.js","sourceRoot":"","sources":["../../src/acis/AcDbAcisWireframe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACIS/ASM geometry decoding, B-rep extraction, and wireframe helpers.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { parseAcDbAcisSab, AcDbAcisSabTag } from './AcDbAcisSab';
|
|
7
|
+
export type { AcDbAcisSabData, AcDbAcisSabHeader, AcDbAcisSabRecord, AcDbAcisSabToken, AcDbAcisSabTokenValue, AcDbAcisSabVector, } from './AcDbAcisSab';
|
|
8
|
+
export { buildAcDbAcisModel } from './AcDbAcisEntities';
|
|
9
|
+
export type { AcDbAcisModel, AcDbAcisNode } from './AcDbAcisEntities';
|
|
10
|
+
export { decodeAcDbAcisModel, findAcDbAcisSabSignatureOffset, isAcDbAcisSabPayload, } from './AcDbAcisDecode';
|
|
11
|
+
export { acDbAcisEdgeParamBounds, acDbAcisParseSurfaceParams, extractAcDbAcisGeometry, sampleAcDbAcisEllipseArc, sampleAcDbAcisSphereWireframe, } from './AcDbAcisGeometry';
|
|
12
|
+
export type { AcDbAcisBBox, AcDbAcisConeParams, AcDbAcisCurveKind, AcDbAcisCurveParams, AcDbAcisEdge, AcDbAcisEllipseCurveParams, AcDbAcisFace, AcDbAcisFaceLoop, AcDbAcisGeometry, AcDbAcisGeometrySummary, AcDbAcisIntCurveParams, AcDbAcisMesh, AcDbAcisPlaneParams, AcDbAcisSphereParams, AcDbAcisStraightCurveParams, AcDbAcisSurfaceKind, AcDbAcisSurfaceParams, AcDbAcisTessellationOptions, AcDbAcisTorusParams, AcDbAcisTriangleMesh, AcDbAcisVec3, AcDbAcisVertex, } from './AcDbAcisGeometry';
|
|
13
|
+
export { acdbAcisWireframeSegmentsFromGeometry as acDbAcisWireframeSegmentsFromGeometry, acdbAcisWireframeSegmentsFromSab as acDbAcisWireframeSegmentsFromSab, } from './AcDbAcisWireframe';
|
|
14
|
+
export { acDbAcisWireframeSegmentsFromSatText } from './AcDbAcisSatWireframe';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/acis/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAChE,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,qCAAqC,IAAI,qCAAqC,EAC9E,gCAAgC,IAAI,gCAAgC,GACrE,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oCAAoC,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACIS/ASM geometry decoding, B-rep extraction, and wireframe helpers.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { parseAcDbAcisSab, AcDbAcisSabTag } from './AcDbAcisSab';
|
|
7
|
+
export { buildAcDbAcisModel } from './AcDbAcisEntities';
|
|
8
|
+
export { decodeAcDbAcisModel, findAcDbAcisSabSignatureOffset, isAcDbAcisSabPayload, } from './AcDbAcisDecode';
|
|
9
|
+
export { acDbAcisEdgeParamBounds, acDbAcisParseSurfaceParams, extractAcDbAcisGeometry, sampleAcDbAcisEllipseArc, sampleAcDbAcisSphereWireframe, } from './AcDbAcisGeometry';
|
|
10
|
+
export { acdbAcisWireframeSegmentsFromGeometry as acDbAcisWireframeSegmentsFromGeometry, acdbAcisWireframeSegmentsFromSab as acDbAcisWireframeSegmentsFromSab, } from './AcDbAcisWireframe';
|
|
11
|
+
export { acDbAcisWireframeSegmentsFromSatText } from './AcDbAcisSatWireframe';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acis/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAShE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAyB3B,OAAO,EACL,qCAAqC,IAAI,qCAAqC,EAC9E,gCAAgC,IAAI,gCAAgC,GACrE,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oCAAoC,EAAE,MAAM,wBAAwB,CAAA"}
|