@bldrs-ai/conway 1.509.1435 → 1.511.1441
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 +410 -16
- package/compiled/examples/cli-bundled.cjs +544 -18
- package/compiled/examples/cli-step-bundled.cjs +312 -16
- package/compiled/examples/validator-bundled.cjs +410 -16
- package/compiled/src/compat/web-ifc/ifc_api.d.ts +33 -0
- package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api.js +47 -0
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.js +29 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +8 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts +14 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.js +33 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts +7 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.js +16 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +64 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +293 -30
- package/compiled/src/compat/web-ifc/ifc_api_streamed_open.test.js +29 -0
- package/compiled/src/ifc/ifc_demand_extraction.test.js +12 -1
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +35 -0
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +142 -2
- package/compiled/src/ifc/ifc_step_parser.d.ts +23 -1
- package/compiled/src/ifc/ifc_step_parser.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_step_parser.js +23 -1
- package/compiled/src/ifc/ifc_stream_open.d.ts +28 -1
- package/compiled/src/ifc/ifc_stream_open.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_stream_open.js +44 -1
- package/compiled/src/ifc/ifc_stream_open.test.js +10 -1
- package/compiled/src/index.d.ts +3 -2
- package/compiled/src/index.d.ts.map +1 -1
- package/compiled/src/index.js +3 -2
- package/compiled/src/namespace_surface.test.js +3 -0
- package/compiled/src/step/parsing/byte_source.d.ts +98 -0
- package/compiled/src/step/parsing/byte_source.d.ts.map +1 -1
- package/compiled/src/step/parsing/byte_source.js +71 -0
- package/compiled/src/step/parsing/byte_source.test.d.ts +2 -0
- package/compiled/src/step/parsing/byte_source.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/byte_source.test.js +47 -0
- package/compiled/src/step/parsing/byte_source_node.d.ts +41 -0
- package/compiled/src/step/parsing/byte_source_node.d.ts.map +1 -0
- package/compiled/src/step/parsing/byte_source_node.js +54 -0
- package/compiled/src/step/parsing/express_ref_scan.d.ts +20 -0
- package/compiled/src/step/parsing/express_ref_scan.d.ts.map +1 -0
- package/compiled/src/step/parsing/express_ref_scan.js +91 -0
- package/compiled/src/step/parsing/express_ref_scan.test.d.ts +2 -0
- package/compiled/src/step/parsing/express_ref_scan.test.d.ts.map +1 -0
- package/compiled/src/step/parsing/express_ref_scan.test.js +28 -0
- package/compiled/src/step/parsing/step_parser.d.ts +7 -4
- package/compiled/src/step/parsing/step_parser.d.ts.map +1 -1
- package/compiled/src/step/parsing/step_parser.js +25 -6
- package/compiled/src/step/parsing/streaming_index_builder.d.ts +3 -3
- package/compiled/src/step/parsing/streaming_index_builder.d.ts.map +1 -1
- package/compiled/src/step/parsing/streaming_index_builder.js +27 -7
- package/compiled/src/step/parsing/streaming_index_builder_async.test.js +13 -1
- package/compiled/src/step/step_buffer_provider.d.ts +44 -0
- package/compiled/src/step/step_buffer_provider.d.ts.map +1 -1
- package/compiled/src/step/step_buffer_provider.js +56 -8
- package/compiled/src/step/step_buffer_provider.test.js +14 -0
- package/compiled/src/step/step_entity_base.d.ts +15 -0
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +33 -0
- package/compiled/src/step/step_model_base.d.ts +62 -0
- package/compiled/src/step/step_model_base.d.ts.map +1 -1
- package/compiled/src/step/step_model_base.js +136 -0
- package/compiled/src/stream/index.d.ts +3 -2
- package/compiled/src/stream/index.d.ts.map +1 -1
- package/compiled/src/stream/index.js +3 -2
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -73,6 +73,35 @@ describe("OpenModelStreamed + DEFER_GEOMETRY", () => {
|
|
|
73
73
|
api.CloseModel(classicID);
|
|
74
74
|
api.CloseModel(deferredID);
|
|
75
75
|
}, 240000);
|
|
76
|
+
test("deferred pump emits a Geometry progress phase", async () => {
|
|
77
|
+
const events = [];
|
|
78
|
+
const deferredID = await api.OpenModelStreamed(buffer, {
|
|
79
|
+
...SETTINGS,
|
|
80
|
+
DEFER_GEOMETRY: true,
|
|
81
|
+
ON_PROGRESS: (event) => {
|
|
82
|
+
events.push({
|
|
83
|
+
phase: event.phase,
|
|
84
|
+
completed: event.completed,
|
|
85
|
+
total: event.total,
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
expect(deferredID).toBeGreaterThanOrEqual(0);
|
|
90
|
+
for (;;) {
|
|
91
|
+
const { extracted, remaining } = api.ExtractGeometryBatch(deferredID, 7);
|
|
92
|
+
if (remaining === 0 && extracted === 0) {
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const parseEvents = events.filter((event) => event.phase === "dataParse");
|
|
97
|
+
const geometryEvents = events.filter((event) => event.phase === "geometry");
|
|
98
|
+
expect(parseEvents.length).toBeGreaterThan(0);
|
|
99
|
+
expect(geometryEvents.length).toBeGreaterThan(0);
|
|
100
|
+
expect(geometryEvents[0].completed).toBe(0);
|
|
101
|
+
expect(geometryEvents[geometryEvents.length - 1].completed).
|
|
102
|
+
toBe(geometryEvents[geometryEvents.length - 1].total);
|
|
103
|
+
api.CloseModel(deferredID);
|
|
104
|
+
}, 240000);
|
|
76
105
|
test("StreamAllMeshes on a deferred model drains the pump and matches classic", async () => {
|
|
77
106
|
const classicID = api.OpenModel(buffer, SETTINGS);
|
|
78
107
|
const classic = new Map();
|
|
@@ -20,6 +20,14 @@ export interface IfcApiModelPassthrough {
|
|
|
20
20
|
extracted: number;
|
|
21
21
|
remaining: number;
|
|
22
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Async twin of extractGeometryBatch — pages windowed source ranges
|
|
25
|
+
* before each product extract (M1b). Feature-detect with typeof.
|
|
26
|
+
*/
|
|
27
|
+
extractGeometryBatchAsync?(batchSize: number, meshCallback?: (mesh: FlatMesh) => void): Promise<{
|
|
28
|
+
extracted: number;
|
|
29
|
+
remaining: number;
|
|
30
|
+
}>;
|
|
23
31
|
getCoordinationMatrix(): number[];
|
|
24
32
|
/**
|
|
25
33
|
* Optional: the coordination frame the open ACTUALLY applied to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api_model_passthrough.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE,qBAAqB,CAAA;IAEjC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;IACxC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IACvF,eAAe,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IAC7D;;;OAGG;IACH;gEAC4D;IAC5D,eAAe,CAAC,IAAI,OAAO,CAAA;IAE3B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,oBAAoB,CAAC,CACnB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ifc_api_model_passthrough.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE,qBAAqB,CAAA;IAEjC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;IACxC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IACvF,eAAe,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;IAC7D;;;OAGG;IACH;gEAC4D;IAC5D,eAAe,CAAC,IAAI,OAAO,CAAA;IAE3B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,oBAAoB,CAAC,CACnB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;IAElF;;;OAGG;IACH,yBAAyB,CAAC,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GACvC,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;IACjD,qBAAqB,IAAI,MAAM,EAAE,CAAA;IAEjC;;;;;;;OAOG;IACH,sBAAsB,CAAC,IAAI,MAAM,EAAE,CAAA;IACnC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IAC9C,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;IAC5B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5D,WAAW,CAAC,iBAAiB,EAAE,MAAM,GAAG,WAAW,CAAA;IAEnD;;;OAGG;IACH,kBAAkB,CAAC,IAAI,IAAI,CAAA;IAE3B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAEnC;;;OAGG;IACH,0BAA0B,CAAC,CACzB,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GAAI,IAAI,CAAA;IAEpC;;;OAGG;IACH,kBAAkB,CAAC,CAAE,SAAS,EAAE,MAAM,GAAI,OAAO,CAAE,IAAI,CAAE,CAAA;IAEzD;;;;;OAKG;IACH,cAAc,CAAC,IAAI,gBAAgB,CAAE,MAAM,CAAE,CAAA;CAC9C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Loadersettings } from "./ifc_api.js";
|
|
2
2
|
import { IfcApiModelPassthrough } from "./ifc_api_model_passthrough.js";
|
|
3
|
+
import { StepExternalByteStore } from "../../step/step_buffer_provider.js";
|
|
3
4
|
/**
|
|
4
5
|
* The factory to construct models.
|
|
5
6
|
*/
|
|
@@ -29,6 +30,19 @@ export declare class IfcApiModelPassthroughFactory {
|
|
|
29
30
|
* @return {Promise<IfcApiModelPassthrough | undefined>}
|
|
30
31
|
*/
|
|
31
32
|
static fromStreamed(modelID: number, data: Uint8Array, wasmModule: any, settings?: Loadersettings): Promise<IfcApiModelPassthrough | undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* Store-backed open (M1b): IFC models parse through a moving window
|
|
35
|
+
* over `store` and stay windowed from birth. Non-IFC formats are not
|
|
36
|
+
* implemented on this path — the caller should fall back to buffering
|
|
37
|
+
* and fromStreamed.
|
|
38
|
+
*
|
|
39
|
+
* @param modelID
|
|
40
|
+
* @param store External store holding the source bytes.
|
|
41
|
+
* @param wasmModule
|
|
42
|
+
* @param settings
|
|
43
|
+
* @return {Promise<IfcApiModelPassthrough | undefined>}
|
|
44
|
+
*/
|
|
45
|
+
static fromStore(modelID: number, store: StepExternalByteStore, wasmModule: any, settings?: Loadersettings): Promise<IfcApiModelPassthrough | undefined>;
|
|
32
46
|
/**
|
|
33
47
|
* Cooperative twin of from() (used by OpenModelAsync): the data parse
|
|
34
48
|
* runs with periodic event-loop yields so progress UI can repaint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api_model_passthrough_factory.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough_factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"ifc_api_model_passthrough_factory.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough_factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAIpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAMvE;;GAEG;AACH,qBAAa,6BAA6B;IAExC;;;;;;;OAOG;WACW,IAAI,CACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,sBAAsB,GAAG,SAAS;IA2EnE;;;;;;;;;;;;;;OAcG;WACiB,YAAY,CAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAkD5E;;;;;;;;;;;OAWG;WACiB,SAAS,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IA2B5E;;;;;;;;;;;;OAYG;WACiB,SAAS,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,cAAc,GAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;CA+C7E"}
|
|
@@ -3,6 +3,9 @@ import ParsingBuffer from "../../parsing/parsing_buffer.js";
|
|
|
3
3
|
import { IfcApiProxyAP214 } from "./ifc_api_proxy_ap214.js";
|
|
4
4
|
import { IfcApiProxyIfc } from "./ifc_api_proxy_ifc.js";
|
|
5
5
|
import Logger from "../../logging/logger.js";
|
|
6
|
+
/** Prefix used to sniff FILE_SCHEMA without paging the whole file. */
|
|
7
|
+
// eslint-disable-next-line no-magic-numbers
|
|
8
|
+
const STORE_DETECT_PREFIX_BYTES = 64 * 1024;
|
|
6
9
|
/**
|
|
7
10
|
* The factory to construct models.
|
|
8
11
|
*/
|
|
@@ -116,6 +119,36 @@ export class IfcApiModelPassthroughFactory {
|
|
|
116
119
|
}
|
|
117
120
|
return IfcApiModelPassthroughFactory.fromAsync(modelID, data, wasmModule, settings);
|
|
118
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Store-backed open (M1b): IFC models parse through a moving window
|
|
124
|
+
* over `store` and stay windowed from birth. Non-IFC formats are not
|
|
125
|
+
* implemented on this path — the caller should fall back to buffering
|
|
126
|
+
* and fromStreamed.
|
|
127
|
+
*
|
|
128
|
+
* @param modelID
|
|
129
|
+
* @param store External store holding the source bytes.
|
|
130
|
+
* @param wasmModule
|
|
131
|
+
* @param settings
|
|
132
|
+
* @return {Promise<IfcApiModelPassthrough | undefined>}
|
|
133
|
+
*/
|
|
134
|
+
static async fromStore(modelID, store, wasmModule, settings) {
|
|
135
|
+
const prefixLen = Math.min(store.byteLength, STORE_DETECT_PREFIX_BYTES);
|
|
136
|
+
const prefix = await store.read(0, prefixLen);
|
|
137
|
+
const modelFormat = ModelFormatDetector.detect(new ParsingBuffer(prefix));
|
|
138
|
+
if (modelFormat === ModelFormatType.IFC) {
|
|
139
|
+
try {
|
|
140
|
+
return await IfcApiProxyIfc.createFromStore(modelID, store, wasmModule, settings);
|
|
141
|
+
}
|
|
142
|
+
catch (e) {
|
|
143
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
144
|
+
Logger.warning(`Store-backed open failed for model ${modelID}: ${message}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
Logger.warning("Store-backed open is IFC-only; use OpenModelStreamed with a buffer " +
|
|
149
|
+
`for format ${modelFormat}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
119
152
|
/**
|
|
120
153
|
* Cooperative twin of from() (used by OpenModelAsync): the data parse
|
|
121
154
|
* runs with periodic event-loop yields so progress UI can repaint
|
|
@@ -8,6 +8,7 @@ import AP214StepModel from "../../AP214E3_2010/ap214_step_model.js";
|
|
|
8
8
|
import { AP214SceneBuilder } from "../../AP214E3_2010/ap214_scene_builder.js";
|
|
9
9
|
import { AP214GeometryExtraction } from "../../AP214E3_2010/ap214_geometry_extraction.js";
|
|
10
10
|
import { AP214Properties } from "./ap214_properties.js";
|
|
11
|
+
import { ProgressTracker } from "../../core/progress.js";
|
|
11
12
|
import { StepHeader } from "../../step/parsing/step_parser.js";
|
|
12
13
|
/**
|
|
13
14
|
* Everything parse/extraction produces that the proxy constructor's tail
|
|
@@ -28,6 +29,8 @@ interface Ap214ProxyLoadState {
|
|
|
28
29
|
scene: AP214SceneBuilder;
|
|
29
30
|
conwayGeometry: AP214GeometryExtraction;
|
|
30
31
|
geometryTimeInMs: number;
|
|
32
|
+
/** Parse tracker, kept so the deferred batch pump can emit Geometry. */
|
|
33
|
+
tracker?: ProgressTracker;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
*/
|
|
@@ -56,6 +59,10 @@ export declare class IfcApiProxyAP214 implements IfcApiModelPassthrough {
|
|
|
56
59
|
private conwayGeometry_;
|
|
57
60
|
/** Was this model opened without extraction (DEFER_GEOMETRY)? */
|
|
58
61
|
private deferredMode_;
|
|
62
|
+
/** Parse/load tracker — deferred opens resume it for the Geometry phase. */
|
|
63
|
+
private progressTracker_?;
|
|
64
|
+
/** True once beginPhase('geometry') has fired for this deferred pump. */
|
|
65
|
+
private geometryPhaseStarted_;
|
|
59
66
|
/** Has finishDemandExtraction run (deferred models, once)? */
|
|
60
67
|
private demandFinished_;
|
|
61
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api_proxy_ap214.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ap214.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AASrC,OAAO,cAAc,MAAM,qCAAqC,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAA;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ifc_api_proxy_ap214.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ap214.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,6 +101,8 @@ export class IfcApiProxyAP214 {
|
|
|
101
101
|
this.fs = undefined;
|
|
102
102
|
/** Was this model opened without extraction (DEFER_GEOMETRY)? */
|
|
103
103
|
this.deferredMode_ = false;
|
|
104
|
+
/** True once beginPhase('geometry') has fired for this deferred pump. */
|
|
105
|
+
this.geometryPhaseStarted_ = false;
|
|
104
106
|
/** Has finishDemandExtraction run (deferred models, once)? */
|
|
105
107
|
this.demandFinished_ = false;
|
|
106
108
|
/**
|
|
@@ -134,6 +136,7 @@ export class IfcApiProxyAP214 {
|
|
|
134
136
|
this.conwaywasm = loadState.conwaywasm;
|
|
135
137
|
this.conwayGeometry_ = loadState.conwayGeometry;
|
|
136
138
|
this.deferredMode_ = loadState.deferred === true;
|
|
139
|
+
this.progressTracker_ = loadState.tracker;
|
|
137
140
|
const statistics = Logger.getStatistics(modelID);
|
|
138
141
|
const { allTimeStart, stepHeader, model, scene, conwayGeometry, geometryTimeInMs: executionTimeInMs, } = loadState;
|
|
139
142
|
// get linear scaling factor
|
|
@@ -386,6 +389,7 @@ export class IfcApiProxyAP214 {
|
|
|
386
389
|
scene: conwayGeometry.scene,
|
|
387
390
|
conwayGeometry,
|
|
388
391
|
geometryTimeInMs: 0,
|
|
392
|
+
tracker,
|
|
389
393
|
};
|
|
390
394
|
}
|
|
391
395
|
// Heartbeat only: the AP214 thunk-tree extraction has no flat
|
|
@@ -958,8 +962,20 @@ export class IfcApiProxyAP214 {
|
|
|
958
962
|
// the requested batch down so STEP loads stay progressive without
|
|
959
963
|
// any consumer knowing the schema.
|
|
960
964
|
const units = Math.max(1, Math.floor(batchSize / AP214_UNITS_PER_PRODUCT_BATCH));
|
|
965
|
+
if (this.progressTracker_ !== void 0 && !this.geometryPhaseStarted_) {
|
|
966
|
+
this.progressTracker_.beginPhase("geometry", "products", extraction.demandUnitCount);
|
|
967
|
+
this.geometryPhaseStarted_ = true;
|
|
968
|
+
}
|
|
961
969
|
const extracted = extraction.extractDemandUnitBatch(units);
|
|
962
970
|
const remaining = extraction.demandUnitCount - extraction.demandUnitCursor;
|
|
971
|
+
if (this.progressTracker_ !== void 0) {
|
|
972
|
+
if (remaining === 0) {
|
|
973
|
+
this.progressTracker_.endPhase(extraction.demandUnitCount);
|
|
974
|
+
}
|
|
975
|
+
else {
|
|
976
|
+
this.progressTracker_.update(extraction.demandUnitCursor);
|
|
977
|
+
}
|
|
978
|
+
}
|
|
963
979
|
if (remaining === 0 && !this.demandFinished_) {
|
|
964
980
|
this.demandFinished_ = true;
|
|
965
981
|
extraction.finishDemandExtraction();
|
|
@@ -8,6 +8,7 @@ import { IfcApiModelPassthrough } from "./ifc_api_model_passthrough.js";
|
|
|
8
8
|
import { NodeValueHandle } from "./properties_passthrough.js";
|
|
9
9
|
import * as glmatrix from "gl-matrix";
|
|
10
10
|
import { IfcProperties } from "./ifc_properties.js";
|
|
11
|
+
import { ProgressTracker } from "../../core/progress.js";
|
|
11
12
|
import { StepHeader } from "../../step/parsing/step_parser.js";
|
|
12
13
|
import { IfcGeometryExtraction } from "../../ifc/ifc_geometry_extraction.js";
|
|
13
14
|
/**
|
|
@@ -29,6 +30,8 @@ interface IfcProxyLoadState {
|
|
|
29
30
|
scene: IfcSceneBuilder;
|
|
30
31
|
conwayGeometry: IfcGeometryExtraction;
|
|
31
32
|
geometryTimeInMs: number;
|
|
33
|
+
/** Parse tracker, kept so the deferred batch pump can emit Geometry. */
|
|
34
|
+
tracker?: ProgressTracker;
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
37
|
* The proxy for IFC from the shim.
|
|
@@ -58,6 +61,10 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
|
|
|
58
61
|
private conwayGeometry_;
|
|
59
62
|
/** Was this model opened without extraction (DEFER_GEOMETRY)? */
|
|
60
63
|
private deferredMode_;
|
|
64
|
+
/** Parse/load tracker — deferred opens resume it for the Geometry phase. */
|
|
65
|
+
private progressTracker_?;
|
|
66
|
+
/** True once beginPhase('geometry') has fired for this deferred pump. */
|
|
67
|
+
private geometryPhaseStarted_;
|
|
61
68
|
/** Deferred-mode product worklist (file order), lazily enumerated. */
|
|
62
69
|
private demandProducts_?;
|
|
63
70
|
/**
|
|
@@ -169,6 +176,19 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
|
|
|
169
176
|
* @return {Promise<IfcApiProxyIfc>} The constructed proxy.
|
|
170
177
|
*/
|
|
171
178
|
static createDeferred(modelID: number, data: Uint8Array, wasmModule: any, settings?: Loadersettings): Promise<IfcApiProxyIfc>;
|
|
179
|
+
/**
|
|
180
|
+
* M1b store-backed open: parse through a moving window over `store`
|
|
181
|
+
* and keep the model windowed from birth — the source is never held
|
|
182
|
+
* as one `ArrayBuffer`. Geometry extract pages product closures
|
|
183
|
+
* through {@link extractGeometryBatchAsync}.
|
|
184
|
+
*
|
|
185
|
+
* @param modelID The model ID being opened.
|
|
186
|
+
* @param store External store holding the source bytes.
|
|
187
|
+
* @param wasmModule The wasm module.
|
|
188
|
+
* @param settings Loader settings (ON_PROGRESS is honored).
|
|
189
|
+
* @return {Promise<IfcApiProxyIfc>} The constructed proxy.
|
|
190
|
+
*/
|
|
191
|
+
static createFromStore(modelID: number, store: StepExternalByteStore, wasmModule: any, settings?: Loadersettings): Promise<IfcApiProxyIfc>;
|
|
172
192
|
/**
|
|
173
193
|
* Log + record the header parse result on the model statistics.
|
|
174
194
|
*
|
|
@@ -230,6 +250,22 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
|
|
|
230
250
|
* @return {Promise<IfcProxyLoadState>} Everything the constructor tail needs.
|
|
231
251
|
*/
|
|
232
252
|
private static parseColumnarAndExtractAsync;
|
|
253
|
+
/**
|
|
254
|
+
* Windowed-from-birth twin of parseColumnarAndExtractAsync: the
|
|
255
|
+
* source stays in `store`, parse windows are filled through it, and
|
|
256
|
+
* the model never holds a resident copy. Preview-during-parse is
|
|
257
|
+
* skipped (that channel needs a resident prefix). Deferred opens
|
|
258
|
+
* page prep closures before prepareDemandExtraction; non-deferred
|
|
259
|
+
* opens drain the demand pump with per-product residency.
|
|
260
|
+
*
|
|
261
|
+
* @param modelID The model ID being opened.
|
|
262
|
+
* @param store External store holding the source bytes.
|
|
263
|
+
* @param conwaywasm The conway geometry wasm wrapper.
|
|
264
|
+
* @param settings Loader settings (ON_PROGRESS is honored).
|
|
265
|
+
* @param deferGeometry Skip extraction (Share demand pump).
|
|
266
|
+
* @return {Promise<IfcProxyLoadState>} Everything the constructor tail needs.
|
|
267
|
+
*/
|
|
268
|
+
private static parseColumnarFromStore;
|
|
233
269
|
/**
|
|
234
270
|
*
|
|
235
271
|
* @param input - FILE_HEADER from step header
|
|
@@ -468,6 +504,34 @@ export declare class IfcApiProxyIfc implements IfcApiModelPassthrough {
|
|
|
468
504
|
extracted: number;
|
|
469
505
|
remaining: number;
|
|
470
506
|
};
|
|
507
|
+
/**
|
|
508
|
+
* Async twin of {@link extractGeometryBatch}: pages each product's
|
|
509
|
+
* `#ref` closure before extracting it, so a model opened through
|
|
510
|
+
* {@link IfcApiProxyIfc.createFromStore} (windowed from birth) can
|
|
511
|
+
* be pumped. Safe on a resident source (prefetch is a no-op).
|
|
512
|
+
*
|
|
513
|
+
* @param batchSize Max products to extract this call (min 1).
|
|
514
|
+
* @param meshCallback Receives each newly-extracted product's mesh.
|
|
515
|
+
* @return {Promise<object>} `{extracted, remaining}`.
|
|
516
|
+
*/
|
|
517
|
+
extractGeometryBatchAsync(batchSize: number, meshCallback?: (mesh: FlatMesh) => void): Promise<{
|
|
518
|
+
extracted: number;
|
|
519
|
+
remaining: number;
|
|
520
|
+
}>;
|
|
521
|
+
/**
|
|
522
|
+
* Enumerate the deferred worklists once (file-order products, then
|
|
523
|
+
* rel-aggregates). Shared by the sync and async pumps.
|
|
524
|
+
*/
|
|
525
|
+
private ensureDemandWorklists_;
|
|
526
|
+
/**
|
|
527
|
+
* Synchronous extract of the next batch. Caller must have paged
|
|
528
|
+
* ranges if the source is windowed.
|
|
529
|
+
*
|
|
530
|
+
* @param batchSize Max products this call.
|
|
531
|
+
* @param meshCallback Optional mesh consumer.
|
|
532
|
+
* @return {object} `{extracted, remaining}`.
|
|
533
|
+
*/
|
|
534
|
+
private pumpGeometryBatch_;
|
|
471
535
|
/**
|
|
472
536
|
* Walk the scene and emit every not-yet-captured placed instance as
|
|
473
537
|
* per-entity DELTA FlatMeshes — the incremental core of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,YAAY,MAAM,0BAA0B,CAAA;AACnD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,MAAM,EACP,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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"}
|