@babylonjs/inspector 8.41.2-preview → 8.42.0-preview

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/lib/index.d.ts CHANGED
@@ -1259,12 +1259,17 @@ declare const Accordion: ForwardRefExoticComponent<AccordionProps & {
1259
1259
  } & RefAttributes<HTMLDivElement>>;
1260
1260
 
1261
1261
  type ButtonProps = BasePrimitiveProps & {
1262
- onClick: () => void;
1262
+ onClick?: () => void;
1263
1263
  icon?: FluentIcon;
1264
1264
  appearance?: "subtle" | "transparent" | "primary";
1265
1265
  label?: string;
1266
1266
  };
1267
- declare const Button: FunctionComponent<ButtonProps>;
1267
+ declare const Button: react.ForwardRefExoticComponent<BasePrimitiveProps & {
1268
+ onClick?: () => void;
1269
+ icon?: FluentIcon;
1270
+ appearance?: "subtle" | "transparent" | "primary";
1271
+ label?: string;
1272
+ } & react.RefAttributes<HTMLButtonElement>>;
1268
1273
 
1269
1274
  /**
1270
1275
  * This is a primitive fluent checkbox that can both read and write checked state
@@ -2814,10 +2819,12 @@ type InputHsvFieldProps = PrimitiveProps<Color3 | Color4> & {
2814
2819
  */
2815
2820
  declare const InputHsvField: FunctionComponent<InputHsvFieldProps>;
2816
2821
 
2817
- type ComboBoxProps = {
2822
+ type ComboBoxProps = PrimitiveProps<string> & {
2818
2823
  label: string;
2819
- value: string[];
2820
- onChange: (value: string) => void;
2824
+ /**
2825
+ * The list of options to display
2826
+ */
2827
+ options: string[];
2821
2828
  };
2822
2829
  /**
2823
2830
  * Wrapper around a Fluent ComboBox that allows for filtering options
@@ -31007,7 +31014,7 @@ interface IEffectLayerOptions {
31007
31014
  */
31008
31015
  declare abstract class EffectLayer {
31009
31016
  private _effectLayerOptions;
31010
- private _mainTextureCreatedSize;
31017
+ protected _mainTextureCreatedSize: ISize;
31011
31018
  protected _scene: Scene;
31012
31019
  protected _engine: AbstractEngine;
31013
31020
  protected _maxSize: number;
@@ -72236,6 +72243,11 @@ type FileUploadLineProps = Omit<ButtonProps, "onClick" | "label"> & {
72236
72243
  label: string;
72237
72244
  accept: string;
72238
72245
  };
72246
+ /**
72247
+ * A full-width line with an upload button.
72248
+ * For just the button without the line wrapper, use UploadButton directly.
72249
+ * @returns An UploadButton wrapped in a LineContainer
72250
+ */
72239
72251
  declare const FileUploadLine: FunctionComponent<FileUploadLineProps>;
72240
72252
 
72241
72253
  type GradientListProps<T extends FactorGradient | Color3Gradient | ColorGradient> = {
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { A as Accordion, h as AccordionSection, q as AttachDebugLayer, aE as BooleanBadgePropertyLine, t as BoundProperty, w as BuiltInsExtensionFeed, b as Button, B as ButtonLine, ab as Checkbox, e as CheckboxPropertyLine, C as Collapse, al as Color3GradientComponent, aB as Color3GradientList, aF as Color3PropertyLine, am as Color4GradientComponent, aC as Color4GradientList, aG as Color4PropertyLine, ac as ColorPickerPopup, an as ColorStepGradientComponent, af as ComboBox, a6 as ConstructorFactory, p as ConvertOptions, D as DebugServiceIdentity, r as DetachDebugLayer, ag as DraggableLine, ah as Dropdown, E as ExtensibleAccordion, ak as FactorGradientComponent, aA as FactorGradientList, F as FileUploadLine, a2 as GetPropertyDescriptor, aH as HexPropertyLine, ao as InfoLabel, ad as InputHexField, ae as InputHsvField, I as Inspector, a1 as InterceptFunction, a4 as InterceptProperty, a3 as IsPropertyReadonly, aL as LineContainer, L as Link, aJ as LinkPropertyLine, v as LinkToEntityPropertyLine, ap as List, a0 as MakeDialogTeachingMoment, M as MakeLazyComponent, j as MakePopoverTeachingMoment, J as MakePropertyHook, $ as MakeTeachingMoment, aq as MessageBar, ai as NumberDropdown, N as NumberDropdownPropertyLine, aI as NumberInputPropertyLine, a5 as ObservableCollection, aD as Pane, aM as PlaceholderPropertyLine, ar as PositionedPopover, P as PropertiesServiceIdentity, aK as PropertyLine, aR as QuaternionPropertyLine, aQ as RotationVectorPropertyLine, g as SceneContextIdentity, m as SceneExplorerServiceIdentity, as as SearchBar, at as SearchBox, a8 as SelectionServiceDefinition, a7 as SelectionServiceIdentity, a9 as SettingsContextIdentity, n as SettingsServiceIdentity, f as ShellServiceIdentity, aa as ShowInspector, l as SidePaneContainer, au as SpinButton, d as SpinButtonPropertyLine, o as StatsServiceIdentity, aj as StringDropdown, s as StringDropdownPropertyLine, aN as StringifiedPropertyLine, av as Switch, S as SwitchPropertyLine, aw as SyncedSliderInput, a as SyncedSliderPropertyLine, k as TeachingMoment, aO as TextAreaPropertyLine, ay as TextInput, c as TextInputPropertyLine, aP as TextPropertyLine, ax as Textarea, az as ToggleButton, T as ToolsServiceIdentity, aS as Vector2PropertyLine, V as Vector3PropertyLine, aT as Vector4PropertyLine, _ as useAngleConverters, X as useAsyncResource, z as useColor3Property, G as useColor4Property, Y as useCompactMode, O as useEventfulState, K as useInterceptObservable, Q as useObservableCollection, u as useObservableState, R as useOrderedObservableCollection, U as usePollingObservable, x as useProperty, H as useQuaternionProperty, W as useResource, Z as useSidePaneDockOverrides, y as useVector3Property } from './index-BUtV9Nch.js';
1
+ export { A as Accordion, h as AccordionSection, r as AttachDebugLayer, aF as BooleanBadgePropertyLine, v as BoundProperty, x as BuiltInsExtensionFeed, b as Button, B as ButtonLine, ac as Checkbox, e as CheckboxPropertyLine, C as Collapse, am as Color3GradientComponent, aC as Color3GradientList, aG as Color3PropertyLine, an as Color4GradientComponent, aD as Color4GradientList, aH as Color4PropertyLine, ad as ColorPickerPopup, ao as ColorStepGradientComponent, ag as ComboBox, a7 as ConstructorFactory, q as ConvertOptions, D as DebugServiceIdentity, s as DetachDebugLayer, ah as DraggableLine, ai as Dropdown, E as ExtensibleAccordion, al as FactorGradientComponent, aB as FactorGradientList, F as FileUploadLine, a3 as GetPropertyDescriptor, aI as HexPropertyLine, ap as InfoLabel, ae as InputHexField, af as InputHsvField, I as Inspector, a2 as InterceptFunction, a5 as InterceptProperty, a4 as IsPropertyReadonly, aM as LineContainer, L as Link, aK as LinkPropertyLine, w as LinkToEntityPropertyLine, aq as List, a1 as MakeDialogTeachingMoment, M as MakeLazyComponent, j as MakePopoverTeachingMoment, K as MakePropertyHook, a0 as MakeTeachingMoment, ar as MessageBar, aj as NumberDropdown, N as NumberDropdownPropertyLine, aJ as NumberInputPropertyLine, a6 as ObservableCollection, aE as Pane, aN as PlaceholderPropertyLine, as as PositionedPopover, m as PropertiesServiceIdentity, aL as PropertyLine, aS as QuaternionPropertyLine, aR as RotationVectorPropertyLine, g as SceneContextIdentity, n as SceneExplorerServiceIdentity, at as SearchBar, au as SearchBox, a9 as SelectionServiceDefinition, a8 as SelectionServiceIdentity, aa as SettingsContextIdentity, o as SettingsServiceIdentity, f as ShellServiceIdentity, ab as ShowInspector, l as SidePaneContainer, av as SpinButton, d as SpinButtonPropertyLine, p as StatsServiceIdentity, ak as StringDropdown, t as StringDropdownPropertyLine, aO as StringifiedPropertyLine, aw as Switch, S as SwitchPropertyLine, ax as SyncedSliderInput, a as SyncedSliderPropertyLine, k as TeachingMoment, aP as TextAreaPropertyLine, az as TextInput, c as TextInputPropertyLine, aQ as TextPropertyLine, ay as Textarea, aA as ToggleButton, T as ToolsServiceIdentity, aT as Vector2PropertyLine, V as Vector3PropertyLine, aU as Vector4PropertyLine, $ as useAngleConverters, Y as useAsyncResource, G as useColor3Property, H as useColor4Property, Z as useCompactMode, Q as useEventfulState, O as useInterceptObservable, R as useObservableCollection, u as useObservableState, U as useOrderedObservableCollection, W as usePollingObservable, y as useProperty, J as useQuaternionProperty, X as useResource, _ as useSidePaneDockOverrides, z as useVector3Property } from './index-BgzFAhky.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '@babylonjs/core/Maths/math.color.js';
@@ -73,6 +73,7 @@ import '@babylonjs/core/Engines/constants.js';
73
73
  import '@babylonjs/core/Engines/engine.js';
74
74
  import '@babylonjs/core/Particles/particleSystem.js';
75
75
  import '@babylonjs/core/Misc/fileTools.js';
76
+ import '@babylonjs/core/Materials/Textures/cubeTexture.js';
76
77
  import '@babylonjs/core/Meshes/mesh.js';
77
78
  import '@babylonjs/core/Debug/skeletonViewer.js';
78
79
  import '@babylonjs/core/Meshes/buffer.js';
@@ -90,16 +91,15 @@ import '@babylonjs/core/Meshes/transformNode.js';
90
91
  import '@babylonjs/core/Physics/v2/IPhysicsEnginePlugin.js';
91
92
  import '@babylonjs/core/Physics/v2/physicsEngineComponent.js';
92
93
  import '@babylonjs/core/PostProcesses/postProcess.js';
93
- import '@babylonjs/core/Materials/Textures/cubeTexture.js';
94
94
  import '@babylonjs/core/Materials/imageProcessingConfiguration.js';
95
95
  import '@babylonjs/core/Bones/skeleton.js';
96
96
  import '@babylonjs/core/Sprites/sprite.js';
97
97
  import '@babylonjs/core/Sprites/spriteManager.js';
98
+ import '@babylonjs/core/Misc/textureTools.js';
98
99
  import '@babylonjs/core/Materials/Textures/baseTexture.js';
99
100
  import '@babylonjs/core/Materials/Textures/multiRenderTarget.js';
100
101
  import '@babylonjs/core/Materials/Textures/renderTargetTexture.js';
101
102
  import '@babylonjs/core/Materials/Textures/thinTexture.js';
102
- import '@babylonjs/core/Misc/textureTools.js';
103
103
  import '@babylonjs/core/Lights/Clustered/clusteredLightContainer.js';
104
104
  import '@babylonjs/core/Rendering/boundingBoxRenderer.js';
105
105
  import '@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js';
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { b as Button, c as TextInputPropertyLine, d as SpinButtonPropertyLine, e as CheckboxPropertyLine, V as Vector3PropertyLine, f as ShellServiceIdentity, g as SceneContextIdentity, u as useObservableState, A as Accordion, h as AccordionSection } from './index-BUtV9Nch.js';
3
- import { Settings20Regular, CollectionsAdd20Regular } from '@fluentui/react-icons';
2
+ import { P as Popover, b as Button, c as TextInputPropertyLine, d as SpinButtonPropertyLine, e as CheckboxPropertyLine, V as Vector3PropertyLine, f as ShellServiceIdentity, g as SceneContextIdentity, u as useObservableState, A as Accordion, h as AccordionSection } from './index-BgzFAhky.js';
3
+ import { SettingsRegular, CollectionsAdd20Regular } from '@fluentui/react-icons';
4
4
  import '@babylonjs/core/Particles/webgl2ParticleSystem.js';
5
5
  import { MeshBuilder } from '@babylonjs/core/Meshes/meshBuilder.js';
6
6
  import { useState, useRef } from 'react';
7
- import { Popover, PopoverTrigger, PopoverSurface, makeStyles, tokens } from '@fluentui/react-components';
7
+ import { makeStyles, tokens } from '@fluentui/react-components';
8
8
  import { FilesInput } from '@babylonjs/core/Misc/filesInput.js';
9
9
  import { NodeMaterial } from '@babylonjs/core/Materials/Node/nodeMaterial.js';
10
10
  import { PBRMaterial } from '@babylonjs/core/Materials/PBR/pbrMaterial.js';
@@ -80,6 +80,7 @@ import '@babylonjs/materials/sky/skyMaterial.js';
80
80
  import '@babylonjs/core/Engines/constants.js';
81
81
  import '@babylonjs/core/Engines/engine.js';
82
82
  import '@babylonjs/core/Misc/fileTools.js';
83
+ import '@babylonjs/core/Materials/Textures/cubeTexture.js';
83
84
  import '@babylonjs/core/Meshes/mesh.js';
84
85
  import '@babylonjs/core/Debug/skeletonViewer.js';
85
86
  import '@babylonjs/core/Meshes/buffer.js';
@@ -97,16 +98,15 @@ import '@babylonjs/core/Meshes/transformNode.js';
97
98
  import '@babylonjs/core/Physics/v2/IPhysicsEnginePlugin.js';
98
99
  import '@babylonjs/core/Physics/v2/physicsEngineComponent.js';
99
100
  import '@babylonjs/core/PostProcesses/postProcess.js';
100
- import '@babylonjs/core/Materials/Textures/cubeTexture.js';
101
101
  import '@babylonjs/core/Materials/imageProcessingConfiguration.js';
102
102
  import '@babylonjs/core/Bones/skeleton.js';
103
103
  import '@babylonjs/core/Sprites/sprite.js';
104
104
  import '@babylonjs/core/Sprites/spriteManager.js';
105
+ import '@babylonjs/core/Misc/textureTools.js';
105
106
  import '@babylonjs/core/Materials/Textures/baseTexture.js';
106
107
  import '@babylonjs/core/Materials/Textures/multiRenderTarget.js';
107
108
  import '@babylonjs/core/Materials/Textures/renderTargetTexture.js';
108
109
  import '@babylonjs/core/Materials/Textures/thinTexture.js';
109
- import '@babylonjs/core/Misc/textureTools.js';
110
110
  import '@babylonjs/core/Lights/Clustered/clusteredLightContainer.js';
111
111
  import '@babylonjs/core/Rendering/boundingBoxRenderer.js';
112
112
  import '@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js';
@@ -119,23 +119,12 @@ import '@babylonjs/core/Debug/debugLayer.js';
119
119
  import '@babylonjs/core/Misc/lazy.js';
120
120
 
121
121
  /**
122
- * Settings popover component, can be updated to use shared popover once it exists
122
+ * Settings popover component
123
123
  * @param props
124
124
  * @returns
125
125
  */
126
126
  const SettingsPopover = (props) => {
127
- const { children } = props;
128
- const [popoverOpen, setPopoverOpen] = useState(false);
129
- return (jsxs(Popover, { open: popoverOpen, onOpenChange: (_, data) => setPopoverOpen(data.open), positioning: "below-start", trapFocus: true, children: [jsx(PopoverTrigger, { disableButtonEnhancement: true, children: jsx("button", { type: "button", onClick: () => setPopoverOpen(true), style: {
130
- display: "inline-flex",
131
- alignItems: "center",
132
- justifyContent: "center",
133
- border: "none",
134
- background: "transparent",
135
- cursor: "pointer",
136
- padding: "5px 8px",
137
- borderRadius: "4px",
138
- }, children: jsx(Settings20Regular, {}) }) }), jsx(PopoverSurface, { children: jsx("div", { style: { display: "flex", flexDirection: "column", gap: 12, padding: 16, minWidth: 300, maxWidth: 400 }, children: children }) })] }));
127
+ return jsxs(Popover, { icon: SettingsRegular, children: [" ", props.children, " "] });
139
128
  };
140
129
 
141
130
  const useStyles$4 = makeStyles({
@@ -542,4 +531,4 @@ var quickCreateToolsService = {
542
531
  };
543
532
 
544
533
  export { CreateToolsServiceDefinition, quickCreateToolsService as default };
545
- //# sourceMappingURL=quickCreateToolsService-C-yzV033.js.map
534
+ //# sourceMappingURL=quickCreateToolsService-Bg2plbI-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickCreateToolsService-Bg2plbI-.js","sources":["../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/settingsPopover.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/meshes.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/materials.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/lights.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/cameras.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/particles.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/quickCreateToolsService.tsx"],"sourcesContent":["import type { FunctionComponent, PropsWithChildren } from \"react\";\nimport { Popover } from \"shared-ui-components/fluent/primitives/popover\";\nimport { SettingsRegular } from \"@fluentui/react-icons\";\n\n/**\n * Settings popover component\n * @param props\n * @returns\n */\nexport const SettingsPopover: FunctionComponent<PropsWithChildren<{}>> = (props) => {\n return <Popover icon={SettingsRegular}> {props.children} </Popover>;\n};\n","import { MeshBuilder } from \"core/Meshes/meshBuilder\";\nimport type { Scene } from \"core/scene\";\nimport { useState, useRef, type ChangeEvent } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { FilesInput } from \"core/Misc/filesInput\";\nimport { SettingsPopover } from \"./settingsPopover\";\nimport { CheckboxPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/checkboxPropertyLine\";\nimport type { ArcRotateCamera } from \"core/Cameras/arcRotateCamera\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\nconst SetCamera = function (scene: Scene) {\n const camera = scene.activeCamera as ArcRotateCamera;\n if (camera && camera.radius !== undefined) {\n camera.radius = 5;\n }\n};\n\ntype SphereParams = {\n name: string;\n segments: number;\n diameter: number;\n diameterX: number;\n diameterY: number;\n diameterZ: number;\n arc: number;\n slice: number;\n uniform: boolean;\n};\n\ntype BoxParams = {\n name: string;\n size: number;\n width: number;\n height: number;\n depth: number;\n};\n\ntype CylinderParams = {\n name: string;\n height: number;\n diameterTop: number;\n diameterBottom: number;\n diameter: number;\n tessellation: number;\n subdivisions: number;\n arc: number;\n};\n\ntype ConeParams = {\n name: string;\n height: number;\n diameter: number;\n diameterTop: number;\n diameterBottom: number;\n tessellation: number;\n subdivisions: number;\n arc: number;\n};\n\ntype GroundParams = {\n name: string;\n width: number;\n height: number;\n subdivisions: number;\n subdivisionsX: number;\n subdivisionsY: number;\n};\n\n/**\n * @internal\n */\nexport const MeshesContent: FunctionComponent<{ scene: Scene }> = ({ scene }) => {\n const classes = useStyles();\n const [sphereParams, setSphereParams] = useState<SphereParams>({\n name: \"Sphere\",\n segments: 32,\n diameter: 1,\n diameterX: 1,\n diameterY: 1,\n diameterZ: 1,\n arc: 1,\n slice: 1,\n uniform: true,\n });\n\n const handleSphereParamChange = <K extends keyof SphereParams>(key: K, value: SphereParams[K]) => {\n setSphereParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [boxParams, setBoxParams] = useState<BoxParams>({\n name: \"Box\",\n size: 1,\n width: 1,\n height: 1,\n depth: 1,\n });\n\n const handleBoxParamChange = <K extends keyof BoxParams>(key: K, value: BoxParams[K]) => {\n setBoxParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [cylinderParams, setCylinderParams] = useState<CylinderParams>({\n name: \"Cylinder\",\n height: 2,\n diameterTop: 1,\n diameterBottom: 1,\n diameter: 1,\n tessellation: 32,\n subdivisions: 1,\n arc: 1,\n });\n\n const handleCylinderParamChange = <K extends keyof CylinderParams>(key: K, value: CylinderParams[K]) => {\n setCylinderParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [coneParams, setConeParams] = useState<ConeParams>({\n name: \"Cone\",\n height: 2,\n diameter: 1,\n diameterTop: 0,\n diameterBottom: 1,\n tessellation: 32,\n subdivisions: 1,\n arc: 1,\n });\n\n const [coneUp, setConeUp] = useState(true);\n\n const handleConeParamChange = <K extends keyof ConeParams>(key: K, value: ConeParams[K]) => {\n setConeParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [groundParams, setGroundParams] = useState<GroundParams>({\n name: \"Ground\",\n width: 10,\n height: 10,\n subdivisions: 1,\n subdivisionsX: 1,\n subdivisionsY: 1,\n });\n\n const handleGroundParamChange = <K extends keyof GroundParams>(key: K, value: GroundParams[K]) => {\n setGroundParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const fileInputRef = useRef<HTMLInputElement | null>(null);\n const [importMeshName, setImportMeshName] = useState(\"ImportedMesh\");\n\n const handleLocalMeshImport = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (!files || files.length === 0) {\n return;\n }\n\n const filesArray = Array.from(files);\n if (importMeshName.trim().length > 0 && filesArray.length > 0) {\n const originalFile = filesArray[0];\n const extensionIndex = originalFile.name.lastIndexOf(\".\");\n const extension = extensionIndex >= 0 ? originalFile.name.substring(extensionIndex) : \"\";\n const sanitizedName = importMeshName.trim();\n const desiredFileName = sanitizedName.toLowerCase().endsWith(extension.toLowerCase()) ? sanitizedName : `${sanitizedName}${extension}`;\n filesArray[0] = new File([originalFile], desiredFileName, { type: originalFile.type, lastModified: originalFile.lastModified });\n }\n\n const filesInput = new FilesInput(\n scene.getEngine(),\n scene,\n null,\n null,\n null,\n null,\n null,\n null,\n (_sceneFile, _scene, message) => {\n alert(message ? `Failed to import mesh: ${message}` : \"Failed to import mesh.\");\n },\n true\n );\n\n filesInput.displayLoadingUI = false;\n filesInput.loadFiles({ target: { files: filesArray } });\n filesInput.dispose();\n\n event.target.value = \"\";\n };\n\n return (\n <div className={classes.section}>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateSphere(\"Sphere\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Sphere\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={sphereParams.name} onChange={(val: string) => handleSphereParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Segments\" value={sphereParams.segments} min={0} onChange={(val: number) => handleSphereParamChange(\"segments\", val)} />\n <SpinButtonPropertyLine\n label=\"Diameter\"\n value={sphereParams.diameter}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameter\", val)}\n disabled={!sphereParams.uniform}\n />\n <CheckboxPropertyLine label=\"Uniform\" value={sphereParams.uniform} onChange={(checked) => handleSphereParamChange(\"uniform\", checked)} />\n <SpinButtonPropertyLine\n label=\"Diameter X\"\n value={sphereParams.diameterX}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameterX\", val)}\n disabled={sphereParams.uniform}\n />\n <SpinButtonPropertyLine\n label=\"Diameter Y\"\n value={sphereParams.diameterY}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameterY\", val)}\n disabled={sphereParams.uniform}\n />\n <SpinButtonPropertyLine\n label=\"Diameter Z\"\n value={sphereParams.diameterZ}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameterZ\", val)}\n disabled={sphereParams.uniform}\n />\n <SpinButtonPropertyLine label=\"Arc\" value={sphereParams.arc} min={0} max={1} step={0.1} onChange={(val: number) => handleSphereParamChange(\"arc\", val)} />\n <SpinButtonPropertyLine label=\"Slice\" value={sphereParams.slice} min={0} max={1} step={0.1} onChange={(val: number) => handleSphereParamChange(\"slice\", val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n // Create params object based on uniform checkbox\n const createParams: Partial<SphereParams> = {\n segments: sphereParams.segments,\n arc: sphereParams.arc,\n slice: sphereParams.slice,\n };\n\n if (sphereParams.uniform) {\n // If uniform is checked, use diameter\n createParams.diameter = sphereParams.diameter;\n } else {\n // If uniform is unchecked, use individual diameters\n createParams.diameterX = sphereParams.diameterX;\n createParams.diameterY = sphereParams.diameterY;\n createParams.diameterZ = sphereParams.diameterZ;\n }\n\n MeshBuilder.CreateSphere(sphereParams.name, createParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateBox(\"Box\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Box\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={boxParams.name} onChange={(val: string) => handleBoxParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Size\" value={boxParams.size} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"size\", val)} />\n <SpinButtonPropertyLine label=\"Width\" value={boxParams.width} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"width\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={boxParams.height} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"height\", val)} />\n <SpinButtonPropertyLine label=\"Depth\" value={boxParams.depth} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"depth\", val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n MeshBuilder.CreateBox(boxParams.name, boxParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateCylinder(\"Cylinder\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Cylinder\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={cylinderParams.name} onChange={(val: string) => handleCylinderParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={cylinderParams.height} min={0} step={0.1} onChange={(val: number) => handleCylinderParamChange(\"height\", val)} />\n <SpinButtonPropertyLine\n label=\"Diameter Top\"\n value={cylinderParams.diameterTop}\n min={0}\n step={0.1}\n onChange={(val: number) => handleCylinderParamChange(\"diameterTop\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Diameter Bottom\"\n value={cylinderParams.diameterBottom}\n min={0}\n step={0.1}\n onChange={(val: number) => handleCylinderParamChange(\"diameterBottom\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Diameter\"\n value={cylinderParams.diameter}\n min={0}\n step={0.1}\n onChange={(val: number) => handleCylinderParamChange(\"diameter\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Tessellation\"\n value={cylinderParams.tessellation}\n min={3}\n onChange={(val: number) => handleCylinderParamChange(\"tessellation\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Subdivisions\"\n value={cylinderParams.subdivisions}\n min={1}\n onChange={(val: number) => handleCylinderParamChange(\"subdivisions\", val)}\n />\n <SpinButtonPropertyLine label=\"Arc\" value={cylinderParams.arc} min={0} max={1} step={0.1} onChange={(val: number) => handleCylinderParamChange(\"arc\", val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n MeshBuilder.CreateCylinder(cylinderParams.name, cylinderParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateCylinder(\"Cone\", { diameterTop: 0 }, scene);\n SetCamera(scene);\n }}\n label=\"Cone\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={coneParams.name} onChange={(val: string) => handleConeParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={coneParams.height} min={0} step={0.1} onChange={(val: number) => handleConeParamChange(\"height\", val)} />\n <SpinButtonPropertyLine label=\"Diameter\" value={coneParams.diameter} min={0} step={0.1} onChange={(val: number) => handleConeParamChange(\"diameter\", val)} />\n <SpinButtonPropertyLine label=\"Tessellation\" value={coneParams.tessellation} min={3} onChange={(val: number) => handleConeParamChange(\"tessellation\", val)} />\n <SpinButtonPropertyLine label=\"Subdivisions\" value={coneParams.subdivisions} min={1} onChange={(val: number) => handleConeParamChange(\"subdivisions\", val)} />\n <SpinButtonPropertyLine label=\"Arc\" value={coneParams.arc} min={0} max={1} step={0.1} onChange={(val: number) => handleConeParamChange(\"arc\", val)} />\n <CheckboxPropertyLine label=\"Up\" value={coneUp} onChange={(val: boolean) => setConeUp(val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n const coneParamsToUse = {\n ...coneParams,\n diameterTop: coneUp ? 0 : coneParams.diameterTop,\n diameterBottom: coneUp ? coneParams.diameterBottom : 0,\n };\n MeshBuilder.CreateCylinder(coneParams.name, coneParamsToUse, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateGround(\"Ground\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Ground\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={groundParams.name} onChange={(val: string) => handleGroundParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Width\" value={groundParams.width} min={0} step={0.1} onChange={(val: number) => handleGroundParamChange(\"width\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={groundParams.height} min={0} step={0.1} onChange={(val: number) => handleGroundParamChange(\"height\", val)} />\n <SpinButtonPropertyLine\n label=\"Subdivisions\"\n value={groundParams.subdivisions}\n min={1}\n onChange={(val: number) => handleGroundParamChange(\"subdivisions\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Subdivisions X\"\n value={groundParams.subdivisionsX}\n min={1}\n onChange={(val: number) => handleGroundParamChange(\"subdivisionsX\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Subdivisions Y\"\n value={groundParams.subdivisionsY}\n min={1}\n onChange={(val: number) => handleGroundParamChange(\"subdivisionsY\", val)}\n />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n MeshBuilder.CreateGround(groundParams.name, groundParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n fileInputRef.current?.click();\n }}\n label=\"Import Mesh\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={importMeshName} onChange={(val: string) => setImportMeshName(val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n fileInputRef.current?.click();\n }}\n label=\"Import\"\n />\n </div>\n </SettingsPopover>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".babylon,.glb,.gltf,.obj,.stl,.ply,.mesh,.babylonmeshdata\"\n multiple\n style={{ display: \"none\" }}\n onChange={handleLocalMeshImport}\n />\n </div>\n </div>\n );\n};\n","import { NodeMaterial } from \"core/Materials/Node/nodeMaterial\";\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype MaterialsContentProps = {\n scene: Scene;\n};\n\n/**\n * Materials content component\n * @param props - Component props\n * @returns React component\n */\nexport const MaterialsContent: FunctionComponent<MaterialsContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // Node Material state\n const [nodeMaterialName, setNodeMaterialName] = useState(\"Node Material\");\n const [nodeMaterialSnippetId, setNodeMaterialSnippetId] = useState(\"\");\n\n // PBR Material state\n const [pbrMaterialName, setPbrMaterialName] = useState(\"PBR Material\");\n\n // Standard Material state\n const [standardMaterialName, setStandardMaterialName] = useState(\"Standard Material\");\n\n const handleCreateNodeMaterialAsync = async () => {\n if (nodeMaterialSnippetId) {\n try {\n const nodeMaterial = await NodeMaterial.ParseFromSnippetAsync(nodeMaterialSnippetId, scene);\n nodeMaterial.name = nodeMaterialName;\n } catch (e) {\n alert(\"Failed to load Node Material from snippet: \" + e);\n }\n } else {\n const nodeMaterial = new NodeMaterial(nodeMaterialName, scene);\n nodeMaterial.build();\n }\n };\n\n const handleCreatePBRMaterial = () => {\n new PBRMaterial(pbrMaterialName, scene);\n };\n\n const handleCreateStandardMaterial = () => {\n new StandardMaterial(standardMaterialName, scene);\n };\n\n return (\n <div className={classes.section}>\n {/* Node Material */}\n <div className={classes.row}>\n <Button onClick={handleCreateNodeMaterialAsync} label=\"Node Material\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={nodeMaterialName} onChange={(value) => setNodeMaterialName(value)} />\n <TextInputPropertyLine label=\"Snippet ID\" value={nodeMaterialSnippetId} onChange={(value) => setNodeMaterialSnippetId(value)} />\n <Button appearance=\"primary\" onClick={handleCreateNodeMaterialAsync} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* PBR Material */}\n <div className={classes.row}>\n <Button onClick={handleCreatePBRMaterial} label=\"PBR Material\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={pbrMaterialName} onChange={(value) => setPbrMaterialName(value)} />\n <Button appearance=\"primary\" onClick={handleCreatePBRMaterial} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Standard Material */}\n <div className={classes.row}>\n <Button onClick={handleCreateStandardMaterial} label=\"Standard Material\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={standardMaterialName} onChange={(value) => setStandardMaterialName(value)} />\n <Button appearance=\"primary\" onClick={handleCreateStandardMaterial} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import { PointLight } from \"core/Lights/pointLight\";\nimport { DirectionalLight } from \"core/Lights/directionalLight\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Vector3 } from \"core/Maths/math.vector\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { Vector3PropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/vectorPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype LightsContentProps = {\n scene: Scene;\n};\n\n/**\n * Lights content component\n * @param props - Component props\n * @returns React component\n */\nexport const LightsContent: FunctionComponent<LightsContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // Point Light state\n const [pointLightName, setPointLightName] = useState(\"Point Light\");\n const [pointLightPosition, setPointLightPosition] = useState(new Vector3(0, 5, 0));\n\n // Directional Light state\n const [directionalLightName, setDirectionalLightName] = useState(\"Directional Light\");\n const [directionalLightDirection, setDirectionalLightDirection] = useState(new Vector3(1, -1, 0));\n\n // Spotlight state\n const [spotlightName, setSpotlightName] = useState(\"Spotlight\");\n const [spotlightPosition, setSpotlightPosition] = useState(new Vector3(0, 5, 0));\n const [spotlightDirection, setSpotlightDirection] = useState(new Vector3(0, -1, 0));\n const [spotlightAngle, setSpotlightAngle] = useState(1);\n const [spotlightExponent, setSpotlightExponent] = useState(1);\n\n const handleCreatePointLight = () => {\n const light = new PointLight(pointLightName, pointLightPosition, scene);\n light.intensity = 1.0;\n };\n\n const handleCreateDirectionalLight = () => {\n const dirLight = new DirectionalLight(directionalLightName, directionalLightDirection, scene);\n dirLight.intensity = 1.0;\n };\n\n const handleCreateSpotlight = () => {\n const spotlight = new SpotLight(spotlightName, spotlightPosition, spotlightDirection, spotlightAngle, spotlightExponent, scene);\n spotlight.intensity = 1.0;\n };\n\n return (\n <div className={classes.section}>\n {/* Point Light */}\n <div className={classes.row}>\n <Button onClick={handleCreatePointLight} label=\"Point Light\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={pointLightName} onChange={(value) => setPointLightName(value)} />\n <Vector3PropertyLine label=\"Position\" value={pointLightPosition} onChange={(value) => setPointLightPosition(value)} />\n <Button appearance=\"primary\" onClick={handleCreatePointLight} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Directional Light */}\n <div className={classes.row}>\n <Button onClick={handleCreateDirectionalLight} label=\"Directional Light\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={directionalLightName} onChange={(value) => setDirectionalLightName(value)} />\n <Vector3PropertyLine label=\"Direction\" value={directionalLightDirection} onChange={(value) => setDirectionalLightDirection(value)} />\n <Button appearance=\"primary\" onClick={handleCreateDirectionalLight} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Spotlight */}\n <div className={classes.row}>\n <Button onClick={handleCreateSpotlight} label=\"Spotlight\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={spotlightName} onChange={(value) => setSpotlightName(value)} />\n <Vector3PropertyLine label=\"Position\" value={spotlightPosition} onChange={(value) => setSpotlightPosition(value)} />\n <Vector3PropertyLine label=\"Direction\" value={spotlightDirection} onChange={(value) => setSpotlightDirection(value)} />\n <SpinButtonPropertyLine label=\"Angle\" value={spotlightAngle} onChange={(value) => setSpotlightAngle(value)} min={0} max={Math.PI} step={0.1} />\n <SpinButtonPropertyLine label=\"Exponent\" value={spotlightExponent} onChange={(value) => setSpotlightExponent(value)} min={0} max={10} step={0.1} />\n <Button appearance=\"primary\" onClick={handleCreateSpotlight} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import { ArcRotateCamera } from \"core/Cameras/arcRotateCamera\";\nimport { UniversalCamera } from \"core/Cameras/universalCamera\";\nimport { Vector3 } from \"core/Maths/math.vector\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { Vector3PropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/vectorPropertyLine\";\nimport { CheckboxPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/checkboxPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype CamerasContentProps = {\n scene: Scene;\n};\n\n/**\n * Cameras content component\n * @param props - Component props\n * @returns React component\n */\nexport const CamerasContent: FunctionComponent<CamerasContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // ArcRotate Camera state\n const [arcRotateCameraName, setArcRotateCameraName] = useState(\"ArcRotate Camera\");\n const [arcRotateCameraTarget, setArcRotateCameraTarget] = useState(new Vector3(0, 0, 0));\n const [arcRotateCameraRadius, setArcRotateCameraRadius] = useState(10);\n const [arcRotateCameraAlpha, setArcRotateCameraAlpha] = useState(0);\n const [arcRotateCameraBeta, setArcRotateCameraBeta] = useState(45);\n const [arcRotateCameraUseRadians, setArcRotateCameraUseRadians] = useState(false);\n\n // Universal Camera state\n const [universalCameraName, setUniversalCameraName] = useState(\"Universal Camera\");\n const [universalCameraPosition, setUniversalCameraPosition] = useState(new Vector3(0, 1, -10));\n\n const handleCreateArcRotateCamera = () => {\n const alpha = arcRotateCameraUseRadians ? arcRotateCameraAlpha : (arcRotateCameraAlpha * Math.PI) / 180;\n const beta = arcRotateCameraUseRadians ? arcRotateCameraBeta : (arcRotateCameraBeta * Math.PI) / 180;\n\n const camera = new ArcRotateCamera(arcRotateCameraName, alpha, beta, arcRotateCameraRadius, arcRotateCameraTarget, scene);\n camera.attachControl(scene.getEngine().getRenderingCanvas(), true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n const handleCreateUniversalCamera = () => {\n const camera = new UniversalCamera(universalCameraName, universalCameraPosition, scene);\n camera.attachControl(scene.getEngine().getRenderingCanvas(), true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n return (\n <div className={classes.section}>\n {/* ArcRotate Camera */}\n <div className={classes.row}>\n <Button onClick={handleCreateArcRotateCamera} label=\"ArcRotate Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={arcRotateCameraName} onChange={(value) => setArcRotateCameraName(value)} />\n <Vector3PropertyLine label=\"Target\" value={arcRotateCameraTarget} onChange={(value) => setArcRotateCameraTarget(value)} />\n <SpinButtonPropertyLine label=\"Radius\" value={arcRotateCameraRadius} onChange={(value) => setArcRotateCameraRadius(value)} min={0.1} max={1000} step={0.5} />\n <SpinButtonPropertyLine\n label={`Alpha ${arcRotateCameraUseRadians ? \"(rad)\" : \"(deg)\"}`}\n value={arcRotateCameraAlpha}\n onChange={(value) => setArcRotateCameraAlpha(value)}\n min={arcRotateCameraUseRadians ? -Math.PI * 2 : -360}\n max={arcRotateCameraUseRadians ? Math.PI * 2 : 360}\n step={arcRotateCameraUseRadians ? 0.1 : 5}\n />\n <SpinButtonPropertyLine\n label={`Beta ${arcRotateCameraUseRadians ? \"(rad)\" : \"(deg)\"}`}\n value={arcRotateCameraBeta}\n onChange={(value) => setArcRotateCameraBeta(value)}\n min={arcRotateCameraUseRadians ? 0 : 0}\n max={arcRotateCameraUseRadians ? Math.PI : 180}\n step={arcRotateCameraUseRadians ? 0.1 : 5}\n />\n <CheckboxPropertyLine label=\"Use Radians\" value={arcRotateCameraUseRadians} onChange={(value) => setArcRotateCameraUseRadians(value)} />\n <Button appearance=\"primary\" onClick={handleCreateArcRotateCamera} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Universal Camera */}\n <div className={classes.row}>\n <Button onClick={handleCreateUniversalCamera} label=\"Universal Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={universalCameraName} onChange={(value) => setUniversalCameraName(value)} />\n <Vector3PropertyLine label=\"Position\" value={universalCameraPosition} onChange={(value) => setUniversalCameraPosition(value)} />\n <Button appearance=\"primary\" onClick={handleCreateUniversalCamera} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import { ParticleSystem } from \"core/Particles/particleSystem\";\nimport { GPUParticleSystem } from \"core/Particles/gpuParticleSystem\";\nimport { NodeParticleSystemSet } from \"core/Particles/Node/nodeParticleSystemSet\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\n// Side-effect import needed for GPUParticleSystem\nimport \"core/Particles/webgl2ParticleSystem\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype ParticlesContentProps = {\n scene: Scene;\n};\n\n/**\n * Particles content component\n * @param props - Component props\n * @returns React component\n */\nexport const ParticlesContent: FunctionComponent<ParticlesContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // CPU Particle System state\n const [cpuParticleSystemName, setCpuParticleSystemName] = useState(\"Particle System\");\n const [cpuParticleSystemCapacity, setCpuParticleSystemCapacity] = useState(2000);\n\n // GPU Particle System state\n const [gpuParticleSystemName, setGpuParticleSystemName] = useState(\"GPU Particle System\");\n const [gpuParticleSystemCapacity, setGpuParticleSystemCapacity] = useState(2000);\n\n // Node Particle System state\n const [nodeParticleSystemName, setNodeParticleSystemName] = useState(\"Node Particle System\");\n const [nodeParticleSystemSnippetId, setNodeParticleSystemSnippetId] = useState(\"\");\n\n const handleCreateCPUParticleSystem = () => {\n setTimeout(() => {\n const system = new ParticleSystem(cpuParticleSystemName, cpuParticleSystemCapacity, scene);\n system.particleTexture = new Texture(\"https://assets.babylonjs.com/textures/flare.png\", scene);\n system.start();\n }, 0);\n };\n\n const handleCreateGPUParticleSystem = () => {\n if (GPUParticleSystem.IsSupported) {\n setTimeout(() => {\n const system = new GPUParticleSystem(gpuParticleSystemName, { capacity: gpuParticleSystemCapacity }, scene);\n system.particleTexture = new Texture(\"https://assets.babylonjs.com/textures/flare.png\", scene);\n system.start();\n }, 0);\n } else {\n alert(\"GPU Particle System is not supported.\");\n }\n };\n\n const handleCreateNodeParticleSystemAsync = async () => {\n try {\n let nodeParticleSet;\n const snippetId = nodeParticleSystemSnippetId.trim();\n if (snippetId) {\n nodeParticleSet = await NodeParticleSystemSet.ParseFromSnippetAsync(snippetId);\n nodeParticleSet.name = nodeParticleSystemName;\n } else {\n nodeParticleSet = NodeParticleSystemSet.CreateDefault(nodeParticleSystemName);\n }\n const particleSystemSet = await nodeParticleSet.buildAsync(scene);\n for (const system of particleSystemSet.systems) {\n system.name = nodeParticleSystemName;\n }\n particleSystemSet.start();\n } catch (e) {\n global.console.error(\"Error creating Node Particle System:\", e);\n alert(\"Failed to create Node Particle System: \" + e);\n }\n };\n\n return (\n <div className={classes.section}>\n {/* CPU Particle System */}\n <div className={classes.row}>\n <Button onClick={handleCreateCPUParticleSystem} label=\"CPU Particle System\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={cpuParticleSystemName} onChange={(value) => setCpuParticleSystemName(value)} />\n <SpinButtonPropertyLine\n label=\"Capacity\"\n value={cpuParticleSystemCapacity}\n onChange={(value) => setCpuParticleSystemCapacity(value)}\n min={1}\n max={100000}\n step={100}\n />\n <Button appearance=\"primary\" onClick={handleCreateCPUParticleSystem} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* GPU Particle System */}\n <div className={classes.row}>\n <Button onClick={handleCreateGPUParticleSystem} label=\"GPU Particle System\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={gpuParticleSystemName} onChange={(value) => setGpuParticleSystemName(value)} />\n <SpinButtonPropertyLine\n label=\"Capacity\"\n value={gpuParticleSystemCapacity}\n onChange={(value) => setGpuParticleSystemCapacity(value)}\n min={1}\n max={1000000}\n step={1000}\n />\n <Button appearance=\"primary\" onClick={handleCreateGPUParticleSystem} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Node Particle System */}\n <div className={classes.row}>\n <Button onClick={handleCreateNodeParticleSystemAsync} label=\"Node Particle System\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={nodeParticleSystemName} onChange={(value) => setNodeParticleSystemName(value)} />\n <TextInputPropertyLine label=\"Snippet ID\" value={nodeParticleSystemSnippetId} onChange={(value) => setNodeParticleSystemSnippetId(value)} />\n <Button appearance=\"primary\" onClick={handleCreateNodeParticleSystemAsync} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import type { ServiceDefinition } from \"../../modularity/serviceDefinition\";\nimport type { ISceneContext } from \"../../services/sceneContext\";\nimport type { IShellService } from \"../../services/shellService\";\nimport { Accordion as BabylonAccordion, AccordionSection as BabylonAccordionSection } from \"shared-ui-components/fluent/primitives/accordion\";\nimport { ShellServiceIdentity } from \"../../services/shellService\";\n\nimport { CollectionsAdd20Regular } from \"@fluentui/react-icons\";\nimport { SceneContextIdentity } from \"../../services/sceneContext\";\nimport { useObservableState } from \"../../hooks/observableHooks\";\n\n// Side-effect import needed for GPUParticleSystem\nimport \"core/Particles/webgl2ParticleSystem\";\nimport { MeshesContent } from \"./meshes\";\nimport { MaterialsContent } from \"./materials\";\nimport { LightsContent } from \"./lights\";\nimport { CamerasContent } from \"./cameras\";\nimport { ParticlesContent } from \"./particles\";\n\n// TODO: This is just a placeholder for a dynamically installed extension that brings in asset creation tools (node materials, etc.).\nexport const CreateToolsServiceDefinition: ServiceDefinition<[], [IShellService, ISceneContext]> = {\n friendlyName: \"Creation Tools\",\n consumes: [ShellServiceIdentity, SceneContextIdentity],\n factory: (shellService, sceneContext) => {\n const registration = shellService.addSidePane({\n key: \"Create\",\n title: \"Creation Tools\",\n icon: CollectionsAdd20Regular,\n horizontalLocation: \"left\",\n verticalLocation: \"top\",\n content: () => {\n const scene = useObservableState(() => sceneContext.currentScene, sceneContext.currentSceneObservable);\n\n return (\n scene && (\n <>\n <BabylonAccordion>\n <BabylonAccordionSection title=\"Meshes\">\n <MeshesContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Materials\">\n <MaterialsContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Lights\">\n <LightsContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Particles\">\n <ParticlesContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Cameras\">\n <CamerasContent scene={scene} />\n </BabylonAccordionSection>\n </BabylonAccordion>\n </>\n )\n );\n },\n });\n return {\n dispose: () => registration.dispose(),\n };\n },\n};\n\nexport default {\n serviceDefinitions: [CreateToolsServiceDefinition],\n} as const;\n"],"names":["_jsxs","useStyles","_jsx","_Fragment","BabylonAccordion","BabylonAccordionSection"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/inspector",
3
- "version": "8.41.2-preview",
3
+ "version": "8.42.0-preview",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.js",