@babylonjs/inspector 8.29.0-preview → 8.29.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.
@@ -1,230 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { M as MakeLazyComponent, b as SwitchPropertyLine, B as ButtonLine, N as NumberDropdownPropertyLine, C as Collapse, c as SyncedSliderPropertyLine, T as ToolsServiceIdentity } from './index-Bt4ndVv5.js';
3
- import { SceneSerializer } from '@babylonjs/core/Misc/sceneSerializer.js';
4
- import { Tools } from '@babylonjs/core/Misc/tools.js';
5
- import { EnvironmentTextureTools } from '@babylonjs/core/Misc/environmentTextureTools.js';
6
- import { Logger } from '@babylonjs/core/Misc/logger.js';
7
- import { useState, useCallback } from 'react';
8
- import { Mesh } from '@babylonjs/core/Meshes/mesh.js';
9
- import { Texture } from '@babylonjs/core/Materials/Textures/texture.js';
10
- import { Camera } from '@babylonjs/core/Cameras/camera.js';
11
- import { Light } from '@babylonjs/core/Lights/light.js';
12
- import { ArrowDownloadRegular } from '@fluentui/react-icons';
13
- import '@babylonjs/core/Maths/math.color.js';
14
- import '@babylonjs/core/Maths/math.vector.js';
15
- import '@babylonjs/core/Misc/observable.js';
16
- import '@fluentui/react-components';
17
- import '@fluentui/react-motion-components-preview';
18
- import '@babylonjs/core/Misc/typeStore.js';
19
- import 'usehooks-ts';
20
- import '@babylonjs/core/Misc/asyncLock.js';
21
- import '@babylonjs/core/Misc/deferred.js';
22
- import '@fluentui-contrib/react-virtualizer';
23
- import '@babylonjs/addons/msdfText/fontAsset.js';
24
- import '@babylonjs/addons/msdfText/textRenderer.js';
25
- import '@babylonjs/core/Debug/physicsViewer.js';
26
- import '@babylonjs/core/Materials/materialFlags.js';
27
- import '@babylonjs/core/Materials/standardMaterial.js';
28
- import '@babylonjs/core/Meshes/Builders/groundBuilder.js';
29
- import '@babylonjs/core/Rendering/utilityLayerRenderer.js';
30
- import '@babylonjs/materials/grid/gridMaterial.js';
31
- import '@babylonjs/core/Misc/dataStorage.js';
32
- import '@babylonjs/core/Instrumentation/engineInstrumentation.js';
33
- import '@babylonjs/core/Instrumentation/sceneInstrumentation.js';
34
- import '@babylonjs/core/Engines/AbstractEngine/abstractEngine.timeQuery.js';
35
- import '@babylonjs/core/Engines/Extensions/engine.query.js';
36
- import '@babylonjs/core/Engines/WebGPU/Extensions/engine.query.js';
37
- import '@babylonjs/core/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js';
38
- import '@babylonjs/core/Misc/pressureObserverWrapper.js';
39
- import '@babylonjs/core/Engines/abstractEngine.js';
40
- import '@babylonjs/core/Engines/engineStore.js';
41
- import 'react-dom/client';
42
- import '@babylonjs/core/FrameGraph/frameGraphUtils.js';
43
- import '@babylonjs/core/Gizmos/cameraGizmo.js';
44
- import '@babylonjs/core/Gizmos/lightGizmo.js';
45
- import '@babylonjs/core/Bones/bone.js';
46
- import '@babylonjs/core/Gizmos/gizmoManager.js';
47
- import '@babylonjs/core/Meshes/abstractMesh.js';
48
- import '@babylonjs/core/node.js';
49
- import '@babylonjs/core/Animations/animationGroup.js';
50
- import '@babylonjs/core/Animations/animationPropertiesOverride.js';
51
- import '@babylonjs/core/Cameras/arcRotateCamera.js';
52
- import '@babylonjs/core/Cameras/followCamera.js';
53
- import '@babylonjs/core/Cameras/freeCamera.js';
54
- import '@babylonjs/core/Cameras/targetCamera.js';
55
- import '@babylonjs/core/scene.js';
56
- import '@babylonjs/core/FrameGraph/frameGraph.js';
57
- import '@babylonjs/core/Lights/directionalLight.js';
58
- import '@babylonjs/core/Lights/hemisphericLight.js';
59
- import '@babylonjs/core/Lights/pointLight.js';
60
- import '@babylonjs/core/Lights/rectAreaLight.js';
61
- import '@babylonjs/core/Lights/shadowLight.js';
62
- import '@babylonjs/core/Lights/spotLight.js';
63
- import '@babylonjs/core/Lights/Shadows/cascadedShadowGenerator.js';
64
- import '@babylonjs/core/Lights/Shadows/shadowGenerator.js';
65
- import '@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js';
66
- import '@babylonjs/core/Materials/material.js';
67
- import '@babylonjs/core/Materials/multiMaterial.js';
68
- import '@babylonjs/core/Materials/PBR/pbrBaseMaterial.js';
69
- import '@babylonjs/core/Materials/PBR/pbrBaseSimpleMaterial.js';
70
- import '@babylonjs/core/Materials/PBR/pbrMaterial.js';
71
- import '@babylonjs/materials/sky/skyMaterial.js';
72
- import '@babylonjs/core/Engines/engine.js';
73
- import '@babylonjs/core/Engines/constants.js';
74
- import '@babylonjs/core/Particles/particleSystem.js';
75
- import '@babylonjs/core/Misc/fileTools.js';
76
- import '@babylonjs/core/Debug/skeletonViewer.js';
77
- import '@babylonjs/core/Meshes/buffer.js';
78
- import '@babylonjs/core/Meshes/Builders/linesBuilder.js';
79
- import '@babylonjs/core/Meshes/instancedMesh.js';
80
- import '@babylonjs/core/Rendering/renderingManager.js';
81
- import '@babylonjs/core/Rendering/edgesRenderer.js';
82
- import '@babylonjs/core/Rendering/outlineRenderer.js';
83
- import '@babylonjs/core/Misc/gradients.js';
84
- import '@babylonjs/core/Materials/Node/Blocks/gradientBlock.js';
85
- import '@babylonjs/core/Particles/attractor.js';
86
- import '@babylonjs/core/Meshes/Builders/sphereBuilder.js';
87
- import '@babylonjs/core/Meshes/transformNode.js';
88
- import '@babylonjs/core/Physics/v2/IPhysicsEnginePlugin.js';
89
- import '@babylonjs/core/Physics/v2/physicsEngineComponent.js';
90
- import '@babylonjs/core/PostProcesses/postProcess.js';
91
- import '@babylonjs/core/Materials/Textures/cubeTexture.js';
92
- import '@babylonjs/core/Materials/imageProcessingConfiguration.js';
93
- import '@babylonjs/core/Bones/skeleton.js';
94
- import '@babylonjs/core/Sprites/sprite.js';
95
- import '@babylonjs/core/Materials/Textures/baseTexture.js';
96
- import '@babylonjs/core/Materials/Textures/multiRenderTarget.js';
97
- import '@babylonjs/core/Materials/Textures/renderTargetTexture.js';
98
- import '@babylonjs/core/Materials/Textures/thinTexture.js';
99
- import '@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js';
100
- import '@babylonjs/core/Sprites/spriteSceneComponent.js';
101
- import '@babylonjs/core/Materials/Textures/dynamicTexture.js';
102
- import '@babylonjs/core/Events/pointerEvents.js';
103
- import '@babylonjs/addons/atmosphere/atmosphere.js';
104
-
105
- const EnvExportImageTypes = [
106
- { label: "PNG", value: 0, imageType: "image/png" },
107
- { label: "WebP", value: 1, imageType: "image/webp" },
108
- ];
109
- const ExportBabylonTools = ({ scene }) => {
110
- const [babylonExportOptions, setBabylonExportOptions] = useState({
111
- imageTypeIndex: 0,
112
- imageQuality: 0.8,
113
- iblDiffuse: false,
114
- });
115
- const exportBabylon = useCallback(async () => {
116
- const strScene = JSON.stringify(SceneSerializer.Serialize(scene));
117
- const blob = new Blob([strScene], { type: "octet/stream" });
118
- Tools.Download(blob, "scene.babylon");
119
- }, [scene]);
120
- const createEnvTexture = useCallback(async () => {
121
- if (!scene.environmentTexture) {
122
- return;
123
- }
124
- try {
125
- const buffer = await EnvironmentTextureTools.CreateEnvTextureAsync(scene.environmentTexture, {
126
- imageType: EnvExportImageTypes[babylonExportOptions.imageTypeIndex].imageType,
127
- imageQuality: babylonExportOptions.imageQuality,
128
- disableIrradianceTexture: !babylonExportOptions.iblDiffuse,
129
- });
130
- const blob = new Blob([buffer], { type: "octet/stream" });
131
- Tools.Download(blob, "environment.env");
132
- }
133
- catch (error) {
134
- Logger.Error(error);
135
- alert(error);
136
- }
137
- }, [scene, babylonExportOptions]);
138
- return (jsxs(Fragment, { children: [jsx(ButtonLine, { label: "Export to Babylon", icon: ArrowDownloadRegular, onClick: exportBabylon }), !scene.getEngine().premultipliedAlpha && scene.environmentTexture && scene.environmentTexture._prefiltered && scene.activeCamera && (jsxs(Fragment, { children: [jsx(ButtonLine, { label: "Generate .env texture", icon: ArrowDownloadRegular, onClick: createEnvTexture }), scene.environmentTexture.irradianceTexture && (jsx(SwitchPropertyLine, { label: "Diffuse Texture", description: "Export diffuse texture for IBL", value: babylonExportOptions.iblDiffuse, onChange: (value) => {
139
- setBabylonExportOptions((prev) => ({ ...prev, iblDiffuse: value }));
140
- } }, "iblDiffuse")), jsx(NumberDropdownPropertyLine, { label: "Image type", options: EnvExportImageTypes, value: babylonExportOptions.imageTypeIndex, onChange: (val) => {
141
- setBabylonExportOptions((prev) => ({ ...prev, imageTypeIndex: val }));
142
- } }), jsx(Collapse, { visible: babylonExportOptions.imageTypeIndex > 0, children: jsx(SyncedSliderPropertyLine, { label: "Quality", value: babylonExportOptions.imageQuality, onChange: (value) => setBabylonExportOptions((prev) => ({ ...prev, imageQuality: value })), min: 0, max: 1 }) })] }))] }));
143
- };
144
- const ExportGltfTools = MakeLazyComponent(async () => {
145
- // Defer importing anything from the serializers package until this component is actually mounted.
146
- const { GLTF2Export } = await import('@babylonjs/serializers/glTF/2.0/glTFSerializer.js');
147
- return (props) => {
148
- const [isExportingGltf, setIsExportingGltf] = useState(false);
149
- const [gltfExportOptions, setGltfExportOptions] = useState({
150
- exportDisabledNodes: false,
151
- exportSkyboxes: false,
152
- exportCameras: false,
153
- exportLights: false,
154
- });
155
- const exportGLTF = useCallback(async () => {
156
- setIsExportingGltf(true);
157
- const shouldExport = (node) => {
158
- if (!gltfExportOptions.exportDisabledNodes) {
159
- if (!node.isEnabled()) {
160
- return false;
161
- }
162
- }
163
- if (!gltfExportOptions.exportSkyboxes) {
164
- if (node instanceof Mesh) {
165
- if (node.material) {
166
- const material = node.material;
167
- const reflectionTexture = material.reflectionTexture;
168
- if (reflectionTexture && reflectionTexture.coordinatesMode === Texture.SKYBOX_MODE) {
169
- return false;
170
- }
171
- }
172
- }
173
- }
174
- if (!gltfExportOptions.exportCameras) {
175
- if (node instanceof Camera) {
176
- return false;
177
- }
178
- }
179
- if (!gltfExportOptions.exportLights) {
180
- if (node instanceof Light) {
181
- return false;
182
- }
183
- }
184
- return true;
185
- };
186
- try {
187
- const glb = await GLTF2Export.GLBAsync(props.scene, "scene", { shouldExportNode: (node) => shouldExport(node) });
188
- glb.downloadFiles();
189
- }
190
- catch (reason) {
191
- Logger.Error(`Failed to export GLB: ${reason}`);
192
- }
193
- finally {
194
- setIsExportingGltf(false);
195
- }
196
- }, [gltfExportOptions, props.scene]);
197
- return (jsxs(Fragment, { children: [jsx(SwitchPropertyLine, { label: "Export Disabled Nodes", description: "Whether to export nodes that are disabled in the scene.", value: gltfExportOptions.exportDisabledNodes, onChange: (checked) => setGltfExportOptions({ ...gltfExportOptions, exportDisabledNodes: checked }) }, "GLTFExportDisabledNodes"), jsx(SwitchPropertyLine, { label: "Export Skyboxes", description: "Whether to export skybox nodes in the scene.", value: gltfExportOptions.exportSkyboxes, onChange: (checked) => setGltfExportOptions({ ...gltfExportOptions, exportSkyboxes: checked }) }, "GLTFExportSkyboxes"), jsx(SwitchPropertyLine, { label: "Export Cameras", description: "Whether to export cameras in the scene.", value: gltfExportOptions.exportCameras, onChange: (checked) => setGltfExportOptions({ ...gltfExportOptions, exportCameras: checked }) }, "GLTFExportCameras"), jsx(SwitchPropertyLine, { label: "Export Lights", description: "Whether to export lights in the scene.", value: gltfExportOptions.exportLights, onChange: (checked) => setGltfExportOptions({ ...gltfExportOptions, exportLights: checked }) }, "GLTFExportLights"), jsx(ButtonLine, { label: "Export to GLB", icon: ArrowDownloadRegular, onClick: exportGLTF, disabled: isExportingGltf })] }));
198
- };
199
- });
200
-
201
- const ExportServiceDefinition = {
202
- friendlyName: "Export Tools",
203
- consumes: [ToolsServiceIdentity],
204
- factory: (toolsService) => {
205
- const contentRegistrations = [];
206
- // glTF export content
207
- contentRegistrations.push(toolsService.addSectionContent({
208
- key: "glTF Export",
209
- section: "glTF Export",
210
- component: ({ context }) => jsx(ExportGltfTools, { scene: context }),
211
- }));
212
- // Babylon export content
213
- contentRegistrations.push(toolsService.addSectionContent({
214
- key: "Babylon Export",
215
- section: "Babylon Export",
216
- component: ({ context }) => jsx(ExportBabylonTools, { scene: context }),
217
- }));
218
- return {
219
- dispose: () => {
220
- contentRegistrations.forEach((registration) => registration.dispose());
221
- },
222
- };
223
- },
224
- };
225
- var exportService = {
226
- serviceDefinitions: [ExportServiceDefinition],
227
- };
228
-
229
- export { ExportServiceDefinition, exportService as default };
230
- //# sourceMappingURL=exportService-n5-mIhJj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exportService-n5-mIhJj.js","sources":["../../../../../../../../dev/inspector-v2/src/components/tools/exportTools.tsx","../../../../../../../../dev/inspector-v2/src/services/panes/tools/exportService.tsx"],"sourcesContent":["import { NumberDropdownPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/dropdownPropertyLine\";\r\nimport { SceneSerializer } from \"core/Misc/sceneSerializer\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { EnvironmentTextureTools } from \"core/Misc/environmentTextureTools\";\r\nimport type { CubeTexture } from \"core/Materials/Textures/cubeTexture\";\r\nimport { Logger } from \"core/Misc/logger\";\r\nimport { useCallback, useState } from \"react\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { ButtonLine } from \"shared-ui-components/fluent/hoc/buttonLine\";\r\nimport { SyncedSliderPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/syncedSliderPropertyLine\";\r\nimport type { Node } from \"core/node\";\r\nimport { Mesh } from \"core/Meshes/mesh\";\r\nimport type { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport type { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport type { BackgroundMaterial } from \"core/Materials/Background/backgroundMaterial\";\r\nimport { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Camera } from \"core/Cameras/camera\";\r\nimport { Light } from \"core/Lights/light\";\r\nimport { SwitchPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/switchPropertyLine\";\r\n\r\nimport { MakeLazyComponent } from \"shared-ui-components/fluent/primitives/lazyComponent\";\r\nimport { Collapse } from \"shared-ui-components/fluent/primitives/collapse\";\r\nimport { ArrowDownloadRegular } from \"@fluentui/react-icons\";\r\n\r\nconst EnvExportImageTypes = [\r\n { label: \"PNG\", value: 0, imageType: \"image/png\" },\r\n { label: \"WebP\", value: 1, imageType: \"image/webp\" },\r\n] as const;\r\n\r\ninterface IBabylonExportOptionsState {\r\n imageTypeIndex: number;\r\n imageQuality: number;\r\n iblDiffuse: boolean;\r\n}\r\n\r\nexport const ExportBabylonTools: FunctionComponent<{ scene: Scene }> = ({ scene }) => {\r\n const [babylonExportOptions, setBabylonExportOptions] = useState<Readonly<IBabylonExportOptionsState>>({\r\n imageTypeIndex: 0,\r\n imageQuality: 0.8,\r\n iblDiffuse: false,\r\n });\r\n\r\n const exportBabylon = useCallback(async () => {\r\n const strScene = JSON.stringify(SceneSerializer.Serialize(scene));\r\n const blob = new Blob([strScene], { type: \"octet/stream\" });\r\n Tools.Download(blob, \"scene.babylon\");\r\n }, [scene]);\r\n\r\n const createEnvTexture = useCallback(async () => {\r\n if (!scene.environmentTexture) {\r\n return;\r\n }\r\n\r\n try {\r\n const buffer = await EnvironmentTextureTools.CreateEnvTextureAsync(scene.environmentTexture as CubeTexture, {\r\n imageType: EnvExportImageTypes[babylonExportOptions.imageTypeIndex].imageType,\r\n imageQuality: babylonExportOptions.imageQuality,\r\n disableIrradianceTexture: !babylonExportOptions.iblDiffuse,\r\n });\r\n const blob = new Blob([buffer], { type: \"octet/stream\" });\r\n Tools.Download(blob, \"environment.env\");\r\n } catch (error: any) {\r\n Logger.Error(error);\r\n alert(error);\r\n }\r\n }, [scene, babylonExportOptions]);\r\n\r\n return (\r\n <>\r\n <ButtonLine label=\"Export to Babylon\" icon={ArrowDownloadRegular} onClick={exportBabylon} />\r\n {!scene.getEngine().premultipliedAlpha && scene.environmentTexture && scene.environmentTexture._prefiltered && scene.activeCamera && (\r\n <>\r\n <ButtonLine label=\"Generate .env texture\" icon={ArrowDownloadRegular} onClick={createEnvTexture} />\r\n {scene.environmentTexture.irradianceTexture && (\r\n <SwitchPropertyLine\r\n key=\"iblDiffuse\"\r\n label=\"Diffuse Texture\"\r\n description=\"Export diffuse texture for IBL\"\r\n value={babylonExportOptions.iblDiffuse}\r\n onChange={(value: boolean) => {\r\n setBabylonExportOptions((prev) => ({ ...prev, iblDiffuse: value }));\r\n }}\r\n />\r\n )}\r\n <NumberDropdownPropertyLine\r\n label=\"Image type\"\r\n options={EnvExportImageTypes}\r\n value={babylonExportOptions.imageTypeIndex}\r\n onChange={(val) => {\r\n setBabylonExportOptions((prev) => ({ ...prev, imageTypeIndex: val as number }));\r\n }}\r\n />\r\n <Collapse visible={babylonExportOptions.imageTypeIndex > 0}>\r\n <SyncedSliderPropertyLine\r\n label=\"Quality\"\r\n value={babylonExportOptions.imageQuality}\r\n onChange={(value) => setBabylonExportOptions((prev) => ({ ...prev, imageQuality: value }))}\r\n min={0}\r\n max={1}\r\n />\r\n </Collapse>\r\n </>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\ninterface IGltfExportOptionsState {\r\n exportDisabledNodes: boolean;\r\n exportSkyboxes: boolean;\r\n exportCameras: boolean;\r\n exportLights: boolean;\r\n}\r\n\r\nexport const ExportGltfTools = MakeLazyComponent(async () => {\r\n // Defer importing anything from the serializers package until this component is actually mounted.\r\n const { GLTF2Export } = await import(\"serializers/glTF/2.0/glTFSerializer\");\r\n\r\n return (props: { scene: Scene }) => {\r\n const [isExportingGltf, setIsExportingGltf] = useState(false);\r\n const [gltfExportOptions, setGltfExportOptions] = useState<Readonly<IGltfExportOptionsState>>({\r\n exportDisabledNodes: false,\r\n exportSkyboxes: false,\r\n exportCameras: false,\r\n exportLights: false,\r\n });\r\n\r\n const exportGLTF = useCallback(async () => {\r\n setIsExportingGltf(true);\r\n\r\n const shouldExport = (node: Node): boolean => {\r\n if (!gltfExportOptions.exportDisabledNodes) {\r\n if (!node.isEnabled()) {\r\n return false;\r\n }\r\n }\r\n\r\n if (!gltfExportOptions.exportSkyboxes) {\r\n if (node instanceof Mesh) {\r\n if (node.material) {\r\n const material = node.material as PBRMaterial | StandardMaterial | BackgroundMaterial;\r\n const reflectionTexture = material.reflectionTexture;\r\n if (reflectionTexture && reflectionTexture.coordinatesMode === Texture.SKYBOX_MODE) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!gltfExportOptions.exportCameras) {\r\n if (node instanceof Camera) {\r\n return false;\r\n }\r\n }\r\n\r\n if (!gltfExportOptions.exportLights) {\r\n if (node instanceof Light) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n try {\r\n const glb = await GLTF2Export.GLBAsync(props.scene, \"scene\", { shouldExportNode: (node) => shouldExport(node) });\r\n glb.downloadFiles();\r\n } catch (reason) {\r\n Logger.Error(`Failed to export GLB: ${reason}`);\r\n } finally {\r\n setIsExportingGltf(false);\r\n }\r\n }, [gltfExportOptions, props.scene]);\r\n\r\n return (\r\n <>\r\n <SwitchPropertyLine\r\n key=\"GLTFExportDisabledNodes\"\r\n label=\"Export Disabled Nodes\"\r\n description=\"Whether to export nodes that are disabled in the scene.\"\r\n value={gltfExportOptions.exportDisabledNodes}\r\n onChange={(checked: boolean) => setGltfExportOptions({ ...gltfExportOptions, exportDisabledNodes: checked })}\r\n />\r\n <SwitchPropertyLine\r\n key=\"GLTFExportSkyboxes\"\r\n label=\"Export Skyboxes\"\r\n description=\"Whether to export skybox nodes in the scene.\"\r\n value={gltfExportOptions.exportSkyboxes}\r\n onChange={(checked: boolean) => setGltfExportOptions({ ...gltfExportOptions, exportSkyboxes: checked })}\r\n />\r\n <SwitchPropertyLine\r\n key=\"GLTFExportCameras\"\r\n label=\"Export Cameras\"\r\n description=\"Whether to export cameras in the scene.\"\r\n value={gltfExportOptions.exportCameras}\r\n onChange={(checked: boolean) => setGltfExportOptions({ ...gltfExportOptions, exportCameras: checked })}\r\n />\r\n <SwitchPropertyLine\r\n key=\"GLTFExportLights\"\r\n label=\"Export Lights\"\r\n description=\"Whether to export lights in the scene.\"\r\n value={gltfExportOptions.exportLights}\r\n onChange={(checked: boolean) => setGltfExportOptions({ ...gltfExportOptions, exportLights: checked })}\r\n />\r\n <ButtonLine label=\"Export to GLB\" icon={ArrowDownloadRegular} onClick={exportGLTF} disabled={isExportingGltf} />\r\n </>\r\n );\r\n };\r\n});\r\n","import type { ServiceDefinition } from \"../../../modularity/serviceDefinition\";\r\nimport { ToolsServiceIdentity } from \"../toolsService\";\r\nimport type { IToolsService } from \"../toolsService\";\r\nimport type { IDisposable } from \"core/scene\";\r\nimport { ExportBabylonTools, ExportGltfTools } from \"../../../components/tools/exportTools\";\r\n\r\nexport const ExportServiceDefinition: ServiceDefinition<[], [IToolsService]> = {\r\n friendlyName: \"Export Tools\",\r\n consumes: [ToolsServiceIdentity],\r\n factory: (toolsService) => {\r\n const contentRegistrations: IDisposable[] = [];\r\n\r\n // glTF export content\r\n contentRegistrations.push(\r\n toolsService.addSectionContent({\r\n key: \"glTF Export\",\r\n section: \"glTF Export\",\r\n component: ({ context }) => <ExportGltfTools scene={context} />,\r\n })\r\n );\r\n\r\n // Babylon export content\r\n contentRegistrations.push(\r\n toolsService.addSectionContent({\r\n key: \"Babylon Export\",\r\n section: \"Babylon Export\",\r\n component: ({ context }) => <ExportBabylonTools scene={context} />,\r\n })\r\n );\r\n\r\n return {\r\n dispose: () => {\r\n contentRegistrations.forEach((registration) => registration.dispose());\r\n },\r\n };\r\n },\r\n};\r\n\r\nexport default {\r\n serviceDefinitions: [ExportServiceDefinition],\r\n} as const;\r\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1,166 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { F as FileUploadLine, b as SwitchPropertyLine, C as Collapse, N as NumberDropdownPropertyLine, T as ToolsServiceIdentity } from './index-Bt4ndVv5.js';
3
- import { useState } from 'react';
4
- import { ImportAnimationsAsync } from '@babylonjs/core/Loading/sceneLoader.js';
5
- import { FilesInput } from '@babylonjs/core/Misc/filesInput.js';
6
- import { Logger } from '@babylonjs/core/Misc/logger.js';
7
- import '@babylonjs/core/Maths/math.color.js';
8
- import '@babylonjs/core/Maths/math.vector.js';
9
- import '@babylonjs/core/Misc/observable.js';
10
- import '@fluentui/react-components';
11
- import '@fluentui/react-icons';
12
- import '@fluentui/react-motion-components-preview';
13
- import '@babylonjs/core/Misc/typeStore.js';
14
- import 'usehooks-ts';
15
- import '@babylonjs/core/Misc/asyncLock.js';
16
- import '@babylonjs/core/Misc/deferred.js';
17
- import '@fluentui-contrib/react-virtualizer';
18
- import '@babylonjs/addons/msdfText/fontAsset.js';
19
- import '@babylonjs/addons/msdfText/textRenderer.js';
20
- import '@babylonjs/core/Debug/physicsViewer.js';
21
- import '@babylonjs/core/Materials/Textures/texture.js';
22
- import '@babylonjs/core/Materials/materialFlags.js';
23
- import '@babylonjs/core/Materials/standardMaterial.js';
24
- import '@babylonjs/core/Meshes/Builders/groundBuilder.js';
25
- import '@babylonjs/core/Misc/tools.js';
26
- import '@babylonjs/core/Rendering/utilityLayerRenderer.js';
27
- import '@babylonjs/materials/grid/gridMaterial.js';
28
- import '@babylonjs/core/Misc/dataStorage.js';
29
- import '@babylonjs/core/Instrumentation/engineInstrumentation.js';
30
- import '@babylonjs/core/Instrumentation/sceneInstrumentation.js';
31
- import '@babylonjs/core/Engines/AbstractEngine/abstractEngine.timeQuery.js';
32
- import '@babylonjs/core/Engines/Extensions/engine.query.js';
33
- import '@babylonjs/core/Engines/WebGPU/Extensions/engine.query.js';
34
- import '@babylonjs/core/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js';
35
- import '@babylonjs/core/Misc/pressureObserverWrapper.js';
36
- import '@babylonjs/core/Engines/abstractEngine.js';
37
- import '@babylonjs/core/Engines/engineStore.js';
38
- import 'react-dom/client';
39
- import '@babylonjs/core/FrameGraph/frameGraphUtils.js';
40
- import '@babylonjs/core/Gizmos/cameraGizmo.js';
41
- import '@babylonjs/core/Gizmos/lightGizmo.js';
42
- import '@babylonjs/core/Bones/bone.js';
43
- import '@babylonjs/core/Cameras/camera.js';
44
- import '@babylonjs/core/Gizmos/gizmoManager.js';
45
- import '@babylonjs/core/Lights/light.js';
46
- import '@babylonjs/core/Meshes/abstractMesh.js';
47
- import '@babylonjs/core/node.js';
48
- import '@babylonjs/core/Animations/animationGroup.js';
49
- import '@babylonjs/core/Animations/animationPropertiesOverride.js';
50
- import '@babylonjs/core/Cameras/arcRotateCamera.js';
51
- import '@babylonjs/core/Cameras/followCamera.js';
52
- import '@babylonjs/core/Cameras/freeCamera.js';
53
- import '@babylonjs/core/Cameras/targetCamera.js';
54
- import '@babylonjs/core/scene.js';
55
- import '@babylonjs/core/FrameGraph/frameGraph.js';
56
- import '@babylonjs/core/Lights/directionalLight.js';
57
- import '@babylonjs/core/Lights/hemisphericLight.js';
58
- import '@babylonjs/core/Lights/pointLight.js';
59
- import '@babylonjs/core/Lights/rectAreaLight.js';
60
- import '@babylonjs/core/Lights/shadowLight.js';
61
- import '@babylonjs/core/Lights/spotLight.js';
62
- import '@babylonjs/core/Lights/Shadows/cascadedShadowGenerator.js';
63
- import '@babylonjs/core/Lights/Shadows/shadowGenerator.js';
64
- import '@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js';
65
- import '@babylonjs/core/Materials/material.js';
66
- import '@babylonjs/core/Materials/multiMaterial.js';
67
- import '@babylonjs/core/Materials/PBR/pbrBaseMaterial.js';
68
- import '@babylonjs/core/Materials/PBR/pbrBaseSimpleMaterial.js';
69
- import '@babylonjs/core/Materials/PBR/pbrMaterial.js';
70
- import '@babylonjs/materials/sky/skyMaterial.js';
71
- import '@babylonjs/core/Engines/engine.js';
72
- import '@babylonjs/core/Engines/constants.js';
73
- import '@babylonjs/core/Particles/particleSystem.js';
74
- import '@babylonjs/core/Misc/fileTools.js';
75
- import '@babylonjs/core/Meshes/mesh.js';
76
- import '@babylonjs/core/Debug/skeletonViewer.js';
77
- import '@babylonjs/core/Meshes/buffer.js';
78
- import '@babylonjs/core/Meshes/Builders/linesBuilder.js';
79
- import '@babylonjs/core/Meshes/instancedMesh.js';
80
- import '@babylonjs/core/Rendering/renderingManager.js';
81
- import '@babylonjs/core/Rendering/edgesRenderer.js';
82
- import '@babylonjs/core/Rendering/outlineRenderer.js';
83
- import '@babylonjs/core/Misc/gradients.js';
84
- import '@babylonjs/core/Materials/Node/Blocks/gradientBlock.js';
85
- import '@babylonjs/core/Particles/attractor.js';
86
- import '@babylonjs/core/Meshes/Builders/sphereBuilder.js';
87
- import '@babylonjs/core/Meshes/transformNode.js';
88
- import '@babylonjs/core/Physics/v2/IPhysicsEnginePlugin.js';
89
- import '@babylonjs/core/Physics/v2/physicsEngineComponent.js';
90
- import '@babylonjs/core/PostProcesses/postProcess.js';
91
- import '@babylonjs/core/Materials/Textures/cubeTexture.js';
92
- import '@babylonjs/core/Materials/imageProcessingConfiguration.js';
93
- import '@babylonjs/core/Bones/skeleton.js';
94
- import '@babylonjs/core/Sprites/sprite.js';
95
- import '@babylonjs/core/Materials/Textures/baseTexture.js';
96
- import '@babylonjs/core/Materials/Textures/multiRenderTarget.js';
97
- import '@babylonjs/core/Materials/Textures/renderTargetTexture.js';
98
- import '@babylonjs/core/Materials/Textures/thinTexture.js';
99
- import '@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js';
100
- import '@babylonjs/core/Sprites/spriteSceneComponent.js';
101
- import '@babylonjs/core/Materials/Textures/dynamicTexture.js';
102
- import '@babylonjs/core/Events/pointerEvents.js';
103
- import '@babylonjs/addons/atmosphere/atmosphere.js';
104
-
105
- const AnimationGroupLoadingModes = [
106
- { label: "Clean", value: 0 /* SceneLoaderAnimationGroupLoadingMode.Clean */ },
107
- { label: "Stop", value: 1 /* SceneLoaderAnimationGroupLoadingMode.Stop */ },
108
- { label: "Sync", value: 2 /* SceneLoaderAnimationGroupLoadingMode.Sync */ },
109
- { label: "NoSync", value: 3 /* SceneLoaderAnimationGroupLoadingMode.NoSync */ },
110
- ];
111
- const ImportAnimationsTools = ({ scene }) => {
112
- const [importDefaults, setImportDefaults] = useState({
113
- overwriteAnimations: true,
114
- animationGroupLoadingMode: 0 /* SceneLoaderAnimationGroupLoadingMode.Clean */,
115
- });
116
- const importAnimations = (event) => {
117
- const reloadAsync = async function (sceneFile) {
118
- if (sceneFile) {
119
- try {
120
- await ImportAnimationsAsync(sceneFile, scene, {
121
- overwriteAnimations: importDefaults.overwriteAnimations,
122
- animationGroupLoadingMode: importDefaults.animationGroupLoadingMode,
123
- });
124
- if (scene.animationGroups.length > 0) {
125
- const currentGroup = scene.animationGroups[0];
126
- currentGroup.play(true);
127
- }
128
- }
129
- catch (error) {
130
- Logger.Error(`Error importing animations: ${error}`);
131
- }
132
- }
133
- };
134
- const filesInputAnimation = new FilesInput(scene.getEngine(), scene, null, null, null, null, null, reloadAsync, null);
135
- filesInputAnimation.loadFiles(event);
136
- filesInputAnimation.dispose();
137
- };
138
- return (jsxs(Fragment, { children: [jsx(FileUploadLine, { label: "Import Animations", accept: "gltf", onClick: (evt) => importAnimations(evt) }), jsx(SwitchPropertyLine, { label: "Overwrite Animations", value: importDefaults.overwriteAnimations, onChange: (value) => {
139
- setImportDefaults({ ...importDefaults, overwriteAnimations: value });
140
- } }), jsx(Collapse, { visible: !importDefaults.overwriteAnimations, children: jsx(NumberDropdownPropertyLine, { label: "Animation Merge Mode", options: AnimationGroupLoadingModes, value: importDefaults.animationGroupLoadingMode, onChange: (value) => {
141
- setImportDefaults({ ...importDefaults, animationGroupLoadingMode: value });
142
- } }) })] }));
143
- };
144
-
145
- const SceneImportServiceDefinition = {
146
- friendlyName: "Import Tool",
147
- consumes: [ToolsServiceIdentity],
148
- factory: (toolsService) => {
149
- const contentRegistration = toolsService.addSectionContent({
150
- key: "AnimationImport",
151
- section: "Animation Import",
152
- component: ({ context }) => jsx(ImportAnimationsTools, { scene: context }),
153
- });
154
- return {
155
- dispose: () => {
156
- contentRegistration.dispose();
157
- },
158
- };
159
- },
160
- };
161
- var importService = {
162
- serviceDefinitions: [SceneImportServiceDefinition],
163
- };
164
-
165
- export { SceneImportServiceDefinition, importService as default };
166
- //# sourceMappingURL=importService-B-XgHjs9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"importService-B-XgHjs9.js","sources":["../../../../../../../../dev/inspector-v2/src/components/tools/importTools.tsx","../../../../../../../../dev/inspector-v2/src/services/panes/tools/importService.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport type { Scene } from \"core/scene\";\r\nimport type { DropdownOption } from \"shared-ui-components/fluent/primitives/dropdown\";\r\nimport { ImportAnimationsAsync, SceneLoaderAnimationGroupLoadingMode } from \"core/Loading/sceneLoader\";\r\nimport { FilesInput } from \"core/Misc/filesInput\";\r\nimport { Logger } from \"core/Misc/logger\";\r\nimport { SwitchPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/switchPropertyLine\";\r\nimport { NumberDropdownPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/dropdownPropertyLine\";\r\nimport { FileUploadLine } from \"shared-ui-components/fluent/hoc/fileUploadLine\";\r\nimport { Collapse } from \"shared-ui-components/fluent/primitives/collapse\";\r\n\r\nconst AnimationGroupLoadingModes = [\r\n { label: \"Clean\", value: SceneLoaderAnimationGroupLoadingMode.Clean },\r\n { label: \"Stop\", value: SceneLoaderAnimationGroupLoadingMode.Stop },\r\n { label: \"Sync\", value: SceneLoaderAnimationGroupLoadingMode.Sync },\r\n { label: \"NoSync\", value: SceneLoaderAnimationGroupLoadingMode.NoSync },\r\n] as const satisfies DropdownOption<number>[];\r\n\r\nexport const ImportAnimationsTools: FunctionComponent<{ scene: Scene }> = ({ scene }) => {\r\n const [importDefaults, setImportDefaults] = useState({\r\n overwriteAnimations: true,\r\n animationGroupLoadingMode: SceneLoaderAnimationGroupLoadingMode.Clean,\r\n });\r\n\r\n const importAnimations = (event: FileList) => {\r\n const reloadAsync = async function (sceneFile: File) {\r\n if (sceneFile) {\r\n try {\r\n await ImportAnimationsAsync(sceneFile, scene, {\r\n overwriteAnimations: importDefaults.overwriteAnimations,\r\n animationGroupLoadingMode: importDefaults.animationGroupLoadingMode,\r\n });\r\n\r\n if (scene.animationGroups.length > 0) {\r\n const currentGroup = scene.animationGroups[0];\r\n currentGroup.play(true);\r\n }\r\n } catch (error) {\r\n Logger.Error(`Error importing animations: ${error}`);\r\n }\r\n }\r\n };\r\n\r\n const filesInputAnimation = new FilesInput(scene.getEngine(), scene, null, null, null, null, null, reloadAsync, null);\r\n filesInputAnimation.loadFiles(event);\r\n filesInputAnimation.dispose();\r\n };\r\n\r\n return (\r\n <>\r\n <FileUploadLine label=\"Import Animations\" accept=\"gltf\" onClick={(evt: FileList) => importAnimations(evt)} />\r\n <SwitchPropertyLine\r\n label=\"Overwrite Animations\"\r\n value={importDefaults.overwriteAnimations}\r\n onChange={(value) => {\r\n setImportDefaults({ ...importDefaults, overwriteAnimations: value });\r\n }}\r\n />\r\n <Collapse visible={!importDefaults.overwriteAnimations}>\r\n <NumberDropdownPropertyLine\r\n label=\"Animation Merge Mode\"\r\n options={AnimationGroupLoadingModes}\r\n value={importDefaults.animationGroupLoadingMode}\r\n onChange={(value) => {\r\n setImportDefaults({ ...importDefaults, animationGroupLoadingMode: value });\r\n }}\r\n />\r\n </Collapse>\r\n </>\r\n );\r\n};\r\n","import type { ServiceDefinition } from \"../../../modularity/serviceDefinition\";\r\nimport { ToolsServiceIdentity } from \"../toolsService\";\r\nimport type { IToolsService } from \"../toolsService\";\r\nimport { ImportAnimationsTools } from \"../../../components/tools/importTools\";\r\n\r\nexport const SceneImportServiceDefinition: ServiceDefinition<[], [IToolsService]> = {\r\n friendlyName: \"Import Tool\",\r\n consumes: [ToolsServiceIdentity],\r\n factory: (toolsService) => {\r\n const contentRegistration = toolsService.addSectionContent({\r\n key: \"AnimationImport\",\r\n section: \"Animation Import\",\r\n component: ({ context }) => <ImportAnimationsTools scene={context} />,\r\n });\r\n\r\n return {\r\n dispose: () => {\r\n contentRegistration.dispose();\r\n },\r\n };\r\n },\r\n};\r\n\r\nexport default {\r\n serviceDefinitions: [SceneImportServiceDefinition],\r\n} as const;\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}