@kiberon-labs/behave-graph-scene 1.0.0 → 2.0.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/.storybook/main.ts +18 -0
- package/.storybook/preview.ts +16 -0
- package/.storybook/vscode.css +822 -0
- package/.turbo/turbo-build.log +8 -0
- package/CHANGELOG.md +84 -0
- package/LICENSE +6 -0
- package/README.md +13 -0
- package/dist/Abstractions/Drivers/DummyScene.d.ts +64 -0
- package/dist/Abstractions/Drivers/DummyScene.d.ts.map +1 -0
- package/dist/Abstractions/Drivers/DummyScene.js +115 -0
- package/dist/Abstractions/Drivers/DummyScene.js.map +1 -0
- package/dist/Abstractions/IScene.d.ts +75 -0
- package/dist/Abstractions/IScene.d.ts.map +1 -0
- package/dist/Abstractions/IScene.js +19 -0
- package/dist/Abstractions/IScene.js.map +1 -0
- package/dist/GLTFJson.d.ts +33 -0
- package/dist/GLTFJson.d.ts.map +1 -0
- package/dist/Nodes/Actions/AddLight.d.ts +21 -0
- package/dist/Nodes/Actions/AddLight.d.ts.map +1 -0
- package/dist/Nodes/Actions/AddLight.js +38 -0
- package/dist/Nodes/Actions/AddLight.js.map +1 -0
- package/dist/Nodes/Actions/CloneMesh.d.ts +16 -0
- package/dist/Nodes/Actions/CloneMesh.d.ts.map +1 -0
- package/dist/Nodes/Actions/CloneMesh.js +28 -0
- package/dist/Nodes/Actions/CloneMesh.js.map +1 -0
- package/dist/Nodes/Actions/CreateMesh.d.ts +22 -0
- package/dist/Nodes/Actions/CreateMesh.d.ts.map +1 -0
- package/dist/Nodes/Actions/CreateMesh.js +44 -0
- package/dist/Nodes/Actions/CreateMesh.js.map +1 -0
- package/dist/Nodes/Actions/DeleteMesh.d.ts +15 -0
- package/dist/Nodes/Actions/DeleteMesh.d.ts.map +1 -0
- package/dist/Nodes/Actions/DeleteMesh.js +27 -0
- package/dist/Nodes/Actions/DeleteMesh.js.map +1 -0
- package/dist/Nodes/Actions/EaseSceneProperty.d.ts +23 -0
- package/dist/Nodes/Actions/EaseSceneProperty.d.ts.map +1 -0
- package/dist/Nodes/Actions/EaseSceneProperty.js +73 -0
- package/dist/Nodes/Actions/EaseSceneProperty.js.map +1 -0
- package/dist/Nodes/Actions/LookAt.d.ts +16 -0
- package/dist/Nodes/Actions/LookAt.d.ts.map +1 -0
- package/dist/Nodes/Actions/LookAt.js +35 -0
- package/dist/Nodes/Actions/LookAt.js.map +1 -0
- package/dist/Nodes/Actions/MoveTowards.d.ts +21 -0
- package/dist/Nodes/Actions/MoveTowards.d.ts.map +1 -0
- package/dist/Nodes/Actions/MoveTowards.js +46 -0
- package/dist/Nodes/Actions/MoveTowards.js.map +1 -0
- package/dist/Nodes/Actions/RemoveLight.d.ts +15 -0
- package/dist/Nodes/Actions/RemoveLight.d.ts.map +1 -0
- package/dist/Nodes/Actions/RemoveLight.js +27 -0
- package/dist/Nodes/Actions/RemoveLight.js.map +1 -0
- package/dist/Nodes/Actions/SetLightProperty.d.ts +25 -0
- package/dist/Nodes/Actions/SetLightProperty.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetLightProperty.js +64 -0
- package/dist/Nodes/Actions/SetLightProperty.js.map +1 -0
- package/dist/Nodes/Actions/SetMaterialProperty.d.ts +25 -0
- package/dist/Nodes/Actions/SetMaterialProperty.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetMaterialProperty.js +69 -0
- package/dist/Nodes/Actions/SetMaterialProperty.js.map +1 -0
- package/dist/Nodes/Actions/SetMeshPosition.d.ts +18 -0
- package/dist/Nodes/Actions/SetMeshPosition.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetMeshPosition.js +34 -0
- package/dist/Nodes/Actions/SetMeshPosition.js.map +1 -0
- package/dist/Nodes/Actions/SetMeshVisible.d.ts +16 -0
- package/dist/Nodes/Actions/SetMeshVisible.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetMeshVisible.js +28 -0
- package/dist/Nodes/Actions/SetMeshVisible.js.map +1 -0
- package/dist/Nodes/Actions/SetSceneProperty.d.ts +16 -0
- package/dist/Nodes/Actions/SetSceneProperty.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetSceneProperty.js +28 -0
- package/dist/Nodes/Actions/SetSceneProperty.js.map +1 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.d.ts +13 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.d.ts.map +1 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.js +34 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.js.map +1 -0
- package/dist/Nodes/Events/OnSceneChanged.d.ts +12 -0
- package/dist/Nodes/Events/OnSceneChanged.d.ts.map +1 -0
- package/dist/Nodes/Events/OnSceneChanged.js +28 -0
- package/dist/Nodes/Events/OnSceneChanged.js.map +1 -0
- package/dist/Nodes/Events/OnSceneNodeClick.d.ts +18 -0
- package/dist/Nodes/Events/OnSceneNodeClick.d.ts.map +1 -0
- package/dist/Nodes/Events/OnSceneNodeClick.js +39 -0
- package/dist/Nodes/Events/OnSceneNodeClick.js.map +1 -0
- package/dist/Nodes/Logic/ColorNodes.d.ts +23 -0
- package/dist/Nodes/Logic/ColorNodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/ColorNodes.js +137 -0
- package/dist/Nodes/Logic/ColorNodes.js.map +1 -0
- package/dist/Nodes/Logic/EulerNodes.d.ts +22 -0
- package/dist/Nodes/Logic/EulerNodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/EulerNodes.js +132 -0
- package/dist/Nodes/Logic/EulerNodes.js.map +1 -0
- package/dist/Nodes/Logic/Mat3Nodes.d.ts +31 -0
- package/dist/Nodes/Logic/Mat3Nodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/Mat3Nodes.js +199 -0
- package/dist/Nodes/Logic/Mat3Nodes.js.map +1 -0
- package/dist/Nodes/Logic/Mat4Nodes.d.ts +38 -0
- package/dist/Nodes/Logic/Mat4Nodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/Mat4Nodes.js +267 -0
- package/dist/Nodes/Logic/Mat4Nodes.js.map +1 -0
- package/dist/Nodes/Logic/QuatNodes.d.ts +28 -0
- package/dist/Nodes/Logic/QuatNodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/QuatNodes.js +173 -0
- package/dist/Nodes/Logic/QuatNodes.js.map +1 -0
- package/dist/Nodes/Logic/Vec2Nodes.d.ts +22 -0
- package/dist/Nodes/Logic/Vec2Nodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/Vec2Nodes.js +115 -0
- package/dist/Nodes/Logic/Vec2Nodes.js.map +1 -0
- package/dist/Nodes/Logic/Vec3Nodes.d.ts +23 -0
- package/dist/Nodes/Logic/Vec3Nodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/Vec3Nodes.js +137 -0
- package/dist/Nodes/Logic/Vec3Nodes.js.map +1 -0
- package/dist/Nodes/Logic/Vec4Nodes.d.ts +22 -0
- package/dist/Nodes/Logic/Vec4Nodes.d.ts.map +1 -0
- package/dist/Nodes/Logic/Vec4Nodes.js +132 -0
- package/dist/Nodes/Logic/Vec4Nodes.js.map +1 -0
- package/dist/Nodes/Logic/VecElements.d.ts +9 -0
- package/dist/Nodes/Logic/VecElements.d.ts.map +1 -0
- package/dist/Nodes/Logic/VecElements.js +22 -0
- package/dist/Nodes/Logic/VecElements.js.map +1 -0
- package/dist/Nodes/Queries/GetDistanceBetween.d.ts +18 -0
- package/dist/Nodes/Queries/GetDistanceBetween.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetDistanceBetween.js +30 -0
- package/dist/Nodes/Queries/GetDistanceBetween.js.map +1 -0
- package/dist/Nodes/Queries/GetLightProperty.d.ts +23 -0
- package/dist/Nodes/Queries/GetLightProperty.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetLightProperty.js +68 -0
- package/dist/Nodes/Queries/GetLightProperty.js.map +1 -0
- package/dist/Nodes/Queries/GetMaterialProperty.d.ts +23 -0
- package/dist/Nodes/Queries/GetMaterialProperty.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetMaterialProperty.js +69 -0
- package/dist/Nodes/Queries/GetMaterialProperty.js.map +1 -0
- package/dist/Nodes/Queries/GetMeshPosition.d.ts +16 -0
- package/dist/Nodes/Queries/GetMeshPosition.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetMeshPosition.js +29 -0
- package/dist/Nodes/Queries/GetMeshPosition.js.map +1 -0
- package/dist/Nodes/Queries/GetSceneProperty.d.ts +14 -0
- package/dist/Nodes/Queries/GetSceneProperty.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetSceneProperty.js +23 -0
- package/dist/Nodes/Queries/GetSceneProperty.js.map +1 -0
- package/dist/Values/ColorValue.d.ts +7 -0
- package/dist/Values/ColorValue.d.ts.map +1 -0
- package/dist/Values/ColorValue.js +20 -0
- package/dist/Values/ColorValue.js.map +1 -0
- package/dist/Values/EulerValue.d.ts +7 -0
- package/dist/Values/EulerValue.d.ts.map +1 -0
- package/dist/Values/EulerValue.js +20 -0
- package/dist/Values/EulerValue.js.map +1 -0
- package/dist/Values/Internal/Mat3.d.ts +43 -0
- package/dist/Values/Internal/Mat3.d.ts.map +1 -0
- package/dist/Values/Internal/Mat3.js +276 -0
- package/dist/Values/Internal/Mat3.js.map +1 -0
- package/dist/Values/Internal/Mat4.d.ts +53 -0
- package/dist/Values/Internal/Mat4.d.ts.map +1 -0
- package/dist/Values/Internal/Mat4.js +443 -0
- package/dist/Values/Internal/Mat4.js.map +1 -0
- package/dist/Values/Internal/Vec2.d.ts +25 -0
- package/dist/Values/Internal/Vec2.d.ts.map +1 -0
- package/dist/Values/Internal/Vec2.js +64 -0
- package/dist/Values/Internal/Vec2.js.map +1 -0
- package/dist/Values/Internal/Vec3.d.ts +38 -0
- package/dist/Values/Internal/Vec3.d.ts.map +1 -0
- package/dist/Values/Internal/Vec3.js +157 -0
- package/dist/Values/Internal/Vec3.js.map +1 -0
- package/dist/Values/Internal/Vec4.d.ts +49 -0
- package/dist/Values/Internal/Vec4.d.ts.map +1 -0
- package/dist/Values/Internal/Vec4.js +190 -0
- package/dist/Values/Internal/Vec4.js.map +1 -0
- package/dist/Values/Mat3Value.d.ts +7 -0
- package/dist/Values/Mat3Value.d.ts.map +1 -0
- package/dist/Values/Mat3Value.js +16 -0
- package/dist/Values/Mat3Value.js.map +1 -0
- package/dist/Values/Mat4Value.d.ts +7 -0
- package/dist/Values/Mat4Value.d.ts.map +1 -0
- package/dist/Values/Mat4Value.js +16 -0
- package/dist/Values/Mat4Value.js.map +1 -0
- package/dist/Values/QuatValue.d.ts +7 -0
- package/dist/Values/QuatValue.d.ts.map +1 -0
- package/dist/Values/QuatValue.js +21 -0
- package/dist/Values/QuatValue.js.map +1 -0
- package/dist/Values/Vec2Value.d.ts +7 -0
- package/dist/Values/Vec2Value.d.ts.map +1 -0
- package/dist/Values/Vec2Value.js +16 -0
- package/dist/Values/Vec2Value.js.map +1 -0
- package/dist/Values/Vec3Value.d.ts +7 -0
- package/dist/Values/Vec3Value.d.ts.map +1 -0
- package/dist/Values/Vec3Value.js +20 -0
- package/dist/Values/Vec3Value.js.map +1 -0
- package/dist/Values/Vec4Value.d.ts +7 -0
- package/dist/Values/Vec4Value.d.ts.map +1 -0
- package/dist/Values/Vec4Value.js +21 -0
- package/dist/Values/Vec4Value.js.map +1 -0
- package/dist/_virtual/rolldown_runtime.js +35 -0
- package/dist/behave-graph.manifest.json +6082 -0
- package/dist/buildScene.d.ts +74 -0
- package/dist/buildScene.d.ts.map +1 -0
- package/dist/buildScene.js +304 -0
- package/dist/buildScene.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/manifest.source.d.ts +7 -0
- package/dist/manifest.source.d.ts.map +1 -0
- package/dist/manifest.source.js +54 -0
- package/dist/manifest.source.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js +207 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js +40 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js +766 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js +367 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/index.js +15 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/index.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js +15 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js.map +1 -0
- package/dist/packages/nodes/scene/package.js +7 -0
- package/dist/packages/nodes/scene/package.js.map +1 -0
- package/dist/registerSceneProfile.d.ts +10 -0
- package/dist/registerSceneProfile.d.ts.map +1 -0
- package/dist/registerSceneProfile.js +112 -0
- package/dist/registerSceneProfile.js.map +1 -0
- package/dist/ui/controls/vec3.d.ts +9 -0
- package/dist/ui/controls/vec3.d.ts.map +1 -0
- package/dist/ui/controls/vec3.js +99 -0
- package/dist/ui/controls/vec3.js.map +1 -0
- package/package.json +42 -13
- package/src/Abstractions/Drivers/DummyScene.ts +110 -2
- package/src/Abstractions/IScene.ts +74 -3
- package/src/Nodes/Actions/AddLight.ts +46 -0
- package/src/Nodes/Actions/CloneMesh.ts +31 -0
- package/src/Nodes/Actions/CreateMesh.ts +47 -0
- package/src/Nodes/Actions/DeleteMesh.ts +29 -0
- package/src/Nodes/Actions/EaseSceneProperty.ts +6 -2
- package/src/Nodes/Actions/LookAt.ts +34 -0
- package/src/Nodes/Actions/MoveTowards.ts +55 -0
- package/src/Nodes/Actions/RemoveLight.ts +29 -0
- package/src/Nodes/Actions/SetLightProperty.ts +60 -0
- package/src/Nodes/Actions/SetMaterialProperty.ts +62 -0
- package/src/Nodes/Actions/SetMeshPosition.ts +37 -0
- package/src/Nodes/Actions/SetMeshVisible.ts +31 -0
- package/src/Nodes/Actions/SetSceneProperty.ts +3 -5
- package/src/Nodes/Events/OnAnyMeshClicked.ts +48 -0
- package/src/Nodes/Events/OnSceneChanged.ts +43 -0
- package/src/Nodes/Events/OnSceneNodeClick.ts +3 -3
- package/src/Nodes/Logic/Mat3Nodes.ts +0 -10
- package/src/Nodes/Logic/QuatNodes.ts +11 -11
- package/src/Nodes/Queries/GetDistanceBetween.ts +37 -0
- package/src/Nodes/Queries/GetLightProperty.ts +53 -0
- package/src/Nodes/Queries/GetMaterialProperty.ts +55 -0
- package/src/Nodes/Queries/GetMeshPosition.ts +32 -0
- package/src/Nodes/Queries/GetSceneProperty.ts +4 -5
- package/src/Values/Internal/Mat3.ts +3 -3
- package/src/Values/Internal/Mat4.ts +5 -4
- package/src/Values/Internal/Vec3.ts +5 -4
- package/src/Values/Internal/Vec4.ts +3 -2
- package/src/buildScene.ts +36 -2
- package/src/index.ts +26 -2
- package/src/manifest.source.ts +61 -0
- package/src/registerSceneProfile.ts +41 -4
- package/src/ui/controls/vec3.tsx +69 -0
- package/stories/click.stories.tsx +112 -0
- package/stories/components/DemoScene.ts +610 -0
- package/stories/components/SceneViewer.tsx +204 -0
- package/stories/components/SceneViewerPanel.tsx +41 -0
- package/stories/data/clickDemo.json +94 -0
- package/stories/data/rotate.json +402 -0
- package/stories/index.stories.tsx +90 -0
- package/stories/plugin/sceneViewerPlugin.tsx +88 -0
- package/tests/graphs/logic/Color.json +53 -53
- package/tests/graphs/logic/Euler.json +53 -53
- package/tests/graphs/logic/Quaternion.json +56 -56
- package/tests/graphs/logic/Vector2.json +50 -50
- package/tests/graphs/logic/Vector3.json +53 -53
- package/tests/graphs/logic/Vector4.json +56 -56
- package/tests/manifest.test.ts +65 -0
- package/tests/readSceneGraphs.test.ts +8 -1
- package/tests/registerSceneProfile.test.ts +6 -5
- package/tests/tsconfig.json +10 -10
- package/tsconfig.json +61 -54
- package/tsdown.config.ts +5 -1
- package/vite.config.js +7 -0
- package/src/Values/Internal/Mat2.ts +0 -214
- package/src/loadScene.ts +0 -81
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodes": [
|
|
3
|
-
{
|
|
4
|
-
"type": "lifecycle/onStart",
|
|
5
|
-
"id": "0",
|
|
6
|
-
"flows": {
|
|
7
|
-
"flow": {
|
|
8
|
-
"nodeId": "3",
|
|
9
|
-
"socket": "flow"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "math/toEuler/float",
|
|
15
|
-
"id": "1",
|
|
16
|
-
"parameters": {
|
|
17
|
-
"x": {
|
|
18
|
-
"value": 1
|
|
19
|
-
},
|
|
20
|
-
"y": {
|
|
21
|
-
"value": 0
|
|
22
|
-
},
|
|
23
|
-
"z": {
|
|
24
|
-
"value": 0
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"type": "math/toString/euler",
|
|
30
|
-
"id": "2",
|
|
31
|
-
"parameters": {
|
|
32
|
-
"a": {
|
|
33
|
-
"link": {
|
|
34
|
-
"nodeId": "1",
|
|
35
|
-
"socket": "result"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"type": "debug/log",
|
|
42
|
-
"id": "3",
|
|
43
|
-
"parameters": {
|
|
44
|
-
"text": {
|
|
45
|
-
"link": {
|
|
46
|
-
"nodeId": "2",
|
|
47
|
-
"socket": "result"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
]
|
|
53
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"nodes": [
|
|
3
|
+
{
|
|
4
|
+
"type": "lifecycle/onStart",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"flows": {
|
|
7
|
+
"flow": {
|
|
8
|
+
"nodeId": "3",
|
|
9
|
+
"socket": "flow"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "math/toEuler/float",
|
|
15
|
+
"id": "1",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"x": {
|
|
18
|
+
"value": 1
|
|
19
|
+
},
|
|
20
|
+
"y": {
|
|
21
|
+
"value": 0
|
|
22
|
+
},
|
|
23
|
+
"z": {
|
|
24
|
+
"value": 0
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "math/toString/euler",
|
|
30
|
+
"id": "2",
|
|
31
|
+
"parameters": {
|
|
32
|
+
"a": {
|
|
33
|
+
"link": {
|
|
34
|
+
"nodeId": "1",
|
|
35
|
+
"socket": "result"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "debug/log",
|
|
42
|
+
"id": "3",
|
|
43
|
+
"parameters": {
|
|
44
|
+
"text": {
|
|
45
|
+
"link": {
|
|
46
|
+
"nodeId": "2",
|
|
47
|
+
"socket": "result"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodes": [
|
|
3
|
-
{
|
|
4
|
-
"type": "lifecycle/onStart",
|
|
5
|
-
"id": "0",
|
|
6
|
-
"flows": {
|
|
7
|
-
"flow": {
|
|
8
|
-
"nodeId": "3",
|
|
9
|
-
"socket": "flow"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "math/toQuat/float",
|
|
15
|
-
"id": "1",
|
|
16
|
-
"parameters": {
|
|
17
|
-
"x": {
|
|
18
|
-
"value": 1
|
|
19
|
-
},
|
|
20
|
-
"y": {
|
|
21
|
-
"value": 0
|
|
22
|
-
},
|
|
23
|
-
"z": {
|
|
24
|
-
"value": 0
|
|
25
|
-
},
|
|
26
|
-
"w": {
|
|
27
|
-
"value": 0
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"type": "math/toString/quat",
|
|
33
|
-
"id": "2",
|
|
34
|
-
"parameters": {
|
|
35
|
-
"a": {
|
|
36
|
-
"link": {
|
|
37
|
-
"nodeId": "1",
|
|
38
|
-
"socket": "result"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"type": "debug/log",
|
|
45
|
-
"id": "3",
|
|
46
|
-
"parameters": {
|
|
47
|
-
"text": {
|
|
48
|
-
"link": {
|
|
49
|
-
"nodeId": "2",
|
|
50
|
-
"socket": "result"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
]
|
|
56
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"nodes": [
|
|
3
|
+
{
|
|
4
|
+
"type": "lifecycle/onStart",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"flows": {
|
|
7
|
+
"flow": {
|
|
8
|
+
"nodeId": "3",
|
|
9
|
+
"socket": "flow"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "math/toQuat/float",
|
|
15
|
+
"id": "1",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"x": {
|
|
18
|
+
"value": 1
|
|
19
|
+
},
|
|
20
|
+
"y": {
|
|
21
|
+
"value": 0
|
|
22
|
+
},
|
|
23
|
+
"z": {
|
|
24
|
+
"value": 0
|
|
25
|
+
},
|
|
26
|
+
"w": {
|
|
27
|
+
"value": 0
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "math/toString/quat",
|
|
33
|
+
"id": "2",
|
|
34
|
+
"parameters": {
|
|
35
|
+
"a": {
|
|
36
|
+
"link": {
|
|
37
|
+
"nodeId": "1",
|
|
38
|
+
"socket": "result"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "debug/log",
|
|
45
|
+
"id": "3",
|
|
46
|
+
"parameters": {
|
|
47
|
+
"text": {
|
|
48
|
+
"link": {
|
|
49
|
+
"nodeId": "2",
|
|
50
|
+
"socket": "result"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodes": [
|
|
3
|
-
{
|
|
4
|
-
"type": "lifecycle/onStart",
|
|
5
|
-
"id": "0",
|
|
6
|
-
"flows": {
|
|
7
|
-
"flow": {
|
|
8
|
-
"nodeId": "3",
|
|
9
|
-
"socket": "flow"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "math/toVec2/float",
|
|
15
|
-
"id": "1",
|
|
16
|
-
"parameters": {
|
|
17
|
-
"x": {
|
|
18
|
-
"value": 1
|
|
19
|
-
},
|
|
20
|
-
"y": {
|
|
21
|
-
"value": 0
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"type": "math/toString/vec2",
|
|
27
|
-
"id": "2",
|
|
28
|
-
"parameters": {
|
|
29
|
-
"a": {
|
|
30
|
-
"link": {
|
|
31
|
-
"nodeId": "1",
|
|
32
|
-
"socket": "result"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"type": "debug/log",
|
|
39
|
-
"id": "3",
|
|
40
|
-
"parameters": {
|
|
41
|
-
"text": {
|
|
42
|
-
"link": {
|
|
43
|
-
"nodeId": "2",
|
|
44
|
-
"socket": "result"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"nodes": [
|
|
3
|
+
{
|
|
4
|
+
"type": "lifecycle/onStart",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"flows": {
|
|
7
|
+
"flow": {
|
|
8
|
+
"nodeId": "3",
|
|
9
|
+
"socket": "flow"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "math/toVec2/float",
|
|
15
|
+
"id": "1",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"x": {
|
|
18
|
+
"value": 1
|
|
19
|
+
},
|
|
20
|
+
"y": {
|
|
21
|
+
"value": 0
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "math/toString/vec2",
|
|
27
|
+
"id": "2",
|
|
28
|
+
"parameters": {
|
|
29
|
+
"a": {
|
|
30
|
+
"link": {
|
|
31
|
+
"nodeId": "1",
|
|
32
|
+
"socket": "result"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "debug/log",
|
|
39
|
+
"id": "3",
|
|
40
|
+
"parameters": {
|
|
41
|
+
"text": {
|
|
42
|
+
"link": {
|
|
43
|
+
"nodeId": "2",
|
|
44
|
+
"socket": "result"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodes": [
|
|
3
|
-
{
|
|
4
|
-
"type": "lifecycle/onStart",
|
|
5
|
-
"id": "0",
|
|
6
|
-
"flows": {
|
|
7
|
-
"flow": {
|
|
8
|
-
"nodeId": "3",
|
|
9
|
-
"socket": "flow"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "math/toVec3/float",
|
|
15
|
-
"id": "1",
|
|
16
|
-
"parameters": {
|
|
17
|
-
"x": {
|
|
18
|
-
"value": 1
|
|
19
|
-
},
|
|
20
|
-
"y": {
|
|
21
|
-
"value": 0
|
|
22
|
-
},
|
|
23
|
-
"z": {
|
|
24
|
-
"value": 0
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"type": "math/toString/vec3",
|
|
30
|
-
"id": "2",
|
|
31
|
-
"parameters": {
|
|
32
|
-
"a": {
|
|
33
|
-
"link": {
|
|
34
|
-
"nodeId": "1",
|
|
35
|
-
"socket": "result"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"type": "debug/log",
|
|
42
|
-
"id": "3",
|
|
43
|
-
"parameters": {
|
|
44
|
-
"text": {
|
|
45
|
-
"link": {
|
|
46
|
-
"nodeId": "2",
|
|
47
|
-
"socket": "result"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
]
|
|
53
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"nodes": [
|
|
3
|
+
{
|
|
4
|
+
"type": "lifecycle/onStart",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"flows": {
|
|
7
|
+
"flow": {
|
|
8
|
+
"nodeId": "3",
|
|
9
|
+
"socket": "flow"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "math/toVec3/float",
|
|
15
|
+
"id": "1",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"x": {
|
|
18
|
+
"value": 1
|
|
19
|
+
},
|
|
20
|
+
"y": {
|
|
21
|
+
"value": 0
|
|
22
|
+
},
|
|
23
|
+
"z": {
|
|
24
|
+
"value": 0
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "math/toString/vec3",
|
|
30
|
+
"id": "2",
|
|
31
|
+
"parameters": {
|
|
32
|
+
"a": {
|
|
33
|
+
"link": {
|
|
34
|
+
"nodeId": "1",
|
|
35
|
+
"socket": "result"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "debug/log",
|
|
42
|
+
"id": "3",
|
|
43
|
+
"parameters": {
|
|
44
|
+
"text": {
|
|
45
|
+
"link": {
|
|
46
|
+
"nodeId": "2",
|
|
47
|
+
"socket": "result"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodes": [
|
|
3
|
-
{
|
|
4
|
-
"type": "lifecycle/onStart",
|
|
5
|
-
"id": "0",
|
|
6
|
-
"flows": {
|
|
7
|
-
"flow": {
|
|
8
|
-
"nodeId": "3",
|
|
9
|
-
"socket": "flow"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"type": "math/toVec4/float",
|
|
15
|
-
"id": "1",
|
|
16
|
-
"parameters": {
|
|
17
|
-
"x": {
|
|
18
|
-
"value": 1
|
|
19
|
-
},
|
|
20
|
-
"y": {
|
|
21
|
-
"value": 0
|
|
22
|
-
},
|
|
23
|
-
"z": {
|
|
24
|
-
"value": 0
|
|
25
|
-
},
|
|
26
|
-
"w": {
|
|
27
|
-
"value": 0
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"type": "math/toString/vec4",
|
|
33
|
-
"id": "2",
|
|
34
|
-
"parameters": {
|
|
35
|
-
"a": {
|
|
36
|
-
"link": {
|
|
37
|
-
"nodeId": "1",
|
|
38
|
-
"socket": "result"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"type": "debug/log",
|
|
45
|
-
"id": "3",
|
|
46
|
-
"parameters": {
|
|
47
|
-
"text": {
|
|
48
|
-
"link": {
|
|
49
|
-
"nodeId": "2",
|
|
50
|
-
"socket": "result"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
]
|
|
56
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"nodes": [
|
|
3
|
+
{
|
|
4
|
+
"type": "lifecycle/onStart",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"flows": {
|
|
7
|
+
"flow": {
|
|
8
|
+
"nodeId": "3",
|
|
9
|
+
"socket": "flow"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "math/toVec4/float",
|
|
15
|
+
"id": "1",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"x": {
|
|
18
|
+
"value": 1
|
|
19
|
+
},
|
|
20
|
+
"y": {
|
|
21
|
+
"value": 0
|
|
22
|
+
},
|
|
23
|
+
"z": {
|
|
24
|
+
"value": 0
|
|
25
|
+
},
|
|
26
|
+
"w": {
|
|
27
|
+
"value": 0
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "math/toString/vec4",
|
|
33
|
+
"id": "2",
|
|
34
|
+
"parameters": {
|
|
35
|
+
"a": {
|
|
36
|
+
"link": {
|
|
37
|
+
"nodeId": "1",
|
|
38
|
+
"socket": "result"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "debug/log",
|
|
45
|
+
"id": "3",
|
|
46
|
+
"parameters": {
|
|
47
|
+
"text": {
|
|
48
|
+
"link": {
|
|
49
|
+
"nodeId": "2",
|
|
50
|
+
"socket": "result"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ContributionKind,
|
|
3
|
+
parseManifest,
|
|
4
|
+
runManifestSource
|
|
5
|
+
} from '@kiberon-labs/behave-graph';
|
|
6
|
+
import manifestSource from '../src/manifest.source.js';
|
|
7
|
+
import { describe, test, expect } from 'vitest';
|
|
8
|
+
|
|
9
|
+
describe('scene package manifest', () => {
|
|
10
|
+
test('generates a valid manifest from the source (no IScene driver, no node exec)', async () => {
|
|
11
|
+
const manifest = await runManifestSource(manifestSource);
|
|
12
|
+
expect(parseManifest(manifest).ok).toBe(true);
|
|
13
|
+
expect(manifest.package.name).toBe('@kiberon-labs/behave-graph-scene');
|
|
14
|
+
expect(manifest.categories).toEqual(['effect']);
|
|
15
|
+
expect(manifest.runtime).toBe('./index.js');
|
|
16
|
+
expect(manifest.nodes.length).toBeGreaterThan(100);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('carries every scene value type with function-free JSON defaults', async () => {
|
|
20
|
+
const manifest = await runManifestSource(manifestSource);
|
|
21
|
+
const byName = Object.fromEntries(
|
|
22
|
+
manifest.values.map((v) => [v.name, v.defaultJSON])
|
|
23
|
+
);
|
|
24
|
+
expect(Object.keys(byName).sort()).toEqual([
|
|
25
|
+
'color',
|
|
26
|
+
'euler',
|
|
27
|
+
'mat3',
|
|
28
|
+
'mat4',
|
|
29
|
+
'quat',
|
|
30
|
+
'vec2',
|
|
31
|
+
'vec3',
|
|
32
|
+
'vec4'
|
|
33
|
+
]);
|
|
34
|
+
expect(byName.vec3).toEqual([0, 0, 0]);
|
|
35
|
+
// identity matrix
|
|
36
|
+
expect(byName.mat4).toEqual([
|
|
37
|
+
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1
|
|
38
|
+
]);
|
|
39
|
+
// No functions leak into the manifest.
|
|
40
|
+
manifest.values.forEach((v) =>
|
|
41
|
+
Object.values(v).forEach((field) =>
|
|
42
|
+
expect(typeof field).not.toBe('function')
|
|
43
|
+
)
|
|
44
|
+
);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test('declares the vec3 control and a value-type contribution per scene type', async () => {
|
|
48
|
+
const manifest = await runManifestSource(manifestSource);
|
|
49
|
+
const control = manifest.contributions.find(
|
|
50
|
+
(c) => c.kind === ContributionKind.Control
|
|
51
|
+
);
|
|
52
|
+
expect(control?.export).toBe('./ui/controls/vec3.js#Vec3Control');
|
|
53
|
+
expect(control?.bind?.controlName).toBe('vec3');
|
|
54
|
+
|
|
55
|
+
const valueTypeContribs = manifest.contributions.filter(
|
|
56
|
+
(c) => c.kind === ContributionKind.ValueType
|
|
57
|
+
);
|
|
58
|
+
expect(valueTypeContribs).toHaveLength(8);
|
|
59
|
+
// Every declared value-type contribution binds to a value the manifest carries.
|
|
60
|
+
const valueNames = new Set(manifest.values.map((v) => v.name));
|
|
61
|
+
valueTypeContribs.forEach((c) =>
|
|
62
|
+
expect(valueNames.has(c.bind?.valueType ?? '')).toBe(true)
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -9,17 +9,24 @@ import {
|
|
|
9
9
|
validateGraphLinks,
|
|
10
10
|
registerCoreProfile,
|
|
11
11
|
validateGraphAcyclic,
|
|
12
|
+
DefaultLogger,
|
|
13
|
+
ManualLifecycleEventEmitter,
|
|
12
14
|
type IRegistry,
|
|
13
15
|
type GraphInstance,
|
|
14
16
|
type GraphJSON
|
|
15
17
|
} from '@kiberon-labs/behave-graph';
|
|
16
18
|
import { registerSceneProfile } from '@/registerSceneProfile.js';
|
|
19
|
+
import { DummyScene } from '@/Abstractions/Drivers/DummyScene.js';
|
|
17
20
|
import { describe, test, expect } from 'vitest';
|
|
18
21
|
|
|
19
22
|
let registry: IRegistry = {
|
|
20
23
|
nodes: {},
|
|
21
24
|
values: {},
|
|
22
|
-
dependencies: {
|
|
25
|
+
dependencies: {
|
|
26
|
+
ILogger: new DefaultLogger(),
|
|
27
|
+
ILifecycleEventEmitter: new ManualLifecycleEventEmitter(),
|
|
28
|
+
IScene: new DummyScene()
|
|
29
|
+
}
|
|
23
30
|
};
|
|
24
31
|
registry = registerCoreProfile(registry);
|
|
25
32
|
registry = registerSceneProfile(registry);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
validateValueRegistry,
|
|
3
3
|
registerCoreProfile,
|
|
4
|
-
|
|
4
|
+
DefaultLogger,
|
|
5
|
+
ManualLifecycleEventEmitter,
|
|
5
6
|
type IRegistry
|
|
6
7
|
} from '@kiberon-labs/behave-graph';
|
|
7
8
|
|
|
8
9
|
import { registerSceneProfile } from '../src/registerSceneProfile.js';
|
|
10
|
+
import { DummyScene } from '../src/Abstractions/Drivers/DummyScene.js';
|
|
9
11
|
import { describe, test, expect } from 'vitest';
|
|
10
12
|
|
|
11
13
|
describe('scene profile', () => {
|
|
@@ -13,15 +15,14 @@ describe('scene profile', () => {
|
|
|
13
15
|
nodes: {},
|
|
14
16
|
values: {},
|
|
15
17
|
dependencies: {
|
|
16
|
-
|
|
18
|
+
ILogger: new DefaultLogger(),
|
|
19
|
+
ILifecycleEventEmitter: new ManualLifecycleEventEmitter(),
|
|
20
|
+
IScene: new DummyScene()
|
|
17
21
|
}
|
|
18
22
|
};
|
|
19
23
|
registry = registerCoreProfile(registry);
|
|
20
24
|
registry = registerSceneProfile(registry);
|
|
21
25
|
|
|
22
|
-
test('validate node registry', () => {
|
|
23
|
-
expect(validateNodeRegistry(registry)).toHaveLength(0);
|
|
24
|
-
});
|
|
25
26
|
test('validate value registry', () => {
|
|
26
27
|
expect(validateValueRegistry(registry.values)).toHaveLength(0);
|
|
27
28
|
});
|