@bldrs-ai/conway 1.536.1507 → 1.543.1513
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 +39 -5
- package/compiled/examples/cli-bundled.cjs +197 -22
- package/compiled/examples/cli-step-bundled.cjs +39 -5
- package/compiled/examples/validator-bundled.cjs +39 -5
- package/compiled/src/compat/web-ifc/geometry_shard_coordination.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/geometry_shard_coordination.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/geometry_shard_coordination.test.js +236 -0
- package/compiled/src/compat/web-ifc/ifc_api.d.ts +26 -0
- package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api.js +33 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +6 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_preview_channel.test.js +264 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +116 -5
- 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 +256 -85
- package/compiled/src/compat/web-ifc/store_preview_channel.d.ts +79 -0
- package/compiled/src/compat/web-ifc/store_preview_channel.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/store_preview_channel.js +237 -14
- package/compiled/src/compat/web-ifc/store_preview_channel.test.js +270 -1
- package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts +106 -1
- package/compiled/src/compat/web-ifc/streamed_preview_channel.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/streamed_preview_channel.js +269 -17
- package/compiled/src/core/progress_log.d.ts +75 -2
- package/compiled/src/core/progress_log.d.ts.map +1 -1
- package/compiled/src/core/progress_log.js +59 -2
- package/compiled/src/core/progress_log.test.js +75 -1
- package/compiled/src/ifc/dangling_placement_error.d.ts +35 -0
- package/compiled/src/ifc/dangling_placement_error.d.ts.map +1 -0
- package/compiled/src/ifc/dangling_placement_error.js +38 -0
- package/compiled/src/ifc/geometry_dispatch.d.ts +74 -3
- package/compiled/src/ifc/geometry_dispatch.d.ts.map +1 -1
- package/compiled/src/ifc/geometry_dispatch.js +261 -5
- package/compiled/src/ifc/geometry_dispatch.test.js +147 -1
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts +54 -0
- package/compiled/src/ifc/ifc_geometry_extraction.d.ts.map +1 -1
- package/compiled/src/ifc/ifc_geometry_extraction.js +153 -20
- package/compiled/src/index.d.ts +1 -1
- package/compiled/src/index.d.ts.map +1 -1
- package/compiled/src/index.js +1 -1
- package/compiled/src/step/dangling_reference_error.d.ts +34 -0
- package/compiled/src/step/dangling_reference_error.d.ts.map +1 -0
- package/compiled/src/step/dangling_reference_error.js +36 -0
- package/compiled/src/step/step_entity_base.d.ts +17 -0
- package/compiled/src/step/step_entity_base.d.ts.map +1 -1
- package/compiled/src/step/step_entity_base.js +28 -4
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/* eslint-disable no-magic-numbers */
|
|
2
|
+
// A sharded model that recentres — the second of M3's two shard blockers.
|
|
3
|
+
//
|
|
4
|
+
// COORDINATE_TO_ORIGIN derives its anchor from the FIRST geometry an instance
|
|
5
|
+
// captures, so N workers starting on different products derive N frames and
|
|
6
|
+
// reassemble a model shifted between shards. SetCoordinationFrame makes the
|
|
7
|
+
// frame an input instead, so every worker applies the same one.
|
|
8
|
+
//
|
|
9
|
+
// The fixture is georeferenced (~1.6e6, ~8.2e6 m) AND spans several recentre
|
|
10
|
+
// cells, both on purpose, because a weaker one makes these tests unable to
|
|
11
|
+
// fail. Every other IFC fixture in `data/` sits at the origin, where a
|
|
12
|
+
// derived frame and a wrong one both compose to roughly zero. And a
|
|
13
|
+
// georeferenced model inside ONE cell is barely better: recentring snaps to a
|
|
14
|
+
// 1 km grid (COORDINATION_SNAP_M), so shards whose first products sit 80 m
|
|
15
|
+
// apart quantize to the same frame and agree by accident. Spreading the
|
|
16
|
+
// products across cells is what makes a per-shard anchor observable — which
|
|
17
|
+
// is exactly the condition the original refusal named.
|
|
18
|
+
import * as fs from "fs";
|
|
19
|
+
import { beforeAll, describe, expect, test } from "@jest/globals";
|
|
20
|
+
import { InMemoryStepByteStore } from "../../step/step_buffer_provider.js";
|
|
21
|
+
import { COORDINATION_SNAP_M } from "./coordination_f64.js";
|
|
22
|
+
import { IfcAPI } from "./ifc_api.js";
|
|
23
|
+
const DEFERRED_RECENTRED = {
|
|
24
|
+
COORDINATE_TO_ORIGIN: true,
|
|
25
|
+
USE_FAST_BOOLS: true,
|
|
26
|
+
DEFER_GEOMETRY: true,
|
|
27
|
+
};
|
|
28
|
+
/* A frame no derivation would produce for this model: the Z-up -> Y-up
|
|
29
|
+
* normalize with a kilometre bolted on where the georeference belongs. Used
|
|
30
|
+
* only to show that a supplied frame is not quietly ignored. */
|
|
31
|
+
const ARBITRARY_FRAME = [
|
|
32
|
+
1,
|
|
33
|
+
0,
|
|
34
|
+
0,
|
|
35
|
+
0,
|
|
36
|
+
0,
|
|
37
|
+
0,
|
|
38
|
+
-1,
|
|
39
|
+
0,
|
|
40
|
+
0,
|
|
41
|
+
1,
|
|
42
|
+
0,
|
|
43
|
+
0,
|
|
44
|
+
1000,
|
|
45
|
+
2000,
|
|
46
|
+
3000,
|
|
47
|
+
1,
|
|
48
|
+
];
|
|
49
|
+
let fixture;
|
|
50
|
+
beforeAll(() => {
|
|
51
|
+
fixture = new Uint8Array(fs.readFileSync("data/index_georeferenced_multicell.ifc"));
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* One model, on its own engine instance, opened the way Share opens —
|
|
55
|
+
* store-backed, windowed, deferred, recentred.
|
|
56
|
+
*
|
|
57
|
+
* A fresh IfcAPI per model rather than one shared across the file: reusing an
|
|
58
|
+
* instance for a second deferred model returns garbage native transforms
|
|
59
|
+
* today, which flush to zero and collapse every placement onto the origin
|
|
60
|
+
* (conway#537 — reproduces on main, unrelated to this change). These tests
|
|
61
|
+
* compare placement sets between models, so a shared instance would compare
|
|
62
|
+
* two sets of zeros and pass no matter what this code did.
|
|
63
|
+
*
|
|
64
|
+
* @return {Promise<object>} An initialised API and its open model.
|
|
65
|
+
*/
|
|
66
|
+
async function openIsolated() {
|
|
67
|
+
const api = new IfcAPI();
|
|
68
|
+
await api.Init();
|
|
69
|
+
const modelID = await api.OpenModelStream(new InMemoryStepByteStore(fixture), DEFERRED_RECENTRED);
|
|
70
|
+
return { api, modelID };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Drain a model's pump, keyed by express ID.
|
|
74
|
+
*
|
|
75
|
+
* @param api The model's engine.
|
|
76
|
+
* @param modelID An open deferred model.
|
|
77
|
+
* @return {Promise<Map>} expressID -> each placement's flat transform.
|
|
78
|
+
*/
|
|
79
|
+
async function pumpPlacements(api, modelID) {
|
|
80
|
+
const placements = new Map();
|
|
81
|
+
for (;;) {
|
|
82
|
+
const { extracted, remaining } = await api.ExtractGeometryBatchAsync(modelID, 8, (mesh) => {
|
|
83
|
+
const transforms = placements.get(mesh.expressID) ?? [];
|
|
84
|
+
for (let where = 0; where < mesh.geometries.size(); ++where) {
|
|
85
|
+
transforms.push(Array.from(mesh.geometries.get(where).flatTransformation));
|
|
86
|
+
}
|
|
87
|
+
placements.set(mesh.expressID, transforms);
|
|
88
|
+
});
|
|
89
|
+
if (remaining === 0 && extracted === 0) {
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return placements;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The frame a single unsharded instance derives for the fixture, plus the
|
|
97
|
+
* placements it produces — the reference every case below is measured
|
|
98
|
+
* against, and what a real coordinator would hand its pool.
|
|
99
|
+
*
|
|
100
|
+
* @return {Promise<object>} The derived frame and its placements.
|
|
101
|
+
*/
|
|
102
|
+
async function deriveReference() {
|
|
103
|
+
const { api, modelID } = await openIsolated();
|
|
104
|
+
const placements = await pumpPlacements(api, modelID);
|
|
105
|
+
const frame = api.GetAppliedCoordinationMatrix(modelID);
|
|
106
|
+
// Both fixture properties the tests below depend on, checked rather than
|
|
107
|
+
// trusted — an edit to the fixture that quietly lost either would otherwise
|
|
108
|
+
// leave these tests passing while measuring nothing.
|
|
109
|
+
//
|
|
110
|
+
// It recentres at all:
|
|
111
|
+
expect(Math.abs(frame[12]) + Math.abs(frame[14]))
|
|
112
|
+
.toBeGreaterThan(COORDINATION_SNAP_M);
|
|
113
|
+
// ...and it spans more than one recentre cell, so shards that derived their
|
|
114
|
+
// own anchors would land on DIFFERENT frames rather than agreeing by
|
|
115
|
+
// quantization.
|
|
116
|
+
const spans = [...placements.values()].flat().map((each) => each[12]);
|
|
117
|
+
expect(Math.max(...spans) - Math.min(...spans))
|
|
118
|
+
.toBeGreaterThan(COORDINATION_SNAP_M);
|
|
119
|
+
expect(placements.size).toBeGreaterThan(1);
|
|
120
|
+
api.CloseModel(modelID);
|
|
121
|
+
return { frame, placements };
|
|
122
|
+
}
|
|
123
|
+
describe("SetCoordinationFrame", () => {
|
|
124
|
+
test("is what lets a recentred model be sharded at all", async () => {
|
|
125
|
+
// The refusal that blocked Share specifically: its opens set
|
|
126
|
+
// COORDINATE_TO_ORIGIN, so before this seam existed no Share-shaped open
|
|
127
|
+
// could claim a shard, on any source.
|
|
128
|
+
const { api, modelID } = await openIsolated();
|
|
129
|
+
expect(() => api.SetGeometryShard(modelID, { index: 0, count: 4 }))
|
|
130
|
+
.toThrow(/SetCoordinationFrame/);
|
|
131
|
+
expect(api.SetCoordinationFrame(modelID, ARBITRARY_FRAME)).toBe(true);
|
|
132
|
+
expect(() => api.SetGeometryShard(modelID, { index: 0, count: 4 }))
|
|
133
|
+
.not.toThrow();
|
|
134
|
+
// The pump re-checks the same preconditions from scratch (the settings
|
|
135
|
+
// object belongs to the caller and can change under it), so lifting the
|
|
136
|
+
// claim-time refusal alone would still refuse at the first batch.
|
|
137
|
+
await expect(api.ExtractGeometryBatchAsync(modelID, 4))
|
|
138
|
+
.resolves.toBeDefined();
|
|
139
|
+
api.CloseModel(modelID);
|
|
140
|
+
}, 240000);
|
|
141
|
+
test("applies the frame it is given, exactly", async () => {
|
|
142
|
+
// The coordinator's real workflow: derive once, hand the frame out.
|
|
143
|
+
// Supplying an instance the frame another instance derived must place
|
|
144
|
+
// identically to that instance — that is what makes N workers agree.
|
|
145
|
+
const reference = await deriveReference();
|
|
146
|
+
const supplied = await openIsolated();
|
|
147
|
+
supplied.api.SetCoordinationFrame(supplied.modelID, reference.frame);
|
|
148
|
+
const placements = await pumpPlacements(supplied.api, supplied.modelID);
|
|
149
|
+
expect(supplied.api.GetAppliedCoordinationMatrix(supplied.modelID))
|
|
150
|
+
.toEqual(reference.frame);
|
|
151
|
+
expect(placements.size).toBe(reference.placements.size);
|
|
152
|
+
for (const [expressID, transforms] of reference.placements) {
|
|
153
|
+
expect(placements.get(expressID)).toEqual(transforms);
|
|
154
|
+
}
|
|
155
|
+
supplied.api.CloseModel(supplied.modelID);
|
|
156
|
+
// And a DIFFERENT frame must move the model, or the equality above would
|
|
157
|
+
// hold just as well for an implementation that dropped the frame on the
|
|
158
|
+
// floor and derived its own.
|
|
159
|
+
const arbitrary = await openIsolated();
|
|
160
|
+
arbitrary.api.SetCoordinationFrame(arbitrary.modelID, ARBITRARY_FRAME);
|
|
161
|
+
const moved = await pumpPlacements(arbitrary.api, arbitrary.modelID);
|
|
162
|
+
for (const [expressID, transforms] of reference.placements) {
|
|
163
|
+
expect(moved.get(expressID)).not.toEqual(transforms);
|
|
164
|
+
}
|
|
165
|
+
arbitrary.api.CloseModel(arbitrary.modelID);
|
|
166
|
+
}, 240000);
|
|
167
|
+
test("shards under one frame union to exactly the single instance", async () => {
|
|
168
|
+
// M3's exit condition for this half: recentring ON, sharded, windowed
|
|
169
|
+
// — Share's own open settings — and the union is the whole model with
|
|
170
|
+
// nothing duplicated, dropped, or shifted between shards.
|
|
171
|
+
const reference = await deriveReference();
|
|
172
|
+
const shardCount = 3;
|
|
173
|
+
const union = new Map();
|
|
174
|
+
for (let index = 0; index < shardCount; ++index) {
|
|
175
|
+
const shard = await openIsolated();
|
|
176
|
+
shard.api.SetCoordinationFrame(shard.modelID, reference.frame);
|
|
177
|
+
shard.api.SetGeometryShard(shard.modelID, { index, count: shardCount });
|
|
178
|
+
for (const [expressID, transforms] of await pumpPlacements(shard.api, shard.modelID)) {
|
|
179
|
+
// A key already present means two shards claimed one product —
|
|
180
|
+
// the duplication half of a bad partition, which comparing
|
|
181
|
+
// merged sets at the end would hide.
|
|
182
|
+
expect(union.has(expressID)).toBe(false);
|
|
183
|
+
union.set(expressID, transforms);
|
|
184
|
+
}
|
|
185
|
+
shard.api.CloseModel(shard.modelID);
|
|
186
|
+
}
|
|
187
|
+
expect(union.size).toBe(reference.placements.size);
|
|
188
|
+
for (const [expressID, transforms] of reference.placements) {
|
|
189
|
+
expect(union.get(expressID)).toEqual(transforms);
|
|
190
|
+
}
|
|
191
|
+
}, 240000);
|
|
192
|
+
test("can be cleared, handing the model back to deriving", async () => {
|
|
193
|
+
// The undefined-matrix arm, which is the coordinator's way out: a pool
|
|
194
|
+
// that decides not to shard after all should not be stuck in a frame it
|
|
195
|
+
// supplied for shards that will never exist.
|
|
196
|
+
const { api, modelID } = await openIsolated();
|
|
197
|
+
api.SetCoordinationFrame(modelID, ARBITRARY_FRAME);
|
|
198
|
+
api.SetCoordinationFrame(modelID, void 0);
|
|
199
|
+
// The claim refusal is back, so the supplied-frame flag really cleared
|
|
200
|
+
// rather than merely the matrix.
|
|
201
|
+
expect(() => api.SetGeometryShard(modelID, { index: 0, count: 2 }))
|
|
202
|
+
.toThrow(/SetCoordinationFrame/);
|
|
203
|
+
await pumpPlacements(api, modelID);
|
|
204
|
+
// ...and the model derived its own frame, so the adopted one cleared too.
|
|
205
|
+
const derived = api.GetAppliedCoordinationMatrix(modelID);
|
|
206
|
+
expect(derived).not.toEqual(ARBITRARY_FRAME);
|
|
207
|
+
expect(Math.abs(derived[12]) + Math.abs(derived[14]))
|
|
208
|
+
.toBeGreaterThan(COORDINATION_SNAP_M);
|
|
209
|
+
api.CloseModel(modelID);
|
|
210
|
+
}, 240000);
|
|
211
|
+
test("refuses a frame it cannot honour", async () => {
|
|
212
|
+
const { api, modelID } = await openIsolated();
|
|
213
|
+
expect(() => api.SetCoordinationFrame(modelID, [1, 2, 3]))
|
|
214
|
+
.toThrow(/column-major mat4/);
|
|
215
|
+
expect(() => api.SetCoordinationFrame(modelID, [...ARBITRARY_FRAME.slice(0, 15), NaN]))
|
|
216
|
+
.toThrow(/column-major mat4/);
|
|
217
|
+
api.SetCoordinationFrame(modelID, ARBITRARY_FRAME);
|
|
218
|
+
await api.ExtractGeometryBatchAsync(modelID, 4);
|
|
219
|
+
// Too late: placements already emitted carry the frame in force when they
|
|
220
|
+
// were captured and are never re-placed, so a second frame would leave
|
|
221
|
+
// one model in two coordinate systems.
|
|
222
|
+
expect(() => api.SetCoordinationFrame(modelID, ARBITRARY_FRAME))
|
|
223
|
+
.toThrow(/before the first ExtractGeometryBatch/);
|
|
224
|
+
api.CloseModel(modelID);
|
|
225
|
+
}, 240000);
|
|
226
|
+
test("refuses on a classic open, which has already placed everything", async () => {
|
|
227
|
+
const api = new IfcAPI();
|
|
228
|
+
await api.Init();
|
|
229
|
+
const modelID = await api.OpenModelStream(new InMemoryStepByteStore(fixture), { COORDINATE_TO_ORIGIN: true, USE_FAST_BOOLS: true });
|
|
230
|
+
// Same shape as SetGeometryShard's DEFER_GEOMETRY refusal: a frame
|
|
231
|
+
// supplied now would be accepted and then ignored.
|
|
232
|
+
expect(() => api.SetCoordinationFrame(modelID, ARBITRARY_FRAME))
|
|
233
|
+
.toThrow(/DEFER_GEOMETRY/);
|
|
234
|
+
api.CloseModel(modelID);
|
|
235
|
+
}, 240000);
|
|
236
|
+
});
|
|
@@ -482,6 +482,10 @@ export declare class IfcAPI {
|
|
|
482
482
|
* first ExtractGeometryBatch — after that the worklists exist and narrowing
|
|
483
483
|
* them would drop products already reported as pending, so it throws.
|
|
484
484
|
*
|
|
485
|
+
* **Order matters against {@link SetCoordinationFrame}.** A model opened
|
|
486
|
+
* with COORDINATE_TO_ORIGIN is refused here unless a frame has already
|
|
487
|
+
* been supplied, so supply the frame first. The refusal names it.
|
|
488
|
+
*
|
|
485
489
|
* @param modelID handle from a DEFER_GEOMETRY open
|
|
486
490
|
* @param shard `{index, count}`, or omitted for the whole model
|
|
487
491
|
* @return {boolean} false for unknown models and for passthroughs with no
|
|
@@ -491,6 +495,28 @@ export declare class IfcAPI {
|
|
|
491
495
|
index: number;
|
|
492
496
|
count: number;
|
|
493
497
|
}): boolean;
|
|
498
|
+
/**
|
|
499
|
+
* Conway extension (M3): supply the recentre frame a deferred model
|
|
500
|
+
* applies, instead of letting it derive one from its own first geometry.
|
|
501
|
+
*
|
|
502
|
+
* This is what makes COORDINATE_TO_ORIGIN and {@link SetGeometryShard}
|
|
503
|
+
* combinable. A derived frame is anchored on whichever product the
|
|
504
|
+
* instance extracts first, so N workers derive N frames and a model
|
|
505
|
+
* spanning more than one recentre cell reassembles with its shards offset
|
|
506
|
+
* by whole cells — individually plausible placements, a wrong picture.
|
|
507
|
+
* One frame handed to every worker removes the disagreement at the source.
|
|
508
|
+
*
|
|
509
|
+
* Typical use: the coordinator opens once (its parse-time preview channel
|
|
510
|
+
* derives a frame), reads it back with {@link GetAppliedCoordinationMatrix}, and
|
|
511
|
+
* passes it to every worker before their first batch.
|
|
512
|
+
*
|
|
513
|
+
* @param modelID handle from a DEFER_GEOMETRY open
|
|
514
|
+
* @param matrix column-major mat4 of 16 finite numbers, or omitted to drop
|
|
515
|
+
* a previously supplied frame
|
|
516
|
+
* @return {boolean} false for unknown models and for passthroughs with no
|
|
517
|
+
* deferred pump (AP214/STEP), which have no frame to supply
|
|
518
|
+
*/
|
|
519
|
+
SetCoordinationFrame(modelID: number, matrix?: number[]): boolean;
|
|
494
520
|
ExtractGeometryBatch(modelID: number, batchSize: number, meshCallback?: (mesh: FlatMesh) => void): {
|
|
495
521
|
extracted: number;
|
|
496
522
|
remaining: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ifc_api.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api.ts"],"names":[],"mappings":"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"}
|
|
@@ -669,6 +669,10 @@ export class IfcAPI {
|
|
|
669
669
|
* first ExtractGeometryBatch — after that the worklists exist and narrowing
|
|
670
670
|
* them would drop products already reported as pending, so it throws.
|
|
671
671
|
*
|
|
672
|
+
* **Order matters against {@link SetCoordinationFrame}.** A model opened
|
|
673
|
+
* with COORDINATE_TO_ORIGIN is refused here unless a frame has already
|
|
674
|
+
* been supplied, so supply the frame first. The refusal names it.
|
|
675
|
+
*
|
|
672
676
|
* @param modelID handle from a DEFER_GEOMETRY open
|
|
673
677
|
* @param shard `{index, count}`, or omitted for the whole model
|
|
674
678
|
* @return {boolean} false for unknown models and for passthroughs with no
|
|
@@ -682,6 +686,35 @@ export class IfcAPI {
|
|
|
682
686
|
result.setGeometryShard(shard);
|
|
683
687
|
return true;
|
|
684
688
|
}
|
|
689
|
+
/**
|
|
690
|
+
* Conway extension (M3): supply the recentre frame a deferred model
|
|
691
|
+
* applies, instead of letting it derive one from its own first geometry.
|
|
692
|
+
*
|
|
693
|
+
* This is what makes COORDINATE_TO_ORIGIN and {@link SetGeometryShard}
|
|
694
|
+
* combinable. A derived frame is anchored on whichever product the
|
|
695
|
+
* instance extracts first, so N workers derive N frames and a model
|
|
696
|
+
* spanning more than one recentre cell reassembles with its shards offset
|
|
697
|
+
* by whole cells — individually plausible placements, a wrong picture.
|
|
698
|
+
* One frame handed to every worker removes the disagreement at the source.
|
|
699
|
+
*
|
|
700
|
+
* Typical use: the coordinator opens once (its parse-time preview channel
|
|
701
|
+
* derives a frame), reads it back with {@link GetAppliedCoordinationMatrix}, and
|
|
702
|
+
* passes it to every worker before their first batch.
|
|
703
|
+
*
|
|
704
|
+
* @param modelID handle from a DEFER_GEOMETRY open
|
|
705
|
+
* @param matrix column-major mat4 of 16 finite numbers, or omitted to drop
|
|
706
|
+
* a previously supplied frame
|
|
707
|
+
* @return {boolean} false for unknown models and for passthroughs with no
|
|
708
|
+
* deferred pump (AP214/STEP), which have no frame to supply
|
|
709
|
+
*/
|
|
710
|
+
SetCoordinationFrame(modelID, matrix) {
|
|
711
|
+
const result = this.models.get(modelID);
|
|
712
|
+
if (result?.setCoordinationFrame === void 0) {
|
|
713
|
+
return false;
|
|
714
|
+
}
|
|
715
|
+
result.setCoordinationFrame(matrix);
|
|
716
|
+
return true;
|
|
717
|
+
}
|
|
685
718
|
ExtractGeometryBatch(modelID, batchSize, meshCallback) {
|
|
686
719
|
const result = this.models.get(modelID);
|
|
687
720
|
if (result?.extractGeometryBatch === void 0) {
|
|
@@ -25,6 +25,12 @@ export interface IfcApiModelPassthrough {
|
|
|
25
25
|
index: number;
|
|
26
26
|
count: number;
|
|
27
27
|
}): void;
|
|
28
|
+
/**
|
|
29
|
+
* Supply the recentre frame instead of deriving one (conway extension,
|
|
30
|
+
* M3) — see IfcAPI.SetCoordinationFrame. Optional: passthroughs with no
|
|
31
|
+
* deferred pump (AP214/STEP) have no frame to supply.
|
|
32
|
+
*/
|
|
33
|
+
setCoordinationFrame?(matrix?: number[]): void;
|
|
28
34
|
/**
|
|
29
35
|
* Set the resident-geometry budget in bytes (conway extension, M3) —
|
|
30
36
|
* see IfcAPI.SetGeometryBudget. Optional so non-IFC passthroughs, whose
|
|
@@ -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":"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"}
|
|
1
|
+
{"version":3,"file":"ifc_api_model_passthrough.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_model_passthrough.ts"],"names":[],"mappings":"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"}
|