@bldrs-ai/conway 1.445.1339 → 1.448.1345
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/compiled/examples/browser-bundled.cjs +94 -10
- package/compiled/examples/cli-bundled.cjs +248 -95
- package/compiled/examples/cli-step-bundled.cjs +94 -10
- package/compiled/examples/validator-bundled.cjs +94 -10
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +34 -1
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +139 -58
- package/compiled/src/step/parsing/uint32_sink.d.ts +15 -0
- package/compiled/src/step/parsing/uint32_sink.d.ts.map +1 -1
- package/compiled/src/step/parsing/uint32_sink.js +35 -0
- package/compiled/src/step/parsing/uint32_sink.test.js +83 -1
- package/compiled/src/step/step_entity_base.d.ts +20 -0
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +30 -9
- package/compiled/src/step/step_model_base.d.ts +25 -0
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +48 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
|
|
|
15943
15943
|
};
|
|
15944
15944
|
|
|
15945
15945
|
// compiled/src/version/version.js
|
|
15946
|
-
var versionString = "Conway v1.
|
|
15946
|
+
var versionString = "Conway v1.448.1345";
|
|
15947
15947
|
|
|
15948
15948
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
15949
15949
|
function pThreadsAllowed() {
|
|
@@ -20289,6 +20289,28 @@ var StepVtableBuilder = class {
|
|
|
20289
20289
|
}
|
|
20290
20290
|
};
|
|
20291
20291
|
|
|
20292
|
+
// compiled/src/step/parsing/uint32_sink.js
|
|
20293
|
+
function extractIntegerArrayAt(buffer, cursor, endCursor, sink) {
|
|
20294
|
+
if (stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
20295
|
+
return 0;
|
|
20296
|
+
}
|
|
20297
|
+
let count = 0;
|
|
20298
|
+
let signedCursor0 = stepExtractArrayBegin(buffer, cursor, endCursor);
|
|
20299
|
+
let readCursor = Math.abs(signedCursor0);
|
|
20300
|
+
while (signedCursor0 >= 0) {
|
|
20301
|
+
const value = stepExtractNumber(buffer, readCursor, endCursor);
|
|
20302
|
+
if (value === void 0) {
|
|
20303
|
+
throw new Error("Value in STEP was incorrectly typed");
|
|
20304
|
+
}
|
|
20305
|
+
readCursor = skipValue(buffer, readCursor, endCursor);
|
|
20306
|
+
sink.push(value);
|
|
20307
|
+
++count;
|
|
20308
|
+
signedCursor0 = stepExtractArrayToken(buffer, readCursor, endCursor);
|
|
20309
|
+
readCursor = Math.abs(signedCursor0);
|
|
20310
|
+
}
|
|
20311
|
+
return count;
|
|
20312
|
+
}
|
|
20313
|
+
|
|
20292
20314
|
// compiled/src/indexing/index_set_constants.js
|
|
20293
20315
|
var IndexSetConstants = class {
|
|
20294
20316
|
};
|
|
@@ -20845,6 +20867,48 @@ var StepModelBase = class {
|
|
|
20845
20867
|
* @param element The raw elment to populate the vtable entry for.
|
|
20846
20868
|
* @return {boolean} Did the vtable entry populate correctly?
|
|
20847
20869
|
*/
|
|
20870
|
+
/**
|
|
20871
|
+
* Append a referenced record's unsigned-integer list field into `sink`
|
|
20872
|
+
* without materialising the referenced entity.
|
|
20873
|
+
*
|
|
20874
|
+
* This is the reference-level twin of
|
|
20875
|
+
* `StepEntityBase.extractIntegerArrayInto`, for hot loops that walk
|
|
20876
|
+
* millions of small records (tessellated facesets) where constructing
|
|
20877
|
+
* an entity per record dominates. It deliberately handles only the
|
|
20878
|
+
* simple case and reports failure otherwise, so callers keep a
|
|
20879
|
+
* correct fallback rather than this growing subtle special cases:
|
|
20880
|
+
* the reference must resolve, be single-class (no multi-mapping),
|
|
20881
|
+
* and be exactly `expectedTypeID` — which is what makes reading
|
|
20882
|
+
* `offset` as a plain vtable slot equivalent to the generated
|
|
20883
|
+
* getter's `getOffsetCursor( offset, _, _ )` (that only subtracts a
|
|
20884
|
+
* base offset for multi-mapped records).
|
|
20885
|
+
*
|
|
20886
|
+
* @param expressID The referenced record's express ID.
|
|
20887
|
+
* @param offset The field's vtable offset within the record.
|
|
20888
|
+
* @param expectedTypeID The type the record must be.
|
|
20889
|
+
* @param sink Receives the appended values.
|
|
20890
|
+
* @return {number | undefined} Count appended, or undefined when the
|
|
20891
|
+
* fast path does not apply and the caller must fall back.
|
|
20892
|
+
*/
|
|
20893
|
+
extractIntegerArrayByExpressIDInto(expressID, offset, expectedTypeID, sink) {
|
|
20894
|
+
const localID = this.expressIDMap_.get(expressID);
|
|
20895
|
+
if (localID === void 0 || localID >= this.count_) {
|
|
20896
|
+
return void 0;
|
|
20897
|
+
}
|
|
20898
|
+
const element = this.entry(localID);
|
|
20899
|
+
if (element.multiMapping !== void 0 || element.typeID !== expectedTypeID) {
|
|
20900
|
+
return void 0;
|
|
20901
|
+
}
|
|
20902
|
+
if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
|
|
20903
|
+
return void 0;
|
|
20904
|
+
}
|
|
20905
|
+
const vtable = element.vtable;
|
|
20906
|
+
const buffer = element.buffer;
|
|
20907
|
+
if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
|
|
20908
|
+
return void 0;
|
|
20909
|
+
}
|
|
20910
|
+
return extractIntegerArrayAt(buffer, vtable[element.vtableIndex + offset], buffer.length, sink);
|
|
20911
|
+
}
|
|
20848
20912
|
populateVtableEntryRaw(element) {
|
|
20849
20913
|
if (element.vtableIndex !== void 0 || element.typeID === 0) {
|
|
20850
20914
|
return true;
|
|
@@ -22568,28 +22632,48 @@ var StepEntityBase = class {
|
|
|
22568
22632
|
* @return {number} How many values were appended (0 when the field is
|
|
22569
22633
|
* unset/optional-null).
|
|
22570
22634
|
*/
|
|
22571
|
-
|
|
22635
|
+
/**
|
|
22636
|
+
* Walk a reference-list field, handing each element's express ID to
|
|
22637
|
+
* `onReference` without resolving it to an entity.
|
|
22638
|
+
*
|
|
22639
|
+
* Lets hot loops decide per element how to read the referenced record
|
|
22640
|
+
* (see StepModelBase.extractIntegerArrayByExpressIDInto) instead of
|
|
22641
|
+
* paying for an entity per element the way the generated list getters
|
|
22642
|
+
* do. Inline (non-reference) elements yield `undefined`, and
|
|
22643
|
+
* `onReference` returning false aborts the walk — together those let
|
|
22644
|
+
* a caller bail out to the generated getter for anything it is not
|
|
22645
|
+
* prepared to handle.
|
|
22646
|
+
*
|
|
22647
|
+
* @param offset The offset in the vtable to extract from.
|
|
22648
|
+
* @param baseOffset The base offset of the class in the vtable.
|
|
22649
|
+
* @param depth The depth in the inheritance hierarchy.
|
|
22650
|
+
* @param onReference Receives each element's express ID, or undefined
|
|
22651
|
+
* for an inline element; return false to abort.
|
|
22652
|
+
* @return {boolean} False if the walk was aborted, true otherwise.
|
|
22653
|
+
*/
|
|
22654
|
+
forEachReferenceInField(offset, baseOffset, depth, onReference) {
|
|
22572
22655
|
let cursor = this.getOffsetCursor(offset, baseOffset, depth);
|
|
22573
22656
|
const buffer = this.buffer;
|
|
22574
22657
|
const endCursor = buffer.length;
|
|
22575
22658
|
if (stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
22576
|
-
return
|
|
22659
|
+
return true;
|
|
22577
22660
|
}
|
|
22578
|
-
let count = 0;
|
|
22579
22661
|
let signedCursor0 = stepExtractArrayBegin(buffer, cursor, endCursor);
|
|
22580
22662
|
cursor = Math.abs(signedCursor0);
|
|
22581
22663
|
while (signedCursor0 >= 0) {
|
|
22582
|
-
|
|
22583
|
-
|
|
22584
|
-
throw new Error("Value in STEP was incorrectly typed");
|
|
22664
|
+
if (!onReference(stepExtractReference(buffer, cursor, endCursor))) {
|
|
22665
|
+
return false;
|
|
22585
22666
|
}
|
|
22586
22667
|
cursor = skipValue(buffer, cursor, endCursor);
|
|
22587
|
-
sink.push(value);
|
|
22588
|
-
++count;
|
|
22589
22668
|
signedCursor0 = stepExtractArrayToken(buffer, cursor, endCursor);
|
|
22590
22669
|
cursor = Math.abs(signedCursor0);
|
|
22591
22670
|
}
|
|
22592
|
-
return
|
|
22671
|
+
return true;
|
|
22672
|
+
}
|
|
22673
|
+
extractIntegerArrayInto(offset, baseOffset, depth, sink) {
|
|
22674
|
+
const cursor = this.getOffsetCursor(offset, baseOffset, depth);
|
|
22675
|
+
const buffer = this.buffer;
|
|
22676
|
+
return extractIntegerArrayAt(buffer, cursor, buffer.length, sink);
|
|
22593
22677
|
}
|
|
22594
22678
|
/**
|
|
22595
22679
|
* Extract a number at the particular vtable offset (i.e. the position
|
|
@@ -944,7 +944,7 @@ var EntityTypesIfcCount = 909;
|
|
|
944
944
|
var entity_types_ifc_gen_default = EntityTypesIfc;
|
|
945
945
|
|
|
946
946
|
// compiled/src/version/version.js
|
|
947
|
-
var versionString = "Conway v1.
|
|
947
|
+
var versionString = "Conway v1.448.1345";
|
|
948
948
|
|
|
949
949
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
950
950
|
var wasmType = "";
|
|
@@ -4682,6 +4682,28 @@ var StepVtableBuilder = class {
|
|
|
4682
4682
|
}
|
|
4683
4683
|
};
|
|
4684
4684
|
|
|
4685
|
+
// compiled/src/step/parsing/uint32_sink.js
|
|
4686
|
+
function extractIntegerArrayAt(buffer, cursor, endCursor, sink) {
|
|
4687
|
+
if (stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
4688
|
+
return 0;
|
|
4689
|
+
}
|
|
4690
|
+
let count = 0;
|
|
4691
|
+
let signedCursor0 = stepExtractArrayBegin(buffer, cursor, endCursor);
|
|
4692
|
+
let readCursor = Math.abs(signedCursor0);
|
|
4693
|
+
while (signedCursor0 >= 0) {
|
|
4694
|
+
const value = stepExtractNumber(buffer, readCursor, endCursor);
|
|
4695
|
+
if (value === void 0) {
|
|
4696
|
+
throw new Error("Value in STEP was incorrectly typed");
|
|
4697
|
+
}
|
|
4698
|
+
readCursor = skipValue(buffer, readCursor, endCursor);
|
|
4699
|
+
sink.push(value);
|
|
4700
|
+
++count;
|
|
4701
|
+
signedCursor0 = stepExtractArrayToken(buffer, readCursor, endCursor);
|
|
4702
|
+
readCursor = Math.abs(signedCursor0);
|
|
4703
|
+
}
|
|
4704
|
+
return count;
|
|
4705
|
+
}
|
|
4706
|
+
|
|
4685
4707
|
// compiled/src/indexing/index_set_constants.js
|
|
4686
4708
|
var IndexSetConstants = class {
|
|
4687
4709
|
};
|
|
@@ -5238,6 +5260,48 @@ var StepModelBase = class {
|
|
|
5238
5260
|
* @param element The raw elment to populate the vtable entry for.
|
|
5239
5261
|
* @return {boolean} Did the vtable entry populate correctly?
|
|
5240
5262
|
*/
|
|
5263
|
+
/**
|
|
5264
|
+
* Append a referenced record's unsigned-integer list field into `sink`
|
|
5265
|
+
* without materialising the referenced entity.
|
|
5266
|
+
*
|
|
5267
|
+
* This is the reference-level twin of
|
|
5268
|
+
* `StepEntityBase.extractIntegerArrayInto`, for hot loops that walk
|
|
5269
|
+
* millions of small records (tessellated facesets) where constructing
|
|
5270
|
+
* an entity per record dominates. It deliberately handles only the
|
|
5271
|
+
* simple case and reports failure otherwise, so callers keep a
|
|
5272
|
+
* correct fallback rather than this growing subtle special cases:
|
|
5273
|
+
* the reference must resolve, be single-class (no multi-mapping),
|
|
5274
|
+
* and be exactly `expectedTypeID` — which is what makes reading
|
|
5275
|
+
* `offset` as a plain vtable slot equivalent to the generated
|
|
5276
|
+
* getter's `getOffsetCursor( offset, _, _ )` (that only subtracts a
|
|
5277
|
+
* base offset for multi-mapped records).
|
|
5278
|
+
*
|
|
5279
|
+
* @param expressID The referenced record's express ID.
|
|
5280
|
+
* @param offset The field's vtable offset within the record.
|
|
5281
|
+
* @param expectedTypeID The type the record must be.
|
|
5282
|
+
* @param sink Receives the appended values.
|
|
5283
|
+
* @return {number | undefined} Count appended, or undefined when the
|
|
5284
|
+
* fast path does not apply and the caller must fall back.
|
|
5285
|
+
*/
|
|
5286
|
+
extractIntegerArrayByExpressIDInto(expressID, offset, expectedTypeID, sink) {
|
|
5287
|
+
const localID = this.expressIDMap_.get(expressID);
|
|
5288
|
+
if (localID === void 0 || localID >= this.count_) {
|
|
5289
|
+
return void 0;
|
|
5290
|
+
}
|
|
5291
|
+
const element = this.entry(localID);
|
|
5292
|
+
if (element.multiMapping !== void 0 || element.typeID !== expectedTypeID) {
|
|
5293
|
+
return void 0;
|
|
5294
|
+
}
|
|
5295
|
+
if (element.vtableIndex === void 0 && !this.populateVtableEntryRaw(element)) {
|
|
5296
|
+
return void 0;
|
|
5297
|
+
}
|
|
5298
|
+
const vtable = element.vtable;
|
|
5299
|
+
const buffer = element.buffer;
|
|
5300
|
+
if (vtable === void 0 || buffer === void 0 || offset >= (element.vtableCount ?? 0)) {
|
|
5301
|
+
return void 0;
|
|
5302
|
+
}
|
|
5303
|
+
return extractIntegerArrayAt(buffer, vtable[element.vtableIndex + offset], buffer.length, sink);
|
|
5304
|
+
}
|
|
5241
5305
|
populateVtableEntryRaw(element) {
|
|
5242
5306
|
if (element.vtableIndex !== void 0 || element.typeID === 0) {
|
|
5243
5307
|
return true;
|
|
@@ -10778,28 +10842,48 @@ var StepEntityBase = class {
|
|
|
10778
10842
|
* @return {number} How many values were appended (0 when the field is
|
|
10779
10843
|
* unset/optional-null).
|
|
10780
10844
|
*/
|
|
10781
|
-
|
|
10845
|
+
/**
|
|
10846
|
+
* Walk a reference-list field, handing each element's express ID to
|
|
10847
|
+
* `onReference` without resolving it to an entity.
|
|
10848
|
+
*
|
|
10849
|
+
* Lets hot loops decide per element how to read the referenced record
|
|
10850
|
+
* (see StepModelBase.extractIntegerArrayByExpressIDInto) instead of
|
|
10851
|
+
* paying for an entity per element the way the generated list getters
|
|
10852
|
+
* do. Inline (non-reference) elements yield `undefined`, and
|
|
10853
|
+
* `onReference` returning false aborts the walk — together those let
|
|
10854
|
+
* a caller bail out to the generated getter for anything it is not
|
|
10855
|
+
* prepared to handle.
|
|
10856
|
+
*
|
|
10857
|
+
* @param offset The offset in the vtable to extract from.
|
|
10858
|
+
* @param baseOffset The base offset of the class in the vtable.
|
|
10859
|
+
* @param depth The depth in the inheritance hierarchy.
|
|
10860
|
+
* @param onReference Receives each element's express ID, or undefined
|
|
10861
|
+
* for an inline element; return false to abort.
|
|
10862
|
+
* @return {boolean} False if the walk was aborted, true otherwise.
|
|
10863
|
+
*/
|
|
10864
|
+
forEachReferenceInField(offset, baseOffset, depth, onReference) {
|
|
10782
10865
|
let cursor = this.getOffsetCursor(offset, baseOffset, depth);
|
|
10783
10866
|
const buffer = this.buffer;
|
|
10784
10867
|
const endCursor = buffer.length;
|
|
10785
10868
|
if (stepExtractOptional(buffer, cursor, endCursor) === null) {
|
|
10786
|
-
return
|
|
10869
|
+
return true;
|
|
10787
10870
|
}
|
|
10788
|
-
let count = 0;
|
|
10789
10871
|
let signedCursor0 = stepExtractArrayBegin(buffer, cursor, endCursor);
|
|
10790
10872
|
cursor = Math.abs(signedCursor0);
|
|
10791
10873
|
while (signedCursor0 >= 0) {
|
|
10792
|
-
|
|
10793
|
-
|
|
10794
|
-
throw new Error("Value in STEP was incorrectly typed");
|
|
10874
|
+
if (!onReference(stepExtractReference(buffer, cursor, endCursor))) {
|
|
10875
|
+
return false;
|
|
10795
10876
|
}
|
|
10796
10877
|
cursor = skipValue(buffer, cursor, endCursor);
|
|
10797
|
-
sink.push(value);
|
|
10798
|
-
++count;
|
|
10799
10878
|
signedCursor0 = stepExtractArrayToken(buffer, cursor, endCursor);
|
|
10800
10879
|
cursor = Math.abs(signedCursor0);
|
|
10801
10880
|
}
|
|
10802
|
-
return
|
|
10881
|
+
return true;
|
|
10882
|
+
}
|
|
10883
|
+
extractIntegerArrayInto(offset, baseOffset, depth, sink) {
|
|
10884
|
+
const cursor = this.getOffsetCursor(offset, baseOffset, depth);
|
|
10885
|
+
const buffer = this.buffer;
|
|
10886
|
+
return extractIntegerArrayAt(buffer, cursor, buffer.length, sink);
|
|
10803
10887
|
}
|
|
10804
10888
|
/**
|
|
10805
10889
|
* Extract a number at the particular vtable offset (i.e. the position
|
|
@@ -291,13 +291,46 @@ export declare class IfcGeometryExtraction {
|
|
|
291
291
|
* @param isRelVoid - is this geometry a relvoid?
|
|
292
292
|
*/
|
|
293
293
|
private extractTriangulatedFaceSet;
|
|
294
|
+
/**
|
|
295
|
+
* Hand a faceset's accumulated indices to wasm and register the
|
|
296
|
+
* resulting mesh. Shared by the fast reference-level path and the
|
|
297
|
+
* generated-getter fallback so they cannot diverge.
|
|
298
|
+
*
|
|
299
|
+
* @param entity The faceset.
|
|
300
|
+
* @param temporary Is this a temporary (preview//operand) extraction?
|
|
301
|
+
* @param isRelVoid Is this geometry a rel-void operand?
|
|
302
|
+
* @param indicesPerFace Index count of the last face processed.
|
|
303
|
+
* @param allIndices Face indices, concatenated.
|
|
304
|
+
* @param allStartIndices Per-face start indices.
|
|
305
|
+
* @param polygonalFaceBufferOffsets Per-face offsets into allIndices.
|
|
306
|
+
* @param startIndicesBufferOffsets Per-face offsets into allStartIndices.
|
|
307
|
+
* @return {ExtractResult} The extraction result.
|
|
308
|
+
*/
|
|
309
|
+
private finishPolygonalFaceSet_;
|
|
310
|
+
/**
|
|
311
|
+
* Extract a polygonal faceset.
|
|
312
|
+
*
|
|
313
|
+
* The index sinks are extractor-scoped, so a nested faceset extraction
|
|
314
|
+
* reached from inside this one would silently clobber them. Nothing
|
|
315
|
+
* recurses there today, so this guards the invariant rather than a
|
|
316
|
+
* live bug — but the release must survive a throw: per-record
|
|
317
|
+
* extraction errors are caught upstream and are expected on malformed
|
|
318
|
+
* models, and a leaked flag would turn one bad record into a failure
|
|
319
|
+
* for every remaining faceset.
|
|
320
|
+
*
|
|
321
|
+
* @param entity The faceset.
|
|
322
|
+
* @param temporary Is this a temporary (preview/operand) extraction?
|
|
323
|
+
* @param isRelVoid Is this geometry a rel-void operand?
|
|
324
|
+
* @return {ExtractResult} The extraction result.
|
|
325
|
+
*/
|
|
326
|
+
private extractPolygonalFaceSet;
|
|
294
327
|
/**
|
|
295
328
|
* @param entity
|
|
296
329
|
* @param temporary
|
|
297
330
|
* @param isRelVoid
|
|
298
331
|
* @return {ExtractResult}
|
|
299
332
|
*/
|
|
300
|
-
private
|
|
333
|
+
private extractPolygonalFaceSetGuarded_;
|
|
301
334
|
/**
|
|
302
335
|
* @param array
|
|
303
336
|
* @return {number} Pointer/memory address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ifc_geometry_extraction.d.ts","sourceRoot":"","sources":["../../../src/ifc/ifc_geometry_extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,6 +113,16 @@ export function extractColorOrFactorMultiply(from, surfaceColor, alpha = 1) {
|
|
|
113
113
|
* Starting capacities for the reused polygonal-faceset sinks: enough that a
|
|
114
114
|
* typical faceset never reallocates, while still growing for outliers.
|
|
115
115
|
*/
|
|
116
|
+
/**
|
|
117
|
+
* Vtable coordinates of IfcPolygonalFaceSet.Faces and
|
|
118
|
+
* IfcIndexedPolygonalFace.CoordIndex, mirroring their generated
|
|
119
|
+
* getters. The equivalence test in uint32_sink.test.ts fails loudly if
|
|
120
|
+
* codegen ever moves them.
|
|
121
|
+
*/
|
|
122
|
+
const FACES_FIELD_OFFSET = 2;
|
|
123
|
+
const FACES_FIELD_BASE_OFFSET = 1;
|
|
124
|
+
const FACES_FIELD_DEPTH = 4;
|
|
125
|
+
const COORD_INDEX_FIELD_OFFSET = 0;
|
|
116
126
|
const POLYGONAL_INDEX_SINK_CAPACITY = 65536;
|
|
117
127
|
const POLYGONAL_FACE_SINK_CAPACITY = 16384;
|
|
118
128
|
export class IfcGeometryExtraction {
|
|
@@ -531,13 +541,105 @@ export class IfcGeometryExtraction {
|
|
|
531
541
|
this.model.voidGeometry.add(canonicalMesh);
|
|
532
542
|
}
|
|
533
543
|
}
|
|
544
|
+
/**
|
|
545
|
+
* Hand a faceset's accumulated indices to wasm and register the
|
|
546
|
+
* resulting mesh. Shared by the fast reference-level path and the
|
|
547
|
+
* generated-getter fallback so they cannot diverge.
|
|
548
|
+
*
|
|
549
|
+
* @param entity The faceset.
|
|
550
|
+
* @param temporary Is this a temporary (preview//operand) extraction?
|
|
551
|
+
* @param isRelVoid Is this geometry a rel-void operand?
|
|
552
|
+
* @param indicesPerFace Index count of the last face processed.
|
|
553
|
+
* @param allIndices Face indices, concatenated.
|
|
554
|
+
* @param allStartIndices Per-face start indices.
|
|
555
|
+
* @param polygonalFaceBufferOffsets Per-face offsets into allIndices.
|
|
556
|
+
* @param startIndicesBufferOffsets Per-face offsets into allStartIndices.
|
|
557
|
+
* @return {ExtractResult} The extraction result.
|
|
558
|
+
*/
|
|
559
|
+
finishPolygonalFaceSet_(entity, temporary, isRelVoid, indicesPerFace, allIndices, allStartIndices, polygonalFaceBufferOffsets, startIndicesBufferOffsets) {
|
|
560
|
+
// Add the final entry
|
|
561
|
+
polygonalFaceBufferOffsets.push(allIndices.length);
|
|
562
|
+
startIndicesBufferOffsets.push(allStartIndices.length);
|
|
563
|
+
// Views over exactly the appended elements — no intermediate copy.
|
|
564
|
+
const indicesArray = allIndices.view;
|
|
565
|
+
const indicesArrayPtr = this.arrayToWasmHeap(indicesArray);
|
|
566
|
+
const startIndicesArray = allStartIndices.view;
|
|
567
|
+
const startIndicesArrayPtr = this.arrayToWasmHeap(startIndicesArray);
|
|
568
|
+
const polygonalFaceBufferOffsetsArray = polygonalFaceBufferOffsets.view;
|
|
569
|
+
const polygonalFaceBufferOffsetsArrayPtr = this.arrayToWasmHeap(polygonalFaceBufferOffsetsArray);
|
|
570
|
+
const startIndicesBufferOffsetsArray = startIndicesBufferOffsets.view;
|
|
571
|
+
const startIndicesBufferOffsetsArrayPtr = this.arrayToWasmHeap(startIndicesBufferOffsetsArray);
|
|
572
|
+
const polygonalFaceVector = this.wasmModule.buildIndexedPolygonalFaceVector(indicesArrayPtr, indicesArray.length, startIndicesArrayPtr, polygonalFaceBufferOffsetsArrayPtr, polygonalFaceBufferOffsetsArray.length, startIndicesBufferOffsetsArrayPtr, startIndicesBufferOffsetsArray.length);
|
|
573
|
+
const pointsParseBuffer = this.conwayModel.nativeParseBuffer();
|
|
574
|
+
if (!entity.Coordinates.extractParseBuffer(0, 0, 0, pointsParseBuffer, this.wasmModule, true)) {
|
|
575
|
+
pointsParseBuffer.resize(0);
|
|
576
|
+
}
|
|
577
|
+
const pointsArrayNative = this.wasmModule.parseVertexVector(pointsParseBuffer);
|
|
578
|
+
this.conwayModel.freeParseBuffer(pointsParseBuffer);
|
|
579
|
+
const parameters = {
|
|
580
|
+
indicesPerFace: indicesPerFace,
|
|
581
|
+
points: pointsArrayNative,
|
|
582
|
+
faces: polygonalFaceVector,
|
|
583
|
+
};
|
|
584
|
+
const geometry = this.conwayModel.getPolygonalFaceSetGeometry(parameters);
|
|
585
|
+
// free allocated wasm vectors
|
|
586
|
+
pointsArrayNative.delete();
|
|
587
|
+
this.wasmModule._free(indicesArrayPtr);
|
|
588
|
+
this.wasmModule._free(startIndicesArrayPtr);
|
|
589
|
+
this.wasmModule._free(polygonalFaceBufferOffsetsArrayPtr);
|
|
590
|
+
this.wasmModule._free(startIndicesBufferOffsetsArrayPtr);
|
|
591
|
+
polygonalFaceVector.delete();
|
|
592
|
+
const canonicalMesh = {
|
|
593
|
+
type: CanonicalMeshType.BUFFER_GEOMETRY,
|
|
594
|
+
geometry: geometry,
|
|
595
|
+
localID: entity.localID,
|
|
596
|
+
model: this.model,
|
|
597
|
+
temporary: temporary,
|
|
598
|
+
};
|
|
599
|
+
// add mesh to the list of mesh objects
|
|
600
|
+
if (!isRelVoid) {
|
|
601
|
+
this.model.geometry.add(canonicalMesh);
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
this.model.voidGeometry.add(canonicalMesh);
|
|
605
|
+
}
|
|
606
|
+
return ExtractResult.COMPLETE;
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
* Extract a polygonal faceset.
|
|
610
|
+
*
|
|
611
|
+
* The index sinks are extractor-scoped, so a nested faceset extraction
|
|
612
|
+
* reached from inside this one would silently clobber them. Nothing
|
|
613
|
+
* recurses there today, so this guards the invariant rather than a
|
|
614
|
+
* live bug — but the release must survive a throw: per-record
|
|
615
|
+
* extraction errors are caught upstream and are expected on malformed
|
|
616
|
+
* models, and a leaked flag would turn one bad record into a failure
|
|
617
|
+
* for every remaining faceset.
|
|
618
|
+
*
|
|
619
|
+
* @param entity The faceset.
|
|
620
|
+
* @param temporary Is this a temporary (preview/operand) extraction?
|
|
621
|
+
* @param isRelVoid Is this geometry a rel-void operand?
|
|
622
|
+
* @return {ExtractResult} The extraction result.
|
|
623
|
+
*/
|
|
624
|
+
extractPolygonalFaceSet(entity, temporary = false, isRelVoid = false) {
|
|
625
|
+
if (this.polygonalSinksInUse_) {
|
|
626
|
+
throw new Error("extractPolygonalFaceSet re-entered: the shared index sinks are already in use");
|
|
627
|
+
}
|
|
628
|
+
this.polygonalSinksInUse_ = true;
|
|
629
|
+
try {
|
|
630
|
+
return this.extractPolygonalFaceSetGuarded_(entity, temporary, isRelVoid);
|
|
631
|
+
}
|
|
632
|
+
finally {
|
|
633
|
+
this.polygonalSinksInUse_ = false;
|
|
634
|
+
}
|
|
635
|
+
}
|
|
534
636
|
/**
|
|
535
637
|
* @param entity
|
|
536
638
|
* @param temporary
|
|
537
639
|
* @param isRelVoid
|
|
538
640
|
* @return {ExtractResult}
|
|
539
641
|
*/
|
|
540
|
-
|
|
642
|
+
extractPolygonalFaceSetGuarded_(entity, temporary, isRelVoid) {
|
|
541
643
|
const result = ExtractResult.COMPLETE;
|
|
542
644
|
// Reusable typed sinks. A tessellated model can carry millions of
|
|
543
645
|
// IfcIndexedPolygonalFace records, and the boxed `Array< number >`
|
|
@@ -546,15 +648,6 @@ export class IfcGeometryExtraction {
|
|
|
546
648
|
// GC time and retained heap during extraction. Indices are parsed
|
|
547
649
|
// straight from the STEP buffer into these instead, reused across
|
|
548
650
|
// facesets.
|
|
549
|
-
// The sinks are extractor-scoped, so a nested faceset extraction
|
|
550
|
-
// reached from inside this one would silently clobber them. Nothing
|
|
551
|
-
// in the window between reset and the wasm copies below recurses
|
|
552
|
-
// today (the face loop only parses), so this guards the invariant
|
|
553
|
-
// rather than a live bug — fail loudly if that ever changes.
|
|
554
|
-
if (this.polygonalSinksInUse_) {
|
|
555
|
-
throw new Error("extractPolygonalFaceSet re-entered: the shared index sinks are already in use");
|
|
556
|
-
}
|
|
557
|
-
this.polygonalSinksInUse_ = true;
|
|
558
651
|
const allIndices = this.polygonalIndexSink_;
|
|
559
652
|
const allStartIndices = this.polygonalStartIndexSink_;
|
|
560
653
|
const polygonalFaceBufferOffsets = this.polygonalFaceOffsetSink_;
|
|
@@ -564,6 +657,41 @@ export class IfcGeometryExtraction {
|
|
|
564
657
|
polygonalFaceBufferOffsets.reset();
|
|
565
658
|
startIndicesBufferOffsets.reset();
|
|
566
659
|
let indicesPerFace = -1;
|
|
660
|
+
// Fast path: read each face's CoordIndex straight from its record,
|
|
661
|
+
// never constructing the 9M+ IfcIndexedPolygonalFace entities a
|
|
662
|
+
// large tessellated model would otherwise materialise (and retain,
|
|
663
|
+
// since the generated Faces getter caches them). It handles only
|
|
664
|
+
// plain, single-class IFCINDEXEDPOLYGONALFACE records; anything
|
|
665
|
+
// else (voided faces, inline elements, multi-mapped records)
|
|
666
|
+
// abandons the whole faceset back to the getter path below, so
|
|
667
|
+
// correctness never depends on the fast path's coverage.
|
|
668
|
+
let fastPathOk = true;
|
|
669
|
+
const facesWalked = entity.forEachReferenceInField(FACES_FIELD_OFFSET, FACES_FIELD_BASE_OFFSET, FACES_FIELD_DEPTH, (expressID) => {
|
|
670
|
+
if (expressID === void 0) {
|
|
671
|
+
fastPathOk = false;
|
|
672
|
+
return false;
|
|
673
|
+
}
|
|
674
|
+
const count = this.model.extractIntegerArrayByExpressIDInto(expressID, COORD_INDEX_FIELD_OFFSET, EntityTypesIfc.IFCINDEXEDPOLYGONALFACE, allIndices);
|
|
675
|
+
if (count === void 0) {
|
|
676
|
+
fastPathOk = false;
|
|
677
|
+
return false;
|
|
678
|
+
}
|
|
679
|
+
polygonalFaceBufferOffsets.push(allIndices.length - count);
|
|
680
|
+
startIndicesBufferOffsets.push(allStartIndices.length);
|
|
681
|
+
allStartIndices.push(0);
|
|
682
|
+
indicesPerFace = count;
|
|
683
|
+
return true;
|
|
684
|
+
});
|
|
685
|
+
if (fastPathOk && facesWalked) {
|
|
686
|
+
this.finishPolygonalFaceSet_(entity, temporary, isRelVoid, indicesPerFace, allIndices, allStartIndices, polygonalFaceBufferOffsets, startIndicesBufferOffsets);
|
|
687
|
+
return result;
|
|
688
|
+
}
|
|
689
|
+
// Fallback: something in this faceset needs the generated getters.
|
|
690
|
+
allIndices.reset();
|
|
691
|
+
allStartIndices.reset();
|
|
692
|
+
polygonalFaceBufferOffsets.reset();
|
|
693
|
+
startIndicesBufferOffsets.reset();
|
|
694
|
+
indicesPerFace = -1;
|
|
567
695
|
// Prepare indices and start indices for all faces
|
|
568
696
|
entity.Faces.forEach((polygonalFace) => {
|
|
569
697
|
// set the offets for the memory buffers so we can rebuild the
|
|
@@ -594,54 +722,7 @@ export class IfcGeometryExtraction {
|
|
|
594
722
|
allStartIndices.push(0);
|
|
595
723
|
}
|
|
596
724
|
});
|
|
597
|
-
|
|
598
|
-
polygonalFaceBufferOffsets.push(allIndices.length);
|
|
599
|
-
startIndicesBufferOffsets.push(allStartIndices.length);
|
|
600
|
-
// Views over exactly the appended elements — no intermediate copy.
|
|
601
|
-
const indicesArray = allIndices.view;
|
|
602
|
-
const indicesArrayPtr = this.arrayToWasmHeap(indicesArray);
|
|
603
|
-
const startIndicesArray = allStartIndices.view;
|
|
604
|
-
const startIndicesArrayPtr = this.arrayToWasmHeap(startIndicesArray);
|
|
605
|
-
const polygonalFaceBufferOffsetsArray = polygonalFaceBufferOffsets.view;
|
|
606
|
-
const polygonalFaceBufferOffsetsArrayPtr = this.arrayToWasmHeap(polygonalFaceBufferOffsetsArray);
|
|
607
|
-
const startIndicesBufferOffsetsArray = startIndicesBufferOffsets.view;
|
|
608
|
-
const startIndicesBufferOffsetsArrayPtr = this.arrayToWasmHeap(startIndicesBufferOffsetsArray);
|
|
609
|
-
const polygonalFaceVector = this.wasmModule.buildIndexedPolygonalFaceVector(indicesArrayPtr, indicesArray.length, startIndicesArrayPtr, polygonalFaceBufferOffsetsArrayPtr, polygonalFaceBufferOffsetsArray.length, startIndicesBufferOffsetsArrayPtr, startIndicesBufferOffsetsArray.length);
|
|
610
|
-
// Sink contents are now copied into wasm; the sinks are free again.
|
|
611
|
-
this.polygonalSinksInUse_ = false;
|
|
612
|
-
const pointsParseBuffer = this.conwayModel.nativeParseBuffer();
|
|
613
|
-
if (!entity.Coordinates.extractParseBuffer(0, 0, 0, pointsParseBuffer, this.wasmModule, true)) {
|
|
614
|
-
pointsParseBuffer.resize(0);
|
|
615
|
-
}
|
|
616
|
-
const pointsArrayNative = this.wasmModule.parseVertexVector(pointsParseBuffer);
|
|
617
|
-
this.conwayModel.freeParseBuffer(pointsParseBuffer);
|
|
618
|
-
const parameters = {
|
|
619
|
-
indicesPerFace: indicesPerFace,
|
|
620
|
-
points: pointsArrayNative,
|
|
621
|
-
faces: polygonalFaceVector,
|
|
622
|
-
};
|
|
623
|
-
const geometry = this.conwayModel.getPolygonalFaceSetGeometry(parameters);
|
|
624
|
-
// free allocated wasm vectors
|
|
625
|
-
pointsArrayNative.delete();
|
|
626
|
-
this.wasmModule._free(indicesArrayPtr);
|
|
627
|
-
this.wasmModule._free(startIndicesArrayPtr);
|
|
628
|
-
this.wasmModule._free(polygonalFaceBufferOffsetsArrayPtr);
|
|
629
|
-
this.wasmModule._free(startIndicesBufferOffsetsArrayPtr);
|
|
630
|
-
polygonalFaceVector.delete();
|
|
631
|
-
const canonicalMesh = {
|
|
632
|
-
type: CanonicalMeshType.BUFFER_GEOMETRY,
|
|
633
|
-
geometry: geometry,
|
|
634
|
-
localID: entity.localID,
|
|
635
|
-
model: this.model,
|
|
636
|
-
temporary: temporary,
|
|
637
|
-
};
|
|
638
|
-
// add mesh to the list of mesh objects
|
|
639
|
-
if (!isRelVoid) {
|
|
640
|
-
this.model.geometry.add(canonicalMesh);
|
|
641
|
-
}
|
|
642
|
-
else {
|
|
643
|
-
this.model.voidGeometry.add(canonicalMesh);
|
|
644
|
-
}
|
|
725
|
+
this.finishPolygonalFaceSet_(entity, temporary, isRelVoid, indicesPerFace, allIndices, allStartIndices, polygonalFaceBufferOffsets, startIndicesBufferOffsets);
|
|
645
726
|
return result;
|
|
646
727
|
}
|
|
647
728
|
/**
|
|
@@ -34,4 +34,19 @@ export declare class Uint32Sink {
|
|
|
34
34
|
*/
|
|
35
35
|
push(value: number): void;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse a STEP integer list at `cursor` into `sink`, appending in order.
|
|
39
|
+
*
|
|
40
|
+
* The single implementation shared by the entity-level and
|
|
41
|
+
* reference-level fast paths, so they cannot drift from each other or
|
|
42
|
+
* from the generated array getters they stand in for (same optional
|
|
43
|
+
* handling, same element extraction, same "incorrectly typed" error).
|
|
44
|
+
*
|
|
45
|
+
* @param buffer The record's buffer window.
|
|
46
|
+
* @param cursor Start of the field.
|
|
47
|
+
* @param endCursor End bound for extraction.
|
|
48
|
+
* @param sink Receives the appended values.
|
|
49
|
+
* @return {number} How many values were appended (0 when unset/optional-null).
|
|
50
|
+
*/
|
|
51
|
+
export declare function extractIntegerArrayAt(buffer: Uint8Array, cursor: number, endCursor: number, sink: Uint32Sink): number;
|
|
37
52
|
//# sourceMappingURL=uint32_sink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint32_sink.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/uint32_sink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uint32_sink.d.ts","sourceRoot":"","sources":["../../../../src/step/parsing/uint32_sink.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IAErB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAY;IAE3B;;OAEG;gBACU,eAAe,GAAE,MAAa;IAI3C,oEAAoE;IACpE,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;;;;OAKG;IACH,IAAW,IAAI,IAAI,WAAW,CAE7B;IAED,kEAAkE;IAC3D,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACI,IAAI,CAAE,KAAK,EAAE,MAAM,GAAI,IAAI;CAanC;AAGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GAAI,MAAM,CA4B7B"}
|