@geometra/renderer-three 1.3.1 → 1.5.0
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/__tests__/scene3d-manager.test.d.ts +2 -0
- package/dist/__tests__/scene3d-manager.test.d.ts.map +1 -0
- package/dist/__tests__/scene3d-manager.test.js +80 -0
- package/dist/__tests__/scene3d-manager.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/page-host.d.ts +46 -0
- package/dist/page-host.d.ts.map +1 -0
- package/dist/page-host.js +107 -0
- package/dist/page-host.js.map +1 -0
- package/dist/scene3d-manager.d.ts +4 -0
- package/dist/scene3d-manager.d.ts.map +1 -1
- package/dist/scene3d-manager.js +61 -6
- package/dist/scene3d-manager.js.map +1 -1
- package/dist/split-host.d.ts +18 -1
- package/dist/split-host.d.ts.map +1 -1
- package/dist/split-host.js +42 -1
- package/dist/split-host.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene3d-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/scene3d-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { group, scene3d, sphere } from '@geometra/core';
|
|
4
|
+
import { Scene3dManager } from '../scene3d-manager.js';
|
|
5
|
+
function sceneContentRoot(scene) {
|
|
6
|
+
const g = scene.children[0];
|
|
7
|
+
if (!g || !(g instanceof THREE.Group)) {
|
|
8
|
+
throw new Error('expected Scene3dManager scene group as first scene child');
|
|
9
|
+
}
|
|
10
|
+
return g;
|
|
11
|
+
}
|
|
12
|
+
describe('Scene3dManager', () => {
|
|
13
|
+
it('updates nested sphere props when wrapped in a group (in-place)', () => {
|
|
14
|
+
const scene = new THREE.Scene();
|
|
15
|
+
const camera = new THREE.PerspectiveCamera();
|
|
16
|
+
const mgr = new Scene3dManager(scene, camera);
|
|
17
|
+
mgr.sync(scene3d({
|
|
18
|
+
width: 100,
|
|
19
|
+
height: 80,
|
|
20
|
+
objects: [group({ objects: [sphere({ color: 0xff0000 })] })],
|
|
21
|
+
}));
|
|
22
|
+
const top = sceneContentRoot(scene).children[0];
|
|
23
|
+
const mesh = top.children[0];
|
|
24
|
+
expect(mesh.material.color.getHex()).toBe(0xff0000);
|
|
25
|
+
mgr.sync(scene3d({
|
|
26
|
+
width: 100,
|
|
27
|
+
height: 80,
|
|
28
|
+
objects: [group({ objects: [sphere({ color: 0x00ff00 })] })],
|
|
29
|
+
}));
|
|
30
|
+
expect(mesh.material.color.getHex()).toBe(0x00ff00);
|
|
31
|
+
expect(top.children[0]).toBe(mesh);
|
|
32
|
+
});
|
|
33
|
+
it('rebuilds group children when nested arity changes', () => {
|
|
34
|
+
const scene = new THREE.Scene();
|
|
35
|
+
const camera = new THREE.PerspectiveCamera();
|
|
36
|
+
const mgr = new Scene3dManager(scene, camera);
|
|
37
|
+
mgr.sync(scene3d({
|
|
38
|
+
width: 100,
|
|
39
|
+
height: 80,
|
|
40
|
+
objects: [group({ objects: [sphere({ color: 0xff0000 })] })],
|
|
41
|
+
}));
|
|
42
|
+
const top = sceneContentRoot(scene).children[0];
|
|
43
|
+
expect(top.children.length).toBe(1);
|
|
44
|
+
mgr.sync(scene3d({
|
|
45
|
+
width: 100,
|
|
46
|
+
height: 80,
|
|
47
|
+
objects: [group({ objects: [sphere({ color: 0xff0000 }), sphere({ color: 0x0000ff })] })],
|
|
48
|
+
}));
|
|
49
|
+
expect(top.children.length).toBe(2);
|
|
50
|
+
});
|
|
51
|
+
it('updates a sphere inside nested groups', () => {
|
|
52
|
+
const scene = new THREE.Scene();
|
|
53
|
+
const camera = new THREE.PerspectiveCamera();
|
|
54
|
+
const mgr = new Scene3dManager(scene, camera);
|
|
55
|
+
mgr.sync(scene3d({
|
|
56
|
+
width: 100,
|
|
57
|
+
height: 80,
|
|
58
|
+
objects: [
|
|
59
|
+
group({
|
|
60
|
+
objects: [group({ objects: [sphere({ color: 0xff0000 })] })],
|
|
61
|
+
}),
|
|
62
|
+
],
|
|
63
|
+
}));
|
|
64
|
+
const outer = sceneContentRoot(scene).children[0];
|
|
65
|
+
const inner = outer.children[0];
|
|
66
|
+
const mesh = inner.children[0];
|
|
67
|
+
mgr.sync(scene3d({
|
|
68
|
+
width: 100,
|
|
69
|
+
height: 80,
|
|
70
|
+
objects: [
|
|
71
|
+
group({
|
|
72
|
+
objects: [group({ objects: [sphere({ color: 0x0000ff })] })],
|
|
73
|
+
}),
|
|
74
|
+
],
|
|
75
|
+
}));
|
|
76
|
+
expect(mesh.material.color.getHex()).toBe(0x0000ff);
|
|
77
|
+
expect(inner.children[0]).toBe(mesh);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=scene3d-manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene3d-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/scene3d-manager.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export { GEOMETRA_HYBRID_HOST_KINDS, coerceGeometraHybridHostKind, isGeometraHyb
|
|
|
39
39
|
* The runtime value is **`geom.tracker.snapshot`**; `npm run release:gate` asserts it still matches
|
|
40
40
|
* the installed `@geometra/client` package.
|
|
41
41
|
*/
|
|
42
|
+
export { createThreeGeometraPageHost, type GeometraPageSection, type ThreeGeometraPageHostOptions, type ThreeGeometraPageHostHandle, } from './page-host.js';
|
|
42
43
|
export { GEOM_DATA_CHANNEL_TRACKER_SNAPSHOT } from '@geometra/client';
|
|
43
44
|
export { Scene3dManager } from './scene3d-manager.js';
|
|
44
45
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,KAAK,sCAAsC,EAC3C,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,GACrC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,mDAAmD,EACnD,oCAAoC,EACpC,mCAAmC,EACnC,6BAA6B,EAC7B,oCAAoC,EACpC,4CAA4C,EAC5C,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACtC,mCAAmC,EACnC,2CAA2C,EAC3C,KAAK,iCAAiC,GACvC,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oCAAoC,EACpC,kCAAkC,EAClC,qCAAqC,EACrC,8BAA8B,EAC9B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,gCAAgC,EAChC,wCAAwC,EACxC,8CAA8C,EAC9C,mCAAmC,EACnC,gCAAgC,EAChC,uCAAuC,EACvC,gDAAgD,EAChD,wCAAwC,EACxC,gCAAgC,EAChC,sCAAsC,EACtC,4CAA4C,EAC5C,0CAA0C,EAC1C,2CAA2C,EAC3C,mDAAmD,EACnD,8DAA8D,EAC9D,2CAA2C,EAC3C,8DAA8D,EAC9D,gEAAgE,EAChE,mDAAmD,EACnD,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,8BAA8B,EACnC,KAAK,iCAAiC,EACtC,KAAK,4CAA4C,GAClD,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,GACtC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,6CAA6C,EAC7C,uCAAuC,EACvC,+CAA+C,EAC/C,6BAA6B,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,0CAA0C,EAC/C,KAAK,4CAA4C,GAClD,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;GAQG;AACH,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,KAAK,sCAAsC,EAC3C,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,GACrC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,mDAAmD,EACnD,oCAAoC,EACpC,mCAAmC,EACnC,6BAA6B,EAC7B,oCAAoC,EACpC,4CAA4C,EAC5C,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACtC,mCAAmC,EACnC,2CAA2C,EAC3C,KAAK,iCAAiC,GACvC,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oCAAoC,EACpC,kCAAkC,EAClC,qCAAqC,EACrC,8BAA8B,EAC9B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,gCAAgC,EAChC,wCAAwC,EACxC,8CAA8C,EAC9C,mCAAmC,EACnC,gCAAgC,EAChC,uCAAuC,EACvC,gDAAgD,EAChD,wCAAwC,EACxC,gCAAgC,EAChC,sCAAsC,EACtC,4CAA4C,EAC5C,0CAA0C,EAC1C,2CAA2C,EAC3C,mDAAmD,EACnD,8DAA8D,EAC9D,2CAA2C,EAC3C,8DAA8D,EAC9D,gEAAgE,EAChE,mDAAmD,EACnD,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,8BAA8B,EACnC,KAAK,iCAAiC,EACtC,KAAK,4CAA4C,GAClD,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,GACtC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,6CAA6C,EAC7C,uCAAuC,EACvC,+CAA+C,EAC/C,6BAA6B,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,0CAA0C,EAC/C,KAAK,4CAA4C,GAClD,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;GAQG;AACH,OAAO,EACL,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,GACjC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,7 @@ export { GEOMETRA_HYBRID_HOST_KINDS, coerceGeometraHybridHostKind, isGeometraHyb
|
|
|
38
38
|
* The runtime value is **`geom.tracker.snapshot`**; `npm run release:gate` asserts it still matches
|
|
39
39
|
* the installed `@geometra/client` package.
|
|
40
40
|
*/
|
|
41
|
+
export { createThreeGeometraPageHost, } from './page-host.js';
|
|
41
42
|
export { GEOM_DATA_CHANNEL_TRACKER_SNAPSHOT } from '@geometra/client';
|
|
42
43
|
export { Scene3dManager } from './scene3d-manager.js';
|
|
43
44
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,GAMpC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,GAGtC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,mDAAmD,EACnD,oCAAoC,EACpC,mCAAmC,EACnC,6BAA6B,EAC7B,oCAAoC,EACpC,4CAA4C,EAC5C,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACtC,mCAAmC,EACnC,2CAA2C,GAE5C,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oCAAoC,EACpC,kCAAkC,EAClC,qCAAqC,EACrC,8BAA8B,EAC9B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,gCAAgC,EAChC,wCAAwC,EACxC,8CAA8C,EAC9C,mCAAmC,EACnC,gCAAgC,EAChC,uCAAuC,EACvC,gDAAgD,EAChD,wCAAwC,EACxC,gCAAgC,EAChC,sCAAsC,EACtC,4CAA4C,EAC5C,0CAA0C,EAC1C,2CAA2C,EAC3C,mDAAmD,EACnD,8DAA8D,EAC9D,2CAA2C,EAC3C,8DAA8D,EAC9D,gEAAgE,EAChE,mDAAmD,GAOpD,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,+BAA+B,GAGhC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,6CAA6C,EAC7C,uCAAuC,EACvC,+CAA+C,EAC/C,6BAA6B,GAU9B,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;GAQG;AACH,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,GAMpC,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,GAGtC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,mDAAmD,EACnD,oCAAoC,EACpC,mCAAmC,EACnC,6BAA6B,EAC7B,oCAAoC,EACpC,4CAA4C,EAC5C,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACtC,mCAAmC,EACnC,2CAA2C,GAE5C,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oCAAoC,EACpC,kCAAkC,EAClC,qCAAqC,EACrC,8BAA8B,EAC9B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,gCAAgC,EAChC,wCAAwC,EACxC,8CAA8C,EAC9C,mCAAmC,EACnC,gCAAgC,EAChC,uCAAuC,EACvC,gDAAgD,EAChD,wCAAwC,EACxC,gCAAgC,EAChC,sCAAsC,EACtC,4CAA4C,EAC5C,0CAA0C,EAC1C,2CAA2C,EAC3C,mDAAmD,EACnD,8DAA8D,EAC9D,2CAA2C,EAC3C,8DAA8D,EAC9D,gEAAgE,EAChE,mDAAmD,GAOpD,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,+BAA+B,GAGhC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,uCAAuC,EACvC,qCAAqC,EACrC,6CAA6C,EAC7C,uCAAuC,EACvC,+CAA+C,EAC/C,6BAA6B,GAU9B,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;GAQG;AACH,OAAO,EACL,2BAA2B,GAI5B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type BrowserCanvasClientHandle, type BrowserCanvasClientOptions } from '@geometra/renderer-canvas';
|
|
2
|
+
import { type ThreeGeometraSplitHostHandle, type ThreeGeometraSplitHostOptions } from './split-host.js';
|
|
3
|
+
/** A Geometra canvas section rendered as a full-width block in the page flow. */
|
|
4
|
+
export interface GeometraPageSection {
|
|
5
|
+
/** Unique id for this section. */
|
|
6
|
+
id: string;
|
|
7
|
+
/** WebSocket URL for the Geometra server view. */
|
|
8
|
+
url: string;
|
|
9
|
+
/**
|
|
10
|
+
* Height in CSS pixels, or `'auto'` to size from server-computed layout.
|
|
11
|
+
* When `'auto'`, the section resizes to match the root `layout.height` from
|
|
12
|
+
* the first server frame (requires `height: 'auto'` on the corresponding
|
|
13
|
+
* `createGeometraServer`).
|
|
14
|
+
*/
|
|
15
|
+
height: number | 'auto';
|
|
16
|
+
/** Enable binary framing for the WebSocket. */
|
|
17
|
+
binaryFraming?: boolean;
|
|
18
|
+
/** Renderer options (background color, etc.). */
|
|
19
|
+
rendererOptions?: Omit<BrowserCanvasClientOptions['rendererOptions'], 'canvas'>;
|
|
20
|
+
}
|
|
21
|
+
export interface ThreeGeometraPageHostOptions extends ThreeGeometraSplitHostOptions {
|
|
22
|
+
/** Optional header section rendered above the split host. */
|
|
23
|
+
headerSection?: GeometraPageSection;
|
|
24
|
+
/** Additional Geometra sections rendered below the split host in document flow. */
|
|
25
|
+
belowFoldSections?: GeometraPageSection[];
|
|
26
|
+
}
|
|
27
|
+
export interface ThreeGeometraPageHostHandle extends ThreeGeometraSplitHostHandle {
|
|
28
|
+
/** Header Geometra client (present when `headerSection` was provided). */
|
|
29
|
+
header?: BrowserCanvasClientHandle;
|
|
30
|
+
/** Below-fold Geometra clients keyed by section id. */
|
|
31
|
+
belowFold: Map<string, BrowserCanvasClientHandle>;
|
|
32
|
+
/** The outer page container (scrollable). */
|
|
33
|
+
pageRoot: HTMLDivElement;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Page-level host that composes multiple Geometra canvas sections into a scrollable page.
|
|
37
|
+
*
|
|
38
|
+
* The top section is a viewport-height split host (Three.js + Geometra console panel).
|
|
39
|
+
* Optional header and below-fold sections are standard Geometra canvas clients rendered
|
|
40
|
+
* at full page width in normal document flow, so the browser handles scrolling.
|
|
41
|
+
*
|
|
42
|
+
* Each section connects to its own WebSocket endpoint. The server exposes multiple
|
|
43
|
+
* `createGeometraServer` instances on different `wsPath` values.
|
|
44
|
+
*/
|
|
45
|
+
export declare function createThreeGeometraPageHost(options: ThreeGeometraPageHostOptions): ThreeGeometraPageHostHandle;
|
|
46
|
+
//# sourceMappingURL=page-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-host.d.ts","sourceRoot":"","sources":["../src/page-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAA;AAExB,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX;;;;;OAKG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,eAAe,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAA;CAChF;AAED,MAAM,WAAW,4BAA6B,SAAQ,6BAA6B;IACjF,6DAA6D;IAC7D,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,2BAA4B,SAAQ,4BAA4B;IAC/E,0EAA0E;IAC1E,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,uDAAuD;IACvD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;IACjD,6CAA6C;IAC7C,QAAQ,EAAE,cAAc,CAAA;CACzB;AAoDD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAiE7B"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { createBrowserCanvasClient, } from '@geometra/renderer-canvas';
|
|
2
|
+
import { createThreeGeometraSplitHost, } from './split-host.js';
|
|
3
|
+
function createSectionCanvas(doc, section, win) {
|
|
4
|
+
const isAutoHeight = section.height === 'auto';
|
|
5
|
+
const wrapper = doc.createElement('div');
|
|
6
|
+
wrapper.style.width = '100%';
|
|
7
|
+
wrapper.style.height = isAutoHeight ? '0' : `${section.height}px`;
|
|
8
|
+
wrapper.style.minWidth = '0';
|
|
9
|
+
wrapper.dataset.geometraSection = section.id;
|
|
10
|
+
const canvas = doc.createElement('canvas');
|
|
11
|
+
canvas.style.display = 'block';
|
|
12
|
+
canvas.style.width = '100%';
|
|
13
|
+
canvas.style.height = '100%';
|
|
14
|
+
wrapper.appendChild(canvas);
|
|
15
|
+
const handle = createBrowserCanvasClient({
|
|
16
|
+
url: section.url,
|
|
17
|
+
binaryFraming: section.binaryFraming,
|
|
18
|
+
canvas,
|
|
19
|
+
window: win,
|
|
20
|
+
rendererOptions: {
|
|
21
|
+
background: '#0b0e14',
|
|
22
|
+
...section.rendererOptions,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
// Auto-height: poll the client's layout for the computed root height
|
|
26
|
+
if (isAutoHeight) {
|
|
27
|
+
let lastHeight = 0;
|
|
28
|
+
const checkHeight = () => {
|
|
29
|
+
const layout = handle.client.layout;
|
|
30
|
+
if (layout && layout.height > 0 && layout.height !== lastHeight) {
|
|
31
|
+
lastHeight = layout.height;
|
|
32
|
+
wrapper.style.height = `${layout.height}px`;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
// Check on each animation frame until we get a height, then periodically
|
|
36
|
+
const poll = () => {
|
|
37
|
+
checkHeight();
|
|
38
|
+
win.requestAnimationFrame(poll);
|
|
39
|
+
};
|
|
40
|
+
win.requestAnimationFrame(poll);
|
|
41
|
+
}
|
|
42
|
+
return { wrapper, handle };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Page-level host that composes multiple Geometra canvas sections into a scrollable page.
|
|
46
|
+
*
|
|
47
|
+
* The top section is a viewport-height split host (Three.js + Geometra console panel).
|
|
48
|
+
* Optional header and below-fold sections are standard Geometra canvas clients rendered
|
|
49
|
+
* at full page width in normal document flow, so the browser handles scrolling.
|
|
50
|
+
*
|
|
51
|
+
* Each section connects to its own WebSocket endpoint. The server exposes multiple
|
|
52
|
+
* `createGeometraServer` instances on different `wsPath` values.
|
|
53
|
+
*/
|
|
54
|
+
export function createThreeGeometraPageHost(options) {
|
|
55
|
+
const { container, headerSection, belowFoldSections = [], ...splitOptions } = options;
|
|
56
|
+
const doc = container.ownerDocument;
|
|
57
|
+
const win = options.window ?? doc.defaultView;
|
|
58
|
+
if (!win) {
|
|
59
|
+
throw new Error('createThreeGeometraPageHost requires a browser window');
|
|
60
|
+
}
|
|
61
|
+
// Outer page container (normal document flow, scrollable)
|
|
62
|
+
const pageRoot = doc.createElement('div');
|
|
63
|
+
pageRoot.style.width = '100%';
|
|
64
|
+
container.appendChild(pageRoot);
|
|
65
|
+
// Header section (optional)
|
|
66
|
+
let headerHandle;
|
|
67
|
+
if (headerSection) {
|
|
68
|
+
const { wrapper, handle } = createSectionCanvas(doc, headerSection, win);
|
|
69
|
+
pageRoot.appendChild(wrapper);
|
|
70
|
+
headerHandle = handle;
|
|
71
|
+
}
|
|
72
|
+
// Split host section (viewport height)
|
|
73
|
+
const splitMount = doc.createElement('div');
|
|
74
|
+
splitMount.style.width = '100%';
|
|
75
|
+
splitMount.style.height = 'calc(100vh - ' + (headerSection ? headerSection.height : 0) + 'px)';
|
|
76
|
+
splitMount.style.clipPath = 'inset(0)';
|
|
77
|
+
pageRoot.appendChild(splitMount);
|
|
78
|
+
const splitHost = createThreeGeometraSplitHost({
|
|
79
|
+
...splitOptions,
|
|
80
|
+
container: splitMount,
|
|
81
|
+
});
|
|
82
|
+
// Below-fold sections
|
|
83
|
+
const belowFoldMap = new Map();
|
|
84
|
+
for (const section of belowFoldSections) {
|
|
85
|
+
const { wrapper, handle } = createSectionCanvas(doc, section, win);
|
|
86
|
+
pageRoot.appendChild(wrapper);
|
|
87
|
+
belowFoldMap.set(section.id, handle);
|
|
88
|
+
}
|
|
89
|
+
const originalDestroy = splitHost.destroy;
|
|
90
|
+
const destroy = () => {
|
|
91
|
+
headerHandle?.destroy();
|
|
92
|
+
for (const handle of belowFoldMap.values()) {
|
|
93
|
+
handle.destroy();
|
|
94
|
+
}
|
|
95
|
+
belowFoldMap.clear();
|
|
96
|
+
originalDestroy();
|
|
97
|
+
pageRoot.remove();
|
|
98
|
+
};
|
|
99
|
+
return {
|
|
100
|
+
...splitHost,
|
|
101
|
+
header: headerHandle,
|
|
102
|
+
belowFold: belowFoldMap,
|
|
103
|
+
pageRoot,
|
|
104
|
+
destroy,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=page-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-host.js","sourceRoot":"","sources":["../src/page-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,14 @@ export declare class Scene3dManager {
|
|
|
12
12
|
private sceneGroup;
|
|
13
13
|
private orbitControls;
|
|
14
14
|
private orbitControlsModule;
|
|
15
|
+
private cameraInitialized;
|
|
16
|
+
private lastCameraTarget;
|
|
15
17
|
constructor(scene: THREE.Scene, camera: THREE.PerspectiveCamera);
|
|
16
18
|
/**
|
|
17
19
|
* Reconcile the live Three.js scene with the given element's props.
|
|
18
20
|
* Creates, updates, or removes objects as needed.
|
|
21
|
+
* Camera position/target are applied on the first call; subsequent calls update
|
|
22
|
+
* orbit controls target but leave camera position to user interaction.
|
|
19
23
|
*/
|
|
20
24
|
sync(element: Scene3dElement, canvas?: HTMLCanvasElement): void;
|
|
21
25
|
/** Update orbit controls damping each frame. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene3d-manager.d.ts","sourceRoot":"","sources":["../src/scene3d-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EASV,cAAc,EAEf,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"scene3d-manager.d.ts","sourceRoot":"","sources":["../src/scene3d-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EASV,cAAc,EAEf,MAAM,gBAAgB,CAAA;AAwBvB;;;;GAIG;AACH,qBAAa,cAAc;IASvB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;IAC3B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB;IAT1C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,aAAa,CAAoF;IACzG,OAAO,CAAC,mBAAmB,CAA6E;IACxG,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,gBAAgB,CAAsC;gBAGnD,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,iBAAiB;IAK1C;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAqD/D,gDAAgD;IAChD,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,YAAY;IAQpB,OAAO,IAAI,IAAI;CAQhB"}
|
package/dist/scene3d-manager.js
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
+
/** True when `a` and `b` have the same discriminated `type` and matching nested `group` arity/shape. */
|
|
3
|
+
function sameObjectStructure(a, b) {
|
|
4
|
+
if (a.type !== b.type)
|
|
5
|
+
return false;
|
|
6
|
+
if (a.type !== 'group')
|
|
7
|
+
return true;
|
|
8
|
+
const ga = a;
|
|
9
|
+
const gb = b;
|
|
10
|
+
if (ga.objects.length !== gb.objects.length)
|
|
11
|
+
return false;
|
|
12
|
+
for (let i = 0; i < ga.objects.length; i++) {
|
|
13
|
+
if (!sameObjectStructure(ga.objects[i], gb.objects[i]))
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
2
18
|
/**
|
|
3
19
|
* Manages a Three.js scene graph from declarative {@link Scene3dObject} descriptors streamed
|
|
4
20
|
* from a Geometra server. Call {@link Scene3dManager.sync} each frame (or when the tree updates)
|
|
@@ -11,6 +27,8 @@ export class Scene3dManager {
|
|
|
11
27
|
sceneGroup = new THREE.Group();
|
|
12
28
|
orbitControls = null;
|
|
13
29
|
orbitControlsModule = null;
|
|
30
|
+
cameraInitialized = false;
|
|
31
|
+
lastCameraTarget;
|
|
14
32
|
constructor(scene, camera) {
|
|
15
33
|
this.scene = scene;
|
|
16
34
|
this.camera = camera;
|
|
@@ -19,6 +37,8 @@ export class Scene3dManager {
|
|
|
19
37
|
/**
|
|
20
38
|
* Reconcile the live Three.js scene with the given element's props.
|
|
21
39
|
* Creates, updates, or removes objects as needed.
|
|
40
|
+
* Camera position/target are applied on the first call; subsequent calls update
|
|
41
|
+
* orbit controls target but leave camera position to user interaction.
|
|
22
42
|
*/
|
|
23
43
|
sync(element, canvas) {
|
|
24
44
|
const { objects, background, fov, near, far, cameraPosition, cameraTarget, orbitControls } = element.props;
|
|
@@ -26,7 +46,7 @@ export class Scene3dManager {
|
|
|
26
46
|
if (background !== undefined) {
|
|
27
47
|
this.scene.background = new THREE.Color(background);
|
|
28
48
|
}
|
|
29
|
-
// Update camera
|
|
49
|
+
// Update camera projection (always safe to update)
|
|
30
50
|
if (fov !== undefined && fov > 0 && fov < 180) {
|
|
31
51
|
this.camera.fov = fov;
|
|
32
52
|
}
|
|
@@ -36,15 +56,27 @@ export class Scene3dManager {
|
|
|
36
56
|
if (far !== undefined && far > this.camera.near) {
|
|
37
57
|
this.camera.far = far;
|
|
38
58
|
}
|
|
39
|
-
if (cameraPosition) {
|
|
40
|
-
this.camera.position.set(cameraPosition[0], cameraPosition[1], cameraPosition[2]);
|
|
41
|
-
}
|
|
42
59
|
this.camera.updateProjectionMatrix();
|
|
60
|
+
// Set camera position only on first sync (subsequent frames: orbit controls owns it)
|
|
61
|
+
if (!this.cameraInitialized) {
|
|
62
|
+
if (cameraPosition) {
|
|
63
|
+
this.camera.position.set(cameraPosition[0], cameraPosition[1], cameraPosition[2]);
|
|
64
|
+
}
|
|
65
|
+
if (cameraTarget) {
|
|
66
|
+
this.camera.lookAt(cameraTarget[0], cameraTarget[1], cameraTarget[2]);
|
|
67
|
+
}
|
|
68
|
+
this.cameraInitialized = true;
|
|
69
|
+
}
|
|
70
|
+
// Track the latest target for orbit controls
|
|
43
71
|
if (cameraTarget) {
|
|
44
|
-
this.
|
|
72
|
+
this.lastCameraTarget = cameraTarget;
|
|
45
73
|
}
|
|
46
74
|
// Orbit controls
|
|
47
75
|
this.syncOrbitControls(orbitControls, canvas);
|
|
76
|
+
// Update orbit controls target to track the scene center
|
|
77
|
+
if (this.orbitControls && this.lastCameraTarget) {
|
|
78
|
+
this.orbitControls.target.set(this.lastCameraTarget[0], this.lastCameraTarget[1], this.lastCameraTarget[2]);
|
|
79
|
+
}
|
|
48
80
|
// Reconcile objects
|
|
49
81
|
this.reconcileObjects(objects);
|
|
50
82
|
}
|
|
@@ -65,6 +97,7 @@ export class Scene3dManager {
|
|
|
65
97
|
if (!this.orbitControls && this.orbitControlsModule) {
|
|
66
98
|
this.orbitControls = new this.orbitControlsModule.OrbitControls(this.camera, canvas);
|
|
67
99
|
this.orbitControls.enableDamping = true;
|
|
100
|
+
this.orbitControls.enableZoom = false;
|
|
68
101
|
}
|
|
69
102
|
if (!this.orbitControls && !this.orbitControlsModule) {
|
|
70
103
|
// Lazy-load OrbitControls
|
|
@@ -73,6 +106,7 @@ export class Scene3dManager {
|
|
|
73
106
|
if (!this.orbitControls) {
|
|
74
107
|
this.orbitControls = new mod.OrbitControls(this.camera, canvas);
|
|
75
108
|
this.orbitControls.enableDamping = true;
|
|
109
|
+
this.orbitControls.enableZoom = false;
|
|
76
110
|
this.applyOrbitConfig(config);
|
|
77
111
|
}
|
|
78
112
|
});
|
|
@@ -259,10 +293,31 @@ function updateThreeObject(object, _oldDesc, newDesc) {
|
|
|
259
293
|
updateDirectionalLight(object, newDesc);
|
|
260
294
|
break;
|
|
261
295
|
case 'group':
|
|
262
|
-
|
|
296
|
+
updateGroup(object, _oldDesc, newDesc);
|
|
263
297
|
break;
|
|
264
298
|
}
|
|
265
299
|
}
|
|
300
|
+
function updateGroup(group, oldDesc, newDesc) {
|
|
301
|
+
if (newDesc.position) {
|
|
302
|
+
group.position.set(newDesc.position[0], newDesc.position[1], newDesc.position[2]);
|
|
303
|
+
}
|
|
304
|
+
if (!sameObjectStructure(oldDesc, newDesc) || group.children.length !== newDesc.objects.length) {
|
|
305
|
+
for (const child of [...group.children]) {
|
|
306
|
+
group.remove(child);
|
|
307
|
+
disposeObject(child);
|
|
308
|
+
}
|
|
309
|
+
for (const childDesc of newDesc.objects) {
|
|
310
|
+
group.add(createThreeObject(childDesc));
|
|
311
|
+
}
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
for (let i = 0; i < newDesc.objects.length; i++) {
|
|
315
|
+
const ch = group.children[i];
|
|
316
|
+
if (ch) {
|
|
317
|
+
updateThreeObject(ch, oldDesc.objects[i], newDesc.objects[i]);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
266
321
|
function updateSphere(mesh, desc) {
|
|
267
322
|
if (desc.position)
|
|
268
323
|
mesh.position.set(desc.position[0], desc.position[1], desc.position[2]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene3d-manager.js","sourceRoot":"","sources":["../src/scene3d-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scene3d-manager.js","sourceRoot":"","sources":["../src/scene3d-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAc9B,wGAAwG;AACxG,SAAS,mBAAmB,CAAC,CAAgB,EAAE,CAAgB;IAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACnC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IACnC,MAAM,EAAE,GAAG,CAAC,CAAA;IACZ,MAAM,EAAE,GAAG,CAAiB,CAAA;IAC5B,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YAAE,OAAO,KAAK,CAAA;IACxE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAWD;;;;GAIG;AACH,MAAM,OAAO,cAAc;IASd;IACA;IATH,OAAO,GAAoB,EAAE,CAAA;IAC7B,UAAU,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;IAC9B,aAAa,GAAgF,IAAI,CAAA;IACjG,mBAAmB,GAAyE,IAAI,CAAA;IAChG,iBAAiB,GAAG,KAAK,CAAA;IACzB,gBAAgB,CAAsC;IAE9D,YACW,KAAkB,EAClB,MAA+B;QAD/B,UAAK,GAAL,KAAK,CAAa;QAClB,WAAM,GAAN,MAAM,CAAyB;QAExC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,OAAuB,EAAE,MAA0B;QACtD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,GACxF,OAAO,CAAC,KAAK,CAAA;QAEf,0BAA0B;QAC1B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrD,CAAC;QAED,mDAAmD;QACnD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACzB,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAA;QAEpC,qFAAqF;QACrF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;YACnF,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAC/B,CAAC;QAED,6CAA6C;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAA;QACtC,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAE7C,yDAAyD;QACzD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAC3B,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CACzB,CAAA;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IAED,gDAAgD;IAChD,IAAI;QACF,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA;IAC9B,CAAC;IAEO,iBAAiB,CACvB,MAAiD,EACjD,MAA0B;QAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;gBAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YAC3B,CAAC;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpD,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACpF,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;YACvC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAA;QACvC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrD,0BAA0B;YAC1B,KAAK,MAAM,CAAC,8CAA8C,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvE,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;oBAC/D,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;oBACvC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAA;oBACrC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAEO,gBAAgB,CAAC,MAAqC;QAC5D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,MAAM,KAAK,SAAS;YAAE,OAAM;QAC9D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAA;QACnF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACzF,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACzF,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IACjG,CAAC;IAEO,gBAAgB,CAAC,OAAwB;QAC/C,uFAAuF;QACvF,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAEzE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;gBAC9B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;gBACvD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACpC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QAC3B,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,SAAS,iBAAiB,CAAC,IAAmB;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3B,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3B,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,cAAc;YACjB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,kBAAkB;YACrB,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACrC,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAmB;IACvC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,CACnC,IAAI,CAAC,MAAM,IAAI,CAAC,EAChB,IAAI,CAAC,aAAa,IAAI,EAAE,EACxB,IAAI,CAAC,cAAc,IAAI,EAAE,CAC1B,CAAA;IACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;QAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;KAC/B,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1F,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,YAAY,CAAC,IAAmB;IACvC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAA;IACvC,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IACtE,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;QACpB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;QAC1B,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;KACrC,CAAC,CAAA;IACF,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAE1D,IAAI,GAAmB,CAAA;IACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,GAAG,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;YAC7B,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG;SAC7B,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;YAC7B,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC5C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB;IACnC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,YAAY,CACjC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,IAAI,GAAG,CACrB,CAAA;IACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC;QACtC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;QAC7B,IAAI,EAAE,KAAK,CAAC,UAAU;QACtB,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;QACpC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;KAC3B,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1F,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1F,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAyB;IACnD,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA6B;IAC3D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAA;IACrF,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3F,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB;IACrC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;IAC/B,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3F,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,SAAS,iBAAiB,CACxB,MAAsB,EACtB,QAAuB,EACvB,OAAsB;IAEtB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,YAAY,CAAC,MAAoB,EAAE,OAAO,CAAC,CAAA;YAC3C,MAAK;QACP,KAAK,QAAQ;YACX,YAAY,CAAC,MAAsB,EAAE,OAAO,CAAC,CAAA;YAC7C,MAAK;QACP,KAAK,MAAM;YACT,UAAU,CAAC,MAAoB,EAAE,OAAO,CAAC,CAAA;YACzC,MAAK;QACP,KAAK,MAAM;YACT,UAAU,CAAC,MAAoB,EAAE,OAAO,CAAC,CAAA;YACzC,MAAK;QACP,KAAK,cAAc;YACjB,kBAAkB,CAAC,MAA4B,EAAE,OAAO,CAAC,CAAA;YACzD,MAAK;QACP,KAAK,kBAAkB;YACrB,sBAAsB,CAAC,MAAgC,EAAE,OAAO,CAAC,CAAA;YACjE,MAAK;QACP,KAAK,OAAO;YACV,WAAW,CAAC,MAAqB,EAAE,QAAwB,EAAE,OAAuB,CAAC,CAAA;YACrF,MAAK;IACT,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB,EAAE,OAAqB,EAAE,OAAqB;IACnF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/F,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACnB,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;QACzC,CAAC;QACD,OAAM;IACR,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,EAAE,EAAE,CAAC;YACP,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB,EAAE,IAAmB;IACzD,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,QAAsC,CAAA;IACvD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,IAAmB;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAA0B,CAAA;IACtE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,IAAiB;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IAC7D,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,oBAAoB,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,IAAiB;IACrD,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1F,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAyB,EAAE,IAAyB;IAC9E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;AACpE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA6B,EAAE,IAA6B;IAC1F,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IAClE,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,SAAS,aAAa,CAAC,MAAsB;IAC3C,IAAI,MAAM,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ;gBAAE,GAAG,CAAC,OAAO,EAAE,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CACxB;QAAC,MAAM,CAAC,QAA2B,CAAC,OAAO,EAAE,CAAA;IAChD,CAAC;SAAM,IAAI,MAAM,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CACxB;QAAC,MAAM,CAAC,QAA2B,CAAC,OAAO,EAAE,CAAA;IAChD,CAAC;SAAM,IAAI,MAAM,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/split-host.d.ts
CHANGED
|
@@ -44,6 +44,19 @@ export interface ThreeGeometraSplitHostOptions extends GeometraHostBrowserCanvas
|
|
|
44
44
|
* If this callback throws, the host is fully torn down and the error is rethrown (same as {@link onThreeReady}).
|
|
45
45
|
*/
|
|
46
46
|
onThreeFrame?: (ctx: ThreeFrameContext) => void | false;
|
|
47
|
+
/**
|
|
48
|
+
* WebSocket URL for a transparent Geometra overlay canvas on the Three.js panel.
|
|
49
|
+
* When set, a second canvas is absolutely positioned over the Three.js panel and connected
|
|
50
|
+
* to this URL. Use for HUD elements (pills, labels, info panels) rendered by a separate
|
|
51
|
+
* Geometra server view.
|
|
52
|
+
*/
|
|
53
|
+
overlayUrl?: string;
|
|
54
|
+
/** Renderer options for the overlay canvas. Default: transparent background. */
|
|
55
|
+
overlayRendererOptions?: Record<string, unknown>;
|
|
56
|
+
/** CSS pointer-events for the overlay. Default: ‘none’ (click-through). */
|
|
57
|
+
overlayPointerEvents?: string;
|
|
58
|
+
/** Binary framing for the overlay WebSocket. Default: same as main client. */
|
|
59
|
+
overlayBinaryFraming?: boolean;
|
|
47
60
|
}
|
|
48
61
|
export interface ThreeRuntimeContext {
|
|
49
62
|
renderer: THREE.WebGLRenderer;
|
|
@@ -64,16 +77,20 @@ export interface ThreeGeometraSplitHostHandle {
|
|
|
64
77
|
geometraPanel: HTMLDivElement;
|
|
65
78
|
threeCanvas: HTMLCanvasElement;
|
|
66
79
|
geometraCanvas: HTMLCanvasElement;
|
|
80
|
+
/** Overlay canvas on the Three.js panel (present when `overlayUrl` was provided). */
|
|
81
|
+
overlayCanvas?: HTMLCanvasElement;
|
|
67
82
|
renderer: THREE.WebGLRenderer;
|
|
68
83
|
scene: THREE.Scene;
|
|
69
84
|
camera: THREE.PerspectiveCamera;
|
|
70
85
|
clock: THREE.Clock;
|
|
71
86
|
geometra: BrowserCanvasClientHandle;
|
|
87
|
+
/** Overlay Geometra client (present when `overlayUrl` was provided). */
|
|
88
|
+
overlay?: BrowserCanvasClientHandle;
|
|
72
89
|
/**
|
|
73
90
|
* Stops the render loop, tears down WebGL via {@link disposeGeometraThreeWebGLWithSceneBasics} (clock stop +
|
|
74
91
|
* the same renderer registration headless {@link renderGeometraThreeWebGLWithSceneBasicsFrame} /
|
|
75
92
|
* {@link tickGeometraThreeWebGLWithSceneBasicsFrame} use to skip draws after dispose), disconnects observers,
|
|
76
|
-
* and tears down the Geometra client.
|
|
93
|
+
* and tears down the Geometra client and overlay.
|
|
77
94
|
*/
|
|
78
95
|
destroy(): void;
|
|
79
96
|
}
|
package/dist/split-host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-host.d.ts","sourceRoot":"","sources":["../src/split-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,yBAAyB,CAAA;AAKhC;;;;GAIG;AACH,MAAM,MAAM,sCAAsC,GAAG,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAA;AAE/F;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;CAEtC,CAAA;AAEV,MAAM,WAAW,6BACf,SAAQ,sCAAsC,EAC5C,+BAA+B;IACjC,8FAA8F;IAC9F,SAAS,EAAE,WAAW,CAAA;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACjD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"split-host.d.ts","sourceRoot":"","sources":["../src/split-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,yBAAyB,CAAA;AAKhC;;;;GAIG;AACH,MAAM,MAAM,sCAAsC,GAAG,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAA;AAE/F;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;CAEtC,CAAA;AAEV,MAAM,WAAW,6BACf,SAAQ,sCAAsC,EAC5C,+BAA+B;IACjC,8FAA8F;IAC9F,SAAS,EAAE,WAAW,CAAA;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACjD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GAAG,KAAK,CAAA;IACvD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChD,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAA;IAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;IAClB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAA;IAC/B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,iFAAiF;IACjF,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,cAAc,CAAA;IACpB,UAAU,EAAE,cAAc,CAAA;IAC1B,aAAa,EAAE,cAAc,CAAA;IAC7B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,cAAc,EAAE,iBAAiB,CAAA;IACjC,qFAAqF;IACrF,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAA;IAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;IAClB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;IAClB,QAAQ,EAAE,yBAAyB,CAAA;IACnC,wEAAwE;IACxE,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAAA;CAChB;AAgBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,4BAA4B,CAwO9B"}
|
package/dist/split-host.js
CHANGED
|
@@ -47,7 +47,7 @@ function fullSizeCanvas(canvas) {
|
|
|
47
47
|
* socket as layout; channel names are defined by your app and the Geometra server).
|
|
48
48
|
*/
|
|
49
49
|
export function createThreeGeometraSplitHost(options) {
|
|
50
|
-
const { container, geometraWidth: geometraWidthOpt = GEOMETRA_SPLIT_HOST_LAYOUT_DEFAULTS.geometraWidth, geometraOnLeft = false, maxDevicePixelRatio, threeBackground = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.threeBackground, cameraFov = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraFov, cameraNear = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraNear, cameraFar = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraFar, cameraPosition = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraPosition, onThreeReady, onThreeFrame, window: providedWindow, ...browserOptions } = options;
|
|
50
|
+
const { container, geometraWidth: geometraWidthOpt = GEOMETRA_SPLIT_HOST_LAYOUT_DEFAULTS.geometraWidth, geometraOnLeft = false, maxDevicePixelRatio, threeBackground = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.threeBackground, cameraFov = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraFov, cameraNear = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraNear, cameraFar = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraFar, cameraPosition = GEOMETRA_THREE_HOST_SCENE_DEFAULTS.cameraPosition, onThreeReady, onThreeFrame, overlayUrl, overlayRendererOptions, overlayPointerEvents = 'none', overlayBinaryFraming, window: providedWindow, ...browserOptions } = options;
|
|
51
51
|
const geometraWidth = coerceHostNonNegativeCssPx(geometraWidthOpt, GEOMETRA_SPLIT_HOST_LAYOUT_DEFAULTS.geometraWidth);
|
|
52
52
|
const doc = container.ownerDocument;
|
|
53
53
|
const win = providedWindow ?? doc.defaultView;
|
|
@@ -77,6 +77,20 @@ export function createThreeGeometraSplitHost(options) {
|
|
|
77
77
|
const threeCanvas = doc.createElement('canvas');
|
|
78
78
|
fullSizeCanvas(threeCanvas);
|
|
79
79
|
threePanel.appendChild(threeCanvas);
|
|
80
|
+
// Overlay canvas on the Three.js panel (optional)
|
|
81
|
+
let overlayCanvasEl;
|
|
82
|
+
if (overlayUrl) {
|
|
83
|
+
overlayCanvasEl = doc.createElement('canvas');
|
|
84
|
+
overlayCanvasEl.style.display = 'block';
|
|
85
|
+
overlayCanvasEl.style.position = 'absolute';
|
|
86
|
+
overlayCanvasEl.style.left = '0';
|
|
87
|
+
overlayCanvasEl.style.top = '0';
|
|
88
|
+
overlayCanvasEl.style.width = '100%';
|
|
89
|
+
overlayCanvasEl.style.height = '100%';
|
|
90
|
+
overlayCanvasEl.style.pointerEvents = overlayPointerEvents;
|
|
91
|
+
overlayCanvasEl.style.zIndex = '1';
|
|
92
|
+
threePanel.appendChild(overlayCanvasEl);
|
|
93
|
+
}
|
|
80
94
|
const geometraCanvas = doc.createElement('canvas');
|
|
81
95
|
fullSizeCanvas(geometraCanvas);
|
|
82
96
|
geometraPanel.appendChild(geometraCanvas);
|
|
@@ -119,6 +133,30 @@ export function createThreeGeometraSplitHost(options) {
|
|
|
119
133
|
throw err;
|
|
120
134
|
}
|
|
121
135
|
})();
|
|
136
|
+
// Overlay Geometra client (optional)
|
|
137
|
+
let overlayHandle;
|
|
138
|
+
if (overlayUrl && overlayCanvasEl) {
|
|
139
|
+
try {
|
|
140
|
+
overlayHandle = createBrowserCanvasClient({
|
|
141
|
+
url: overlayUrl,
|
|
142
|
+
binaryFraming: overlayBinaryFraming ?? browserOptions.binaryFraming,
|
|
143
|
+
canvas: overlayCanvasEl,
|
|
144
|
+
window: win,
|
|
145
|
+
rendererOptions: {
|
|
146
|
+
background: 'transparent',
|
|
147
|
+
...overlayRendererOptions,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
layoutSync.cancel();
|
|
153
|
+
win.removeEventListener('resize', onWindowResize);
|
|
154
|
+
geometraHandle.destroy();
|
|
155
|
+
disposeGeometraThreeWebGLWithSceneBasics({ renderer: glRenderer, clock });
|
|
156
|
+
root.remove();
|
|
157
|
+
throw err;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
122
160
|
const roContainer = new ResizeObserver(() => {
|
|
123
161
|
layoutSync.schedule(true);
|
|
124
162
|
});
|
|
@@ -137,6 +175,7 @@ export function createThreeGeometraSplitHost(options) {
|
|
|
137
175
|
layoutSync.cancel();
|
|
138
176
|
win.removeEventListener('resize', onWindowResize);
|
|
139
177
|
roContainer.disconnect();
|
|
178
|
+
overlayHandle?.destroy();
|
|
140
179
|
geometraHandle.destroy();
|
|
141
180
|
disposeGeometraThreeWebGLWithSceneBasics({ renderer: glRenderer, clock });
|
|
142
181
|
root.remove();
|
|
@@ -183,11 +222,13 @@ export function createThreeGeometraSplitHost(options) {
|
|
|
183
222
|
geometraPanel,
|
|
184
223
|
threeCanvas,
|
|
185
224
|
geometraCanvas,
|
|
225
|
+
overlayCanvas: overlayCanvasEl,
|
|
186
226
|
renderer: glRenderer,
|
|
187
227
|
scene,
|
|
188
228
|
camera,
|
|
189
229
|
clock,
|
|
190
230
|
geometra: geometraHandle,
|
|
231
|
+
overlay: overlayHandle,
|
|
191
232
|
destroy,
|
|
192
233
|
};
|
|
193
234
|
}
|
package/dist/split-host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-host.js","sourceRoot":"","sources":["../src/split-host.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,GAG1B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EACvC,wCAAwC,GAEzC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,kCAAkC,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAS5F;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,aAAa,EAAE,GAAG;CACV,CAAA;
|
|
1
|
+
{"version":3,"file":"split-host.js","sourceRoot":"","sources":["../src/split-host.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/renderer-three",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Three.js render target helpers for Geometra — stack WebGL with the geometry-streamed canvas client, declarative scene3d element rendering",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
"check": "tsc --noEmit"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@geometra/client": "^1.
|
|
40
|
-
"@geometra/core": "^1.
|
|
41
|
-
"@geometra/renderer-canvas": "^1.
|
|
39
|
+
"@geometra/client": "^1.5.0",
|
|
40
|
+
"@geometra/core": "^1.5.0",
|
|
41
|
+
"@geometra/renderer-canvas": "^1.5.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"three": ">=0.160.0 <0.180.0"
|