@geometra/renderer-three 1.59.0 → 1.60.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/renderer-three",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.60.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.60.0",
|
|
40
|
+
"@geometra/core": "^1.60.0",
|
|
41
|
+
"@geometra/renderer-canvas": "^1.60.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"three": ">=0.160.0 <0.180.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scene3d-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/scene3d-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,97 +0,0 @@
|
|
|
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('clears scene content when objects becomes empty', () => {
|
|
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: [sphere({ color: 0xff0000 })],
|
|
21
|
-
}));
|
|
22
|
-
expect(sceneContentRoot(scene).children.length).toBe(1);
|
|
23
|
-
mgr.sync(scene3d({
|
|
24
|
-
width: 100,
|
|
25
|
-
height: 80,
|
|
26
|
-
objects: [],
|
|
27
|
-
}));
|
|
28
|
-
expect(sceneContentRoot(scene).children.length).toBe(0);
|
|
29
|
-
});
|
|
30
|
-
it('updates nested sphere props when wrapped in a group (in-place)', () => {
|
|
31
|
-
const scene = new THREE.Scene();
|
|
32
|
-
const camera = new THREE.PerspectiveCamera();
|
|
33
|
-
const mgr = new Scene3dManager(scene, camera);
|
|
34
|
-
mgr.sync(scene3d({
|
|
35
|
-
width: 100,
|
|
36
|
-
height: 80,
|
|
37
|
-
objects: [group({ objects: [sphere({ color: 0xff0000 })] })],
|
|
38
|
-
}));
|
|
39
|
-
const top = sceneContentRoot(scene).children[0];
|
|
40
|
-
const mesh = top.children[0];
|
|
41
|
-
expect(mesh.material.color.getHex()).toBe(0xff0000);
|
|
42
|
-
mgr.sync(scene3d({
|
|
43
|
-
width: 100,
|
|
44
|
-
height: 80,
|
|
45
|
-
objects: [group({ objects: [sphere({ color: 0x00ff00 })] })],
|
|
46
|
-
}));
|
|
47
|
-
expect(mesh.material.color.getHex()).toBe(0x00ff00);
|
|
48
|
-
expect(top.children[0]).toBe(mesh);
|
|
49
|
-
});
|
|
50
|
-
it('rebuilds group children when nested arity changes', () => {
|
|
51
|
-
const scene = new THREE.Scene();
|
|
52
|
-
const camera = new THREE.PerspectiveCamera();
|
|
53
|
-
const mgr = new Scene3dManager(scene, camera);
|
|
54
|
-
mgr.sync(scene3d({
|
|
55
|
-
width: 100,
|
|
56
|
-
height: 80,
|
|
57
|
-
objects: [group({ objects: [sphere({ color: 0xff0000 })] })],
|
|
58
|
-
}));
|
|
59
|
-
const top = sceneContentRoot(scene).children[0];
|
|
60
|
-
expect(top.children.length).toBe(1);
|
|
61
|
-
mgr.sync(scene3d({
|
|
62
|
-
width: 100,
|
|
63
|
-
height: 80,
|
|
64
|
-
objects: [group({ objects: [sphere({ color: 0xff0000 }), sphere({ color: 0x0000ff })] })],
|
|
65
|
-
}));
|
|
66
|
-
expect(top.children.length).toBe(2);
|
|
67
|
-
});
|
|
68
|
-
it('updates a sphere inside nested groups', () => {
|
|
69
|
-
const scene = new THREE.Scene();
|
|
70
|
-
const camera = new THREE.PerspectiveCamera();
|
|
71
|
-
const mgr = new Scene3dManager(scene, camera);
|
|
72
|
-
mgr.sync(scene3d({
|
|
73
|
-
width: 100,
|
|
74
|
-
height: 80,
|
|
75
|
-
objects: [
|
|
76
|
-
group({
|
|
77
|
-
objects: [group({ objects: [sphere({ color: 0xff0000 })] })],
|
|
78
|
-
}),
|
|
79
|
-
],
|
|
80
|
-
}));
|
|
81
|
-
const outer = sceneContentRoot(scene).children[0];
|
|
82
|
-
const inner = outer.children[0];
|
|
83
|
-
const mesh = inner.children[0];
|
|
84
|
-
mgr.sync(scene3d({
|
|
85
|
-
width: 100,
|
|
86
|
-
height: 80,
|
|
87
|
-
objects: [
|
|
88
|
-
group({
|
|
89
|
-
objects: [group({ objects: [sphere({ color: 0x0000ff })] })],
|
|
90
|
-
}),
|
|
91
|
-
],
|
|
92
|
-
}));
|
|
93
|
-
expect(mesh.material.color.getHex()).toBe(0x0000ff);
|
|
94
|
-
expect(inner.children[0]).toBe(mesh);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
//# sourceMappingURL=scene3d-manager.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scene3d-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/scene3d-manager.test.ts"],"names":[],"mappings":"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"}
|