@mlightcad/data-model 1.10.2 → 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 -8
- 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/converter/AcDbFontNameCollector.d.ts +6 -0
- package/lib/converter/AcDbFontNameCollector.d.ts.map +1 -1
- package/lib/converter/AcDbFontNameCollector.js +101 -37
- package/lib/converter/AcDbFontNameCollector.js.map +1 -1
- package/lib/entity/AcDb3dSolid.d.ts +92 -0
- package/lib/entity/AcDb3dSolid.d.ts.map +1 -0
- package/lib/entity/AcDb3dSolid.js +328 -0
- package/lib/entity/AcDb3dSolid.js.map +1 -0
- package/lib/entity/AcDbFcf.d.ts +144 -0
- package/lib/entity/AcDbFcf.d.ts.map +1 -0
- package/lib/entity/AcDbFcf.js +717 -0
- package/lib/entity/AcDbFcf.js.map +1 -0
- 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 +2 -0
- package/lib/entity/index.d.ts.map +1 -1
- package/lib/entity/index.js +2 -0
- package/lib/entity/index.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/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbFontNameCollector.d.ts","sourceRoot":"","sources":["../../src/converter/AcDbFontNameCollector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcDbFontNameCollector.d.ts","sourceRoot":"","sources":["../../src/converter/AcDbFontNameCollector.ts"],"names":[],"mappings":"AAOA,+EAA+E;AAC/E,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,4BAA4B,CAAC,OAAO,IAAI;IAClD,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,mCAAmC,GAAG,IAAI,CAAA;IAC9E,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAAA;CAC5D,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,+BAA+B,EAAE,CAAA;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;gBAEzB,OAAO,EAAE,4BAA4B;IAMjD;;OAEG;IACH,OAAO,CAAC,OAAO,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,GAC7C,MAAM,EAAE;IAgBX;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAWvE,OAAO,CAAC,mBAAmB;IAgC3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA+B7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAahC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAgBzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAa1C,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAmB1C,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAUvC"}
|
|
@@ -25,8 +25,20 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
25
25
|
}
|
|
26
26
|
return ar;
|
|
27
27
|
};
|
|
28
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
29
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
30
|
+
if (ar || !(i in from)) {
|
|
31
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
32
|
+
ar[i] = from[i];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
36
|
+
};
|
|
28
37
|
import { DEFAULT_TEXT_STYLE } from '../misc/AcDbConstants';
|
|
29
|
-
|
|
38
|
+
/** `\Ffont|b0|i0;...` extended inline font override. */
|
|
39
|
+
var MTEXT_INLINE_FONT_PIPE_PATTERN = /\\[fF](.*?)\|/g;
|
|
40
|
+
/** `\Ffont;...` short inline font override (e.g. tolerance `{\Fgdt;r}`). */
|
|
41
|
+
var MTEXT_INLINE_FONT_SEMICOLON_PATTERN = /\\[fF]([^|;]+);/g;
|
|
30
42
|
/**
|
|
31
43
|
* Collects normalized font names from parsed drawing data before conversion.
|
|
32
44
|
*
|
|
@@ -44,21 +56,34 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
44
56
|
* Walks entities and returns all normalized font names referenced by the drawing.
|
|
45
57
|
*/
|
|
46
58
|
AcDbFontNameCollector.prototype.collect = function (entities, adapter) {
|
|
47
|
-
var e_1, _a;
|
|
59
|
+
var e_1, _a, e_2, _b;
|
|
48
60
|
var fonts = new Set();
|
|
49
61
|
try {
|
|
50
|
-
for (var
|
|
51
|
-
var fontName =
|
|
62
|
+
for (var _c = __values(AcDbFontNameCollector.collectShapeDefinitionFonts(this.styles)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
63
|
+
var fontName = _d.value;
|
|
52
64
|
fonts.add(fontName);
|
|
53
65
|
}
|
|
54
66
|
}
|
|
55
67
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
56
68
|
finally {
|
|
57
69
|
try {
|
|
58
|
-
if (
|
|
70
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
59
71
|
}
|
|
60
72
|
finally { if (e_1) throw e_1.error; }
|
|
61
73
|
}
|
|
74
|
+
try {
|
|
75
|
+
for (var _e = __values(AcDbFontNameCollector.collectNamedStyleTableFonts(this.styles)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
76
|
+
var fontName = _f.value;
|
|
77
|
+
fonts.add(fontName);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
81
|
+
finally {
|
|
82
|
+
try {
|
|
83
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
84
|
+
}
|
|
85
|
+
finally { if (e_2) throw e_2.error; }
|
|
86
|
+
}
|
|
62
87
|
this.collectFromEntities(entities, adapter, fonts);
|
|
63
88
|
return Array.from(fonts);
|
|
64
89
|
};
|
|
@@ -76,7 +101,7 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
76
101
|
return fontFileName.toLowerCase();
|
|
77
102
|
};
|
|
78
103
|
AcDbFontNameCollector.prototype.collectFromEntities = function (entities, adapter, fonts) {
|
|
79
|
-
var
|
|
104
|
+
var e_3, _a, e_4, _b;
|
|
80
105
|
try {
|
|
81
106
|
for (var entities_1 = __values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
|
|
82
107
|
var entity = entities_1_1.value;
|
|
@@ -86,17 +111,17 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
86
111
|
}
|
|
87
112
|
if (info.formattedText) {
|
|
88
113
|
try {
|
|
89
|
-
for (var _c = (
|
|
114
|
+
for (var _c = (e_4 = void 0, __values(AcDbFontNameCollector.extractInlineMTextFonts(info.formattedText))), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
90
115
|
var fontName = _d.value;
|
|
91
116
|
fonts.add(fontName);
|
|
92
117
|
}
|
|
93
118
|
}
|
|
94
|
-
catch (
|
|
119
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
95
120
|
finally {
|
|
96
121
|
try {
|
|
97
122
|
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
98
123
|
}
|
|
99
|
-
finally { if (
|
|
124
|
+
finally { if (e_4) throw e_4.error; }
|
|
100
125
|
}
|
|
101
126
|
}
|
|
102
127
|
if (info.resolveStyle) {
|
|
@@ -110,12 +135,12 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
110
135
|
}
|
|
111
136
|
}
|
|
112
137
|
}
|
|
113
|
-
catch (
|
|
138
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
114
139
|
finally {
|
|
115
140
|
try {
|
|
116
141
|
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
|
|
117
142
|
}
|
|
118
|
-
finally { if (
|
|
143
|
+
finally { if (e_3) throw e_3.error; }
|
|
119
144
|
}
|
|
120
145
|
};
|
|
121
146
|
/**
|
|
@@ -123,7 +148,7 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
123
148
|
* {@link AcDbTextStyleTable.resolveAt}.
|
|
124
149
|
*/
|
|
125
150
|
AcDbFontNameCollector.prototype.resolveStyleFontNames = function (styleName) {
|
|
126
|
-
var
|
|
151
|
+
var e_5, _a, e_6, _b;
|
|
127
152
|
var candidates = [];
|
|
128
153
|
var addCandidate = function (value) {
|
|
129
154
|
var trimmed = value === null || value === void 0 ? void 0 : value.trim();
|
|
@@ -144,28 +169,28 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
144
169
|
}
|
|
145
170
|
var normalizedCandidate = candidate.toUpperCase();
|
|
146
171
|
try {
|
|
147
|
-
for (var _c = (
|
|
172
|
+
for (var _c = (e_6 = void 0, __values(this.styleMap)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
148
173
|
var _e = __read(_d.value, 2), key = _e[0], fontNames = _e[1];
|
|
149
174
|
if (key.toUpperCase() === normalizedCandidate) {
|
|
150
175
|
return fontNames;
|
|
151
176
|
}
|
|
152
177
|
}
|
|
153
178
|
}
|
|
154
|
-
catch (
|
|
179
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
155
180
|
finally {
|
|
156
181
|
try {
|
|
157
182
|
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
158
183
|
}
|
|
159
|
-
finally { if (
|
|
184
|
+
finally { if (e_6) throw e_6.error; }
|
|
160
185
|
}
|
|
161
186
|
}
|
|
162
187
|
}
|
|
163
|
-
catch (
|
|
188
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
164
189
|
finally {
|
|
165
190
|
try {
|
|
166
191
|
if (candidates_1_1 && !candidates_1_1.done && (_a = candidates_1.return)) _a.call(candidates_1);
|
|
167
192
|
}
|
|
168
|
-
finally { if (
|
|
193
|
+
finally { if (e_5) throw e_5.error; }
|
|
169
194
|
}
|
|
170
195
|
return this.styleMap.values().next().value;
|
|
171
196
|
};
|
|
@@ -174,7 +199,7 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
174
199
|
fontNames === null || fontNames === void 0 ? void 0 : fontNames.forEach(function (name) { return fonts.add(name); });
|
|
175
200
|
};
|
|
176
201
|
AcDbFontNameCollector.buildStyleFontMap = function (styles) {
|
|
177
|
-
var
|
|
202
|
+
var e_7, _a;
|
|
178
203
|
var styleMap = new Map();
|
|
179
204
|
try {
|
|
180
205
|
for (var styles_1 = __values(styles), styles_1_1 = styles_1.next(); !styles_1_1.done; styles_1_1 = styles_1.next()) {
|
|
@@ -182,17 +207,17 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
182
207
|
styleMap.set(style.name, AcDbFontNameCollector.collectStyleEntryFontNames(style));
|
|
183
208
|
}
|
|
184
209
|
}
|
|
185
|
-
catch (
|
|
210
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
186
211
|
finally {
|
|
187
212
|
try {
|
|
188
213
|
if (styles_1_1 && !styles_1_1.done && (_a = styles_1.return)) _a.call(styles_1);
|
|
189
214
|
}
|
|
190
|
-
finally { if (
|
|
215
|
+
finally { if (e_7) throw e_7.error; }
|
|
191
216
|
}
|
|
192
217
|
return styleMap;
|
|
193
218
|
};
|
|
194
219
|
AcDbFontNameCollector.collectStyleEntryFontNames = function (style) {
|
|
195
|
-
var
|
|
220
|
+
var e_8, _a;
|
|
196
221
|
var fontNames = [];
|
|
197
222
|
try {
|
|
198
223
|
for (var _b = __values([style.font, style.bigFont, style.extendedFont]), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
@@ -203,21 +228,47 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
203
228
|
}
|
|
204
229
|
}
|
|
205
230
|
}
|
|
206
|
-
catch (
|
|
231
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
207
232
|
finally {
|
|
208
233
|
try {
|
|
209
234
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
210
235
|
}
|
|
211
|
-
finally { if (
|
|
236
|
+
finally { if (e_8) throw e_8.error; }
|
|
212
237
|
}
|
|
213
238
|
return fontNames;
|
|
214
239
|
};
|
|
215
|
-
|
|
216
|
-
|
|
240
|
+
/**
|
|
241
|
+
* Collects primary, big, and extended fonts from every named STYLE entry.
|
|
242
|
+
* Ensures fonts referenced only in the style table (or in blocks not reached
|
|
243
|
+
* from model space) are still preloaded when opening a drawing.
|
|
244
|
+
*/
|
|
245
|
+
AcDbFontNameCollector.collectNamedStyleTableFonts = function (styles) {
|
|
246
|
+
var e_9, _a;
|
|
217
247
|
var fonts = [];
|
|
218
248
|
try {
|
|
219
249
|
for (var styles_2 = __values(styles), styles_2_1 = styles_2.next(); !styles_2_1.done; styles_2_1 = styles_2.next()) {
|
|
220
250
|
var style = styles_2_1.value;
|
|
251
|
+
if (style.standardFlag && style.standardFlag & 1) {
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
fonts.push.apply(fonts, __spreadArray([], __read(AcDbFontNameCollector.collectStyleEntryFontNames(style)), false));
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
258
|
+
finally {
|
|
259
|
+
try {
|
|
260
|
+
if (styles_2_1 && !styles_2_1.done && (_a = styles_2.return)) _a.call(styles_2);
|
|
261
|
+
}
|
|
262
|
+
finally { if (e_9) throw e_9.error; }
|
|
263
|
+
}
|
|
264
|
+
return fonts;
|
|
265
|
+
};
|
|
266
|
+
AcDbFontNameCollector.collectShapeDefinitionFonts = function (styles) {
|
|
267
|
+
var e_10, _a;
|
|
268
|
+
var fonts = [];
|
|
269
|
+
try {
|
|
270
|
+
for (var styles_3 = __values(styles), styles_3_1 = styles_3.next(); !styles_3_1.done; styles_3_1 = styles_3.next()) {
|
|
271
|
+
var style = styles_3_1.value;
|
|
221
272
|
if (style.standardFlag && style.standardFlag & 1) {
|
|
222
273
|
var normalized = AcDbFontNameCollector.normalizeFontFileName(style.font);
|
|
223
274
|
if (normalized) {
|
|
@@ -226,32 +277,45 @@ var AcDbFontNameCollector = /** @class */ (function () {
|
|
|
226
277
|
}
|
|
227
278
|
}
|
|
228
279
|
}
|
|
229
|
-
catch (
|
|
280
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
230
281
|
finally {
|
|
231
282
|
try {
|
|
232
|
-
if (
|
|
283
|
+
if (styles_3_1 && !styles_3_1.done && (_a = styles_3.return)) _a.call(styles_3);
|
|
233
284
|
}
|
|
234
|
-
finally { if (
|
|
285
|
+
finally { if (e_10) throw e_10.error; }
|
|
235
286
|
}
|
|
236
287
|
return fonts;
|
|
237
288
|
};
|
|
238
289
|
AcDbFontNameCollector.extractInlineMTextFonts = function (text) {
|
|
239
|
-
var
|
|
240
|
-
var fonts =
|
|
290
|
+
var e_11, _a, e_12, _b;
|
|
291
|
+
var fonts = new Set();
|
|
241
292
|
try {
|
|
242
|
-
for (var
|
|
243
|
-
var match =
|
|
244
|
-
fonts.
|
|
293
|
+
for (var _c = __values(text.matchAll(MTEXT_INLINE_FONT_PIPE_PATTERN)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
294
|
+
var match = _d.value;
|
|
295
|
+
fonts.add(match[1].toLowerCase());
|
|
245
296
|
}
|
|
246
297
|
}
|
|
247
|
-
catch (
|
|
298
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
248
299
|
finally {
|
|
249
300
|
try {
|
|
250
|
-
if (
|
|
301
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
251
302
|
}
|
|
252
|
-
finally { if (
|
|
303
|
+
finally { if (e_11) throw e_11.error; }
|
|
253
304
|
}
|
|
254
|
-
|
|
305
|
+
try {
|
|
306
|
+
for (var _e = __values(text.matchAll(MTEXT_INLINE_FONT_SEMICOLON_PATTERN)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
307
|
+
var match = _f.value;
|
|
308
|
+
fonts.add(match[1].toLowerCase());
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
312
|
+
finally {
|
|
313
|
+
try {
|
|
314
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
315
|
+
}
|
|
316
|
+
finally { if (e_12) throw e_12.error; }
|
|
317
|
+
}
|
|
318
|
+
return Array.from(fonts);
|
|
255
319
|
};
|
|
256
320
|
return AcDbFontNameCollector;
|
|
257
321
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbFontNameCollector.js","sourceRoot":"","sources":["../../src/converter/AcDbFontNameCollector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AcDbFontNameCollector.js","sourceRoot":"","sources":["../../src/converter/AcDbFontNameCollector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,wDAAwD;AACxD,IAAM,8BAA8B,GAAG,gBAAgB,CAAA;AACvD,4EAA4E;AAC5E,IAAM,mCAAmC,GAAG,kBAAkB,CAAA;AAoC9D;;;;;GAKG;AACH;IAKE,+BAAY,OAAqC;;QAC/C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpE,IAAI,CAAC,YAAY,GAAG,MAAA,OAAO,CAAC,YAAY,mCAAI,kBAAkB,CAAA;IAChE,CAAC;IAED;;OAEG;IACH,uCAAO,GAAP,UACE,QAAmB,EACnB,OAA8C;;QAE9C,IAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;;YAC/B,KAAuB,IAAA,KAAA,SAAA,qBAAqB,CAAC,2BAA2B,CACtE,IAAI,CAAC,MAAM,CACZ,CAAA,gBAAA,4BAAE,CAAC;gBAFC,IAAM,QAAQ,WAAA;gBAGjB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACrB,CAAC;;;;;;;;;;YACD,KAAuB,IAAA,KAAA,SAAA,qBAAqB,CAAC,2BAA2B,CACtE,IAAI,CAAC,MAAM,CACZ,CAAA,gBAAA,4BAAE,CAAC;gBAFC,IAAM,QAAQ,WAAA;gBAGjB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACrB,CAAC;;;;;;;;;QACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACI,2CAAqB,GAA5B,UAA6B,YAAqB;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;QAC9D,CAAC;QACD,OAAO,YAAY,CAAC,WAAW,EAAE,CAAA;IACnC,CAAC;IAEO,mDAAmB,GAA3B,UACE,QAAmB,EACnB,OAA8C,EAC9C,KAAkB;;;YAElB,KAAqB,IAAA,aAAA,SAAA,QAAQ,CAAA,kCAAA,wDAAE,CAAC;gBAA3B,IAAM,MAAM,qBAAA;gBACf,IAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;gBAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,SAAQ;gBACV,CAAC;gBAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;;wBACvB,KAAuB,IAAA,oBAAA,SAAA,qBAAqB,CAAC,uBAAuB,CAClE,IAAI,CAAC,aAAa,CACnB,CAAA,CAAA,gBAAA,4BAAE,CAAC;4BAFC,IAAM,QAAQ,WAAA;4BAGjB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;wBACrB,CAAC;;;;;;;;;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;gBACnD,CAAC;gBAED,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAC/C,IAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC9D,IAAI,aAAa,EAAE,CAAC;wBAClB,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;;;;;;;;;IACH,CAAC;IAED;;;OAGG;IACK,qDAAqB,GAA7B,UAA8B,SAAkB;;QAC9C,IAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,IAAM,YAAY,GAAG,UAAC,KAAc;YAClC,IAAM,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,CAAA;YAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC,CAAA;QAED,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC/B,YAAY,CAAC,kBAAkB,CAAC,CAAA;QAChC,YAAY,CAAC,UAAU,CAAC,CAAA;;YAExB,KAAwB,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE,CAAC;gBAAhC,IAAM,SAAS,uBAAA;gBAClB,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC1C,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,IAAM,mBAAmB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;;oBACnD,KAA+B,IAAA,oBAAA,SAAA,IAAI,CAAC,QAAQ,CAAA,CAAA,gBAAA,4BAAE,CAAC;wBAApC,IAAA,KAAA,mBAAgB,EAAf,GAAG,QAAA,EAAE,SAAS,QAAA;wBACxB,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,mBAAmB,EAAE,CAAC;4BAC9C,OAAO,SAAS,CAAA;wBAClB,CAAC;oBACH,CAAC;;;;;;;;;YACH,CAAC;;;;;;;;;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;IAC5C,CAAC;IAEO,qDAAqB,GAA7B,UACE,SAA6B,EAC7B,KAAkB;QAElB,IAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QACvD,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAf,CAAe,CAAC,CAAA;IAC7C,CAAC;IAEc,uCAAiB,GAAhC,UACE,MAAyC;;QAEzC,IAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA;;YAC5C,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAxB,IAAM,KAAK,mBAAA;gBACd,QAAQ,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,EACV,qBAAqB,CAAC,0BAA0B,CAAC,KAAK,CAAC,CACxD,CAAA;YACH,CAAC;;;;;;;;;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEc,gDAA0B,GAAzC,UACE,KAGC;;QAED,IAAM,SAAS,GAAa,EAAE,CAAA;;YAC9B,KAAuB,IAAA,KAAA,SAAA,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA,gBAAA,4BAAE,CAAC;gBAApE,IAAM,QAAQ,WAAA;gBACjB,IAAM,UAAU,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;gBACxE,IAAI,UAAU,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC;;;;;;;;;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;OAIG;IACY,iDAA2B,GAA1C,UACE,MAAyC;;QAEzC,IAAM,KAAK,GAAa,EAAE,CAAA;;YAC1B,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAxB,IAAM,KAAK,mBAAA;gBACd,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;oBACjD,SAAQ;gBACV,CAAC;gBACD,KAAK,CAAC,IAAI,OAAV,KAAK,2BAAS,qBAAqB,CAAC,0BAA0B,CAAC,KAAK,CAAC,WAAC;YACxE,CAAC;;;;;;;;;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEc,iDAA2B,GAA1C,UACE,MAEC;;QAED,IAAM,KAAK,GAAa,EAAE,CAAA;;YAC1B,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;gBAAxB,IAAM,KAAK,mBAAA;gBACd,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;oBACjD,IAAM,UAAU,GAAG,qBAAqB,CAAC,qBAAqB,CAC5D,KAAK,CAAC,IAAI,CACX,CAAA;oBACD,IAAI,UAAU,EAAE,CAAC;wBACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;;;;;;;;;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEc,6CAAuB,GAAtC,UAAuC,IAAY;;QACjD,IAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;;YAC/B,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAA,gBAAA,4BAAE,CAAC;gBAA/D,IAAM,KAAK,WAAA;gBACd,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;YACnC,CAAC;;;;;;;;;;YACD,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAA,gBAAA,4BAAE,CAAC;gBAApE,IAAM,KAAK,WAAA;gBACd,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;YACnC,CAAC;;;;;;;;;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IACH,4BAAC;AAAD,CAAC,AAtMD,IAsMC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { AcGeBox3d, AcGeMatrix3d } from '@mlightcad/geometry-engine';
|
|
2
|
+
import { AcGiRenderer } from '@mlightcad/graphic-interface';
|
|
3
|
+
import { AcDbDxfFiler } from '../base/AcDbDxfFiler';
|
|
4
|
+
import { AcDbEntity } from './AcDbEntity';
|
|
5
|
+
/**
|
|
6
|
+
* Construction options for {@link AcDb3dSolid} when geometry is supplied as
|
|
7
|
+
* binary SAB and/or plain SAT/ASM text rather than a single string argument.
|
|
8
|
+
*/
|
|
9
|
+
export interface AcDb3dSolidOptions {
|
|
10
|
+
/** Binary SAB payload from ACDSDATA or inline modeler geometry. */
|
|
11
|
+
sabBytes?: Uint8Array;
|
|
12
|
+
/** Plain SAT/ASM text from inline groups 1/3 or ACSH BREP. */
|
|
13
|
+
satText?: string;
|
|
14
|
+
/** Legacy alias for {@link satText}. */
|
|
15
|
+
acisData?: string;
|
|
16
|
+
/** DXF group 70 ACIS version number, when present. */
|
|
17
|
+
version?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Represents a 3D solid (ACIS/ASM B-rep) entity, such as those created by
|
|
21
|
+
* AutoCAD's BOX, WEDGE, EXTRUDE, or boolean solid-modeling commands.
|
|
22
|
+
*
|
|
23
|
+
* Full B-rep tessellation is not yet supported. When binary SAB or SAT text is
|
|
24
|
+
* available, this entity renders a best-effort wireframe derived from decoded
|
|
25
|
+
* edges and curves; otherwise it falls back to a bounding-box wireframe built
|
|
26
|
+
* from embedded `point` records in the SAT stream.
|
|
27
|
+
*/
|
|
28
|
+
export declare class AcDb3dSolid extends AcDbEntity {
|
|
29
|
+
/** The entity type name */
|
|
30
|
+
static typeName: string;
|
|
31
|
+
get dxfTypeName(): string;
|
|
32
|
+
/** Raw ACIS SAT text preserved for DXF round-trip and future B-rep parsing. */
|
|
33
|
+
private _acisData;
|
|
34
|
+
/** DXF group 70 ACIS version number, when present. */
|
|
35
|
+
private _version?;
|
|
36
|
+
/** Vertex positions used for extents and fallback bounding-box rendering. */
|
|
37
|
+
private _points;
|
|
38
|
+
/** Line-segment endpoint pairs for wireframe rendering (`[x,y,z,...]`). */
|
|
39
|
+
private _wireframe;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new 3D solid entity from raw ACIS data.
|
|
42
|
+
*
|
|
43
|
+
* @param acisData - Raw ACIS SAT text (group 1/3 lines).
|
|
44
|
+
* @param version - DXF group 70 ACIS version number, when present.
|
|
45
|
+
*/
|
|
46
|
+
constructor(acisData: string, version?: number);
|
|
47
|
+
/**
|
|
48
|
+
* Creates a new 3D solid entity from binary SAB and/or SAT text payloads.
|
|
49
|
+
*
|
|
50
|
+
* @param options - Construction options with optional SAB bytes and SAT text.
|
|
51
|
+
*/
|
|
52
|
+
constructor(options: AcDb3dSolidOptions);
|
|
53
|
+
/**
|
|
54
|
+
* Raw ACIS SAT text for this solid, preserved for future full B-rep parsing.
|
|
55
|
+
*/
|
|
56
|
+
get acisData(): string;
|
|
57
|
+
/** DXF group 70 ACIS version number, when present. */
|
|
58
|
+
get version(): number | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Whether wireframe segments or fallback point data could be extracted from
|
|
61
|
+
* the supplied SAB/SAT payload.
|
|
62
|
+
*/
|
|
63
|
+
get hasRenderableGeometry(): boolean;
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
get geometricExtents(): AcGeBox3d;
|
|
66
|
+
/**
|
|
67
|
+
* Transforms the extracted wireframe and point cloud by the specified matrix.
|
|
68
|
+
*
|
|
69
|
+
* {@link acisData} itself is left untouched since it isn't fully parsed.
|
|
70
|
+
*
|
|
71
|
+
* @param matrix - 4×4 transformation matrix.
|
|
72
|
+
* @returns This instance (for chaining).
|
|
73
|
+
*/
|
|
74
|
+
transformBy(matrix: AcGeMatrix3d): this;
|
|
75
|
+
/**
|
|
76
|
+
* Draws decoded wireframe segments when available; otherwise draws a bounding
|
|
77
|
+
* box around extracted `point` records.
|
|
78
|
+
*
|
|
79
|
+
* @param renderer - The renderer to use for drawing.
|
|
80
|
+
* @returns The rendered wireframe entity, or `undefined` when no geometry
|
|
81
|
+
* could be extracted.
|
|
82
|
+
*/
|
|
83
|
+
subWorldDraw(renderer: AcGiRenderer): import("@mlightcad/graphic-interface").AcGiEntity | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Writes DXF fields for this object.
|
|
86
|
+
*
|
|
87
|
+
* @param filer - DXF output writer.
|
|
88
|
+
* @returns The instance (for chaining).
|
|
89
|
+
*/
|
|
90
|
+
dxfOutFields(filer: AcDbDxfFiler): this;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=AcDb3dSolid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDb3dSolid.d.ts","sourceRoot":"","sources":["../../src/entity/AcDb3dSolid.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EAEb,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAM3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAkHD;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,2BAA2B;IAC3B,OAAgB,QAAQ,EAAE,MAAM,CAAY;IAE5C,IAAa,WAAW,WAEvB;IAED,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAAQ;IACzB,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,6EAA6E;IAC7E,OAAO,CAAC,OAAO,CAAe;IAC9B,2EAA2E;IAC3E,OAAO,CAAC,UAAU,CAAc;IAEhC;;;;;OAKG;gBACS,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAC9C;;;;OAIG;gBACS,OAAO,EAAE,kBAAkB;IA0BvC;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,sDAAsD;IACtD,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;;OAGG;IACH,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,kBAAkB;IAClB,IAAI,gBAAgB,IAAI,SAAS,CAKhC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY;IAoBhC;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY;IAyCnC;;;;;OAKG;IACM,YAAY,CAAC,KAAK,EAAE,YAAY;CAmB1C"}
|