@babylonjs/inspector 8.48.1-preview → 8.48.2

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 +0,0 @@
1
- {"version":3,"file":"quickCreateToolsService-CpPuenWN.js","sources":["../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/settingsPopover.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/quickCreateLayout.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/renderingPipelines.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/frameGraphs.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/spriteManagers.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 type { FunctionComponent, ReactNode } from \"react\";\r\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\r\n\r\nconst useStyles = makeStyles({\r\n section: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n rowGap: tokens.spacingVerticalM,\r\n },\r\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\r\n});\r\n\r\ntype QuickCreateSectionProps = {\r\n children: ReactNode;\r\n};\r\n\r\n/**\r\n * Container component for quick create sections that provides consistent column layout with spacing\r\n * @param props - Component props\r\n * @returns React component\r\n */\r\nexport const QuickCreateSection: FunctionComponent<QuickCreateSectionProps> = ({ children }) => {\r\n const classes = useStyles();\r\n return <div className={classes.section}>{children}</div>;\r\n};\r\n\r\ntype QuickCreateRowProps = {\r\n children: ReactNode;\r\n};\r\n\r\n/**\r\n * Container component for quick create rows that provides consistent row layout for button + settings popover\r\n * @param props - Component props\r\n * @returns React component\r\n */\r\nexport const QuickCreateRow: FunctionComponent<QuickCreateRowProps> = ({ children }) => {\r\n const classes = useStyles();\r\n return <div className={classes.row}>{children}</div>;\r\n};\r\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 { 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\";\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\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 [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 <QuickCreateSection>\n <QuickCreateRow>\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 </QuickCreateRow>\n <QuickCreateRow>\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 </QuickCreateRow>\n <QuickCreateRow>\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 </QuickCreateRow>\n <QuickCreateRow>\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 </QuickCreateRow>\n <QuickCreateRow>\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 </QuickCreateRow>\n <QuickCreateRow>\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 </QuickCreateRow>\n </QuickCreateSection>\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 { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\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 // 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 <QuickCreateSection>\n {/* Node Material */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* PBR Material */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* Standard Material */}\n <QuickCreateRow>\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 </QuickCreateRow>\n </QuickCreateSection>\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 { 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\";\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\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 // 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 <QuickCreateSection>\n {/* Point Light */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* Directional Light */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* Spotlight */}\n <QuickCreateRow>\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 </QuickCreateRow>\n </QuickCreateSection>\n );\n};\n","import { ArcRotateCamera } from \"core/Cameras/arcRotateCamera\";\nimport { UniversalCamera } from \"core/Cameras/universalCamera\";\nimport { FreeCamera } from \"core/Cameras/freeCamera\";\nimport { FollowCamera } from \"core/Cameras/followCamera\";\nimport { FlyCamera } from \"core/Cameras/flyCamera\";\nimport { GeospatialCamera } from \"core/Cameras/geospatialCamera\";\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 { 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\";\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\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 // 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 // Free Camera state\n const [freeCameraName, setFreeCameraName] = useState(\"Free Camera\");\n const [freeCameraPosition, setFreeCameraPosition] = useState(new Vector3(0, 1, -10));\n\n // Follow Camera state\n const [followCameraName, setFollowCameraName] = useState(\"Follow Camera\");\n const [followCameraPosition, setFollowCameraPosition] = useState(new Vector3(0, 5, -10));\n const [followCameraRadius, setFollowCameraRadius] = useState(10);\n const [followCameraHeightOffset, setFollowCameraHeightOffset] = useState(4);\n const [followCameraRotationOffset, setFollowCameraRotationOffset] = useState(0);\n\n // Fly Camera state\n const [flyCameraName, setFlyCameraName] = useState(\"Fly Camera\");\n const [flyCameraPosition, setFlyCameraPosition] = useState(new Vector3(0, 1, -10));\n\n // Geospatial Camera state\n const [geospatialCameraName, setGeospatialCameraName] = useState(\"Geospatial Camera\");\n const [geospatialCameraPlanetRadius, setGeospatialCameraPlanetRadius] = useState(6371000);\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 const handleCreateFreeCamera = () => {\n const camera = new FreeCamera(freeCameraName, freeCameraPosition, scene);\n camera.attachControl(scene.getEngine().getRenderingCanvas(), true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n const handleCreateFollowCamera = () => {\n const camera = new FollowCamera(followCameraName, followCameraPosition, scene);\n camera.radius = followCameraRadius;\n camera.heightOffset = followCameraHeightOffset;\n camera.rotationOffset = followCameraRotationOffset;\n camera.attachControl(true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n const handleCreateFlyCamera = () => {\n const camera = new FlyCamera(flyCameraName, flyCameraPosition, scene);\n camera.attachControl(true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n const handleCreateGeospatialCamera = () => {\n const camera = new GeospatialCamera(geospatialCameraName, scene, { planetRadius: geospatialCameraPlanetRadius });\n camera.attachControl(true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n return (\n <QuickCreateSection>\n {/* ArcRotate Camera */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* Universal Camera */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* Free Camera */}\n <QuickCreateRow>\n <Button onClick={handleCreateFreeCamera} label=\"Free Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={freeCameraName} onChange={(value) => setFreeCameraName(value)} />\n <Vector3PropertyLine label=\"Position\" value={freeCameraPosition} onChange={(value) => setFreeCameraPosition(value)} />\n <Button appearance=\"primary\" onClick={handleCreateFreeCamera} label=\"Create\" />\n </SettingsPopover>\n </QuickCreateRow>\n\n {/* Follow Camera */}\n <QuickCreateRow>\n <Button onClick={handleCreateFollowCamera} label=\"Follow Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={followCameraName} onChange={(value) => setFollowCameraName(value)} />\n <Vector3PropertyLine label=\"Position\" value={followCameraPosition} onChange={(value) => setFollowCameraPosition(value)} />\n <SpinButtonPropertyLine label=\"Radius\" value={followCameraRadius} onChange={(value) => setFollowCameraRadius(value)} min={0.1} max={1000} step={0.5} />\n <SpinButtonPropertyLine\n label=\"Height Offset\"\n value={followCameraHeightOffset}\n onChange={(value) => setFollowCameraHeightOffset(value)}\n min={-100}\n max={100}\n step={0.5}\n />\n <SpinButtonPropertyLine\n label=\"Rotation Offset (deg)\"\n value={followCameraRotationOffset}\n onChange={(value) => setFollowCameraRotationOffset(value)}\n min={-180}\n max={180}\n step={5}\n />\n <Button appearance=\"primary\" onClick={handleCreateFollowCamera} label=\"Create\" />\n </SettingsPopover>\n </QuickCreateRow>\n\n {/* Fly Camera */}\n <QuickCreateRow>\n <Button onClick={handleCreateFlyCamera} label=\"Fly Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={flyCameraName} onChange={(value) => setFlyCameraName(value)} />\n <Vector3PropertyLine label=\"Position\" value={flyCameraPosition} onChange={(value) => setFlyCameraPosition(value)} />\n <Button appearance=\"primary\" onClick={handleCreateFlyCamera} label=\"Create\" />\n </SettingsPopover>\n </QuickCreateRow>\n\n {/* Geospatial Camera */}\n <QuickCreateRow>\n <Button onClick={handleCreateGeospatialCamera} label=\"Geospatial Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={geospatialCameraName} onChange={(value) => setGeospatialCameraName(value)} />\n <SpinButtonPropertyLine\n label=\"Planet Radius (m)\"\n value={geospatialCameraPlanetRadius}\n onChange={(value) => setGeospatialCameraPlanetRadius(value)}\n min={1000}\n max={100000000}\n step={1000}\n />\n <Button appearance=\"primary\" onClick={handleCreateGeospatialCamera} label=\"Create\" />\n </SettingsPopover>\n </QuickCreateRow>\n </QuickCreateSection>\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 { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\n\n// Side-effect import needed for GPUParticleSystem\nimport \"core/Particles/webgl2ParticleSystem\";\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 // 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 <QuickCreateSection>\n {/* CPU Particle System */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* GPU Particle System */}\n <QuickCreateRow>\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 </QuickCreateRow>\n\n {/* Node Particle System */}\n <QuickCreateRow>\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 </QuickCreateRow>\n </QuickCreateSection>\n );\n};\n","import type { Scene } from \"core/scene\";\r\nimport { useState } from \"react\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\r\nimport { MessageBar } from \"shared-ui-components/fluent/primitives/messageBar\";\r\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\r\nimport { SettingsPopover } from \"./settingsPopover\";\r\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\r\nimport { DefaultRenderingPipeline } from \"core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline\";\r\nimport { SSAORenderingPipeline } from \"core/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline\";\r\nimport { SSAO2RenderingPipeline } from \"core/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline\";\r\nimport { SSRRenderingPipeline } from \"core/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline\";\r\nimport { IblShadowsRenderPipeline } from \"core/Rendering/IBLShadows/iblShadowsRenderPipeline\";\r\nimport { useProperty } from \"../../hooks/compoundPropertyHooks\";\r\n\r\ntype RenderingPipelinesContentProps = {\r\n scene: Scene;\r\n};\r\n\r\nconst GetUniquePipelineName = (baseName: string, scene: Scene): string => {\r\n const pipelines = scene.postProcessRenderPipelineManager.supportedPipelines;\r\n const existingNames = new Set(pipelines.map((p) => p._name));\r\n\r\n if (!existingNames.has(baseName)) {\r\n return baseName;\r\n }\r\n\r\n let counter = 1;\r\n let uniqueName = `${baseName} ${counter}`;\r\n while (existingNames.has(uniqueName)) {\r\n counter++;\r\n uniqueName = `${baseName} ${counter}`;\r\n }\r\n return uniqueName;\r\n};\r\n\r\n/**\r\n * Rendering Pipelines content component\r\n * @param props - Component props\r\n * @returns React component\r\n */\r\nexport const RenderingPipelinesContent: FunctionComponent<RenderingPipelinesContentProps> = ({ scene }) => {\r\n // Default Rendering Pipeline state\r\n const [defaultPipelineName, setDefaultPipelineName] = useState(\"Default rendering pipeline\");\r\n\r\n // SSAO Pipeline state\r\n const [ssaoPipelineName, setSsaoPipelineName] = useState(\"SSAO rendering pipeline\");\r\n\r\n // SSAO2 Pipeline state\r\n const [ssao2PipelineName, setSsao2PipelineName] = useState(\"SSAO2 rendering pipeline\");\r\n\r\n // SSR Pipeline state\r\n const [ssrPipelineName, setSsrPipelineName] = useState(\"SSR rendering pipeline\");\r\n\r\n // IBL Shadows Pipeline state\r\n const [iblShadowsPipelineName, setIblShadowsPipelineName] = useState(\"IBL Shadows rendering pipeline\");\r\n\r\n const handleCreateDefaultPipeline = () => {\r\n const name = GetUniquePipelineName(defaultPipelineName, scene);\r\n new DefaultRenderingPipeline(name, true, scene, scene.cameras);\r\n };\r\n\r\n const handleCreateSSAOPipeline = () => {\r\n const name = GetUniquePipelineName(ssaoPipelineName, scene);\r\n new SSAORenderingPipeline(name, scene, 1, scene.cameras);\r\n };\r\n\r\n const handleCreateSSAO2Pipeline = () => {\r\n const name = GetUniquePipelineName(ssao2PipelineName, scene);\r\n new SSAO2RenderingPipeline(name, scene, 1, scene.cameras);\r\n };\r\n\r\n const handleCreateSSRPipeline = () => {\r\n const name = GetUniquePipelineName(ssrPipelineName, scene);\r\n new SSRRenderingPipeline(name, scene, scene.cameras);\r\n };\r\n\r\n const handleCreateIBLShadowsPipeline = () => {\r\n const name = GetUniquePipelineName(iblShadowsPipelineName, scene);\r\n new IblShadowsRenderPipeline(name, scene, {}, scene.cameras);\r\n };\r\n\r\n const caps = scene.getEngine().getCaps();\r\n const hasDrawBuffers = caps.drawBuffersExtension;\r\n const hasTexelFetch = caps.texelFetch;\r\n const camera = useProperty(scene, \"activeCamera\");\r\n return (\r\n <QuickCreateSection>\r\n {!camera ? (\r\n <MessageBar message=\"Cannot create rendering pipeline without an active camera.\" title=\"No active camera\" intent=\"info\"></MessageBar>\r\n ) : (\r\n <>\r\n {/* Default Rendering Pipeline */}\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateDefaultPipeline} label=\"Default Pipeline\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={defaultPipelineName} onChange={(value) => setDefaultPipelineName(value)} />\r\n <Button appearance=\"primary\" onClick={handleCreateDefaultPipeline} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n\r\n {/* SSAO Pipeline */}\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateSSAOPipeline} label=\"SSAO Pipeline\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={ssaoPipelineName} onChange={(value) => setSsaoPipelineName(value)} />\r\n <Button appearance=\"primary\" onClick={handleCreateSSAOPipeline} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n\r\n {/* SSAO2 Pipeline */}\r\n {hasDrawBuffers && (\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateSSAO2Pipeline} label=\"SSAO2 Pipeline\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={ssao2PipelineName} onChange={(value) => setSsao2PipelineName(value)} />\r\n <Button appearance=\"primary\" onClick={handleCreateSSAO2Pipeline} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n )}\r\n\r\n {/* SSR Pipeline */}\r\n {hasDrawBuffers && hasTexelFetch && (\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateSSRPipeline} label=\"SSR Pipeline\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={ssrPipelineName} onChange={(value) => setSsrPipelineName(value)} />\r\n <Button appearance=\"primary\" onClick={handleCreateSSRPipeline} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n )}\r\n\r\n {/* IBL Shadows Pipeline */}\r\n {hasDrawBuffers && hasTexelFetch && (\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateIBLShadowsPipeline} label=\"IBL Shadows Pipeline\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={iblShadowsPipelineName} onChange={(value) => setIblShadowsPipelineName(value)} />\r\n <Button appearance=\"primary\" onClick={handleCreateIBLShadowsPipeline} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n )}\r\n </>\r\n )}\r\n </QuickCreateSection>\r\n );\r\n};\r\n","import type { Scene } from \"core/scene\";\r\nimport { useState } from \"react\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\r\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\r\nimport { SettingsPopover } from \"./settingsPopover\";\r\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\r\nimport { NodeRenderGraph } from \"core/FrameGraph/Node/nodeRenderGraph\";\r\n\r\ntype FrameGraphsContentProps = {\r\n scene: Scene;\r\n};\r\n\r\n/**\r\n * Helper to generate a unique frame graph name\r\n * @param baseName - The base name to use\r\n * @param scene - The scene to check for existing frame graphs\r\n * @returns A unique name\r\n */\r\nfunction GetUniqueName(baseName: string, scene: Scene): string {\r\n let name = baseName;\r\n let idSubscript = 1;\r\n while (scene.getFrameGraphByName(name)) {\r\n name = baseName + \" \" + idSubscript++;\r\n }\r\n return name;\r\n}\r\n\r\n/**\r\n * Frame Graphs content component\r\n * @param props - Component props\r\n * @returns React component\r\n */\r\nexport const FrameGraphsContent: FunctionComponent<FrameGraphsContentProps> = ({ scene }) => {\r\n // Node Render Graph state\r\n const [frameGraphName, setFrameGraphName] = useState(\"Frame Graph\");\r\n\r\n const handleCreateFrameGraph = () => {\r\n const uniqueName = GetUniqueName(frameGraphName, scene);\r\n const newNodeRenderGraph = new NodeRenderGraph(uniqueName, scene);\r\n newNodeRenderGraph.setToDefault();\r\n void newNodeRenderGraph.buildAsync();\r\n };\r\n\r\n return (\r\n <QuickCreateSection>\r\n {/* Node Render Graph / Frame Graph */}\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateFrameGraph} label=\"Frame Graph\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={frameGraphName} onChange={(value) => setFrameGraphName(value)} />\r\n <Button appearance=\"primary\" onClick={handleCreateFrameGraph} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n </QuickCreateSection>\r\n );\r\n};\r\n","import type { Scene } from \"core/scene\";\r\nimport { useState } from \"react\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\r\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\r\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\r\nimport { SettingsPopover } from \"./settingsPopover\";\r\nimport { QuickCreateSection, QuickCreateRow } from \"./quickCreateLayout\";\r\nimport { SpriteManager } from \"core/Sprites/spriteManager\";\r\n\r\ntype SpriteManagersContentProps = {\r\n scene: Scene;\r\n};\r\n\r\n/**\r\n * Sprite Managers content component\r\n * @param props - Component props\r\n * @returns React component\r\n */\r\nexport const SpriteManagersContent: FunctionComponent<SpriteManagersContentProps> = ({ scene }) => {\r\n // Sprite Manager state\r\n const [spriteManagerName, setSpriteManagerName] = useState(\"Sprite Manager\");\r\n const [spriteManagerCapacity, setSpriteManagerCapacity] = useState(500);\r\n const [spriteManagerCellSize, setSpriteManagerCellSize] = useState(64);\r\n const [spriteManagerTextureUrl, setSpriteManagerTextureUrl] = useState(\"https://assets.babylonjs.com/textures/player.png\");\r\n\r\n const handleCreateSpriteManager = () => {\r\n new SpriteManager(spriteManagerName, spriteManagerTextureUrl, spriteManagerCapacity, spriteManagerCellSize, scene);\r\n };\r\n\r\n return (\r\n <QuickCreateSection>\r\n {/* Sprite Manager */}\r\n <QuickCreateRow>\r\n <Button onClick={handleCreateSpriteManager} label=\"Sprite Manager\" />\r\n <SettingsPopover>\r\n <TextInputPropertyLine label=\"Name\" value={spriteManagerName} onChange={(value) => setSpriteManagerName(value)} />\r\n <TextInputPropertyLine label=\"Texture URL\" value={spriteManagerTextureUrl} onChange={(value) => setSpriteManagerTextureUrl(value)} />\r\n <SpinButtonPropertyLine label=\"Capacity\" value={spriteManagerCapacity} onChange={(value) => setSpriteManagerCapacity(value)} min={1} max={10000} step={100} />\r\n <SpinButtonPropertyLine label=\"Cell Size\" value={spriteManagerCellSize} onChange={(value) => setSpriteManagerCellSize(value)} min={1} max={1024} step={1} />\r\n <Button appearance=\"primary\" onClick={handleCreateSpriteManager} label=\"Create\" />\r\n </SettingsPopover>\r\n </QuickCreateRow>\r\n </QuickCreateSection>\r\n );\r\n};\r\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\";\nimport { RenderingPipelinesContent } from \"./renderingPipelines\";\nimport { FrameGraphsContent } from \"./frameGraphs\";\nimport { SpriteManagersContent } from \"./spriteManagers\";\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 <BabylonAccordionSection title=\"Rendering Pipelines\">\n <RenderingPipelinesContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Frame Graphs\">\n <FrameGraphsContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Sprite Managers\">\n <SpriteManagersContent 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","_jsx","_Fragment","BabylonAccordion","BabylonAccordionSection"],"mappings":"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"}
@@ -1,190 +0,0 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { T as TextInputPropertyLine, N as NumberInputPropertyLine, e as ButtonLine, f as ToolsServiceIdentity } from './index-D3l4X8Gw.js';
3
- import { useState, useRef, useCallback } from 'react';
4
- import { Reflector } from '@babylonjs/core/Misc/reflector.js';
5
- import { PlugConnectedRegular } from '@fluentui/react-icons';
6
- import '@fluentui/react-components';
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 '@babylonjs/core/Misc/typeStore.js';
11
- import '@fluentui/react-motion-components-preview';
12
- import 'usehooks-ts';
13
- import '@babylonjs/core/Misc/asyncLock.js';
14
- import '@babylonjs/core/Misc/deferred.js';
15
- import '@babylonjs/core/Misc/logger.js';
16
- import '@babylonjs/core/Maths/math.scalar.functions.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/PerformanceViewer/performanceViewerSceneExtension.js';
36
- import '@babylonjs/core/Misc/pressureObserverWrapper.js';
37
- import '@babylonjs/core/Maths/math.scalar.js';
38
- import '@babylonjs/core/Misc/PerformanceViewer/performanceViewerCollector.js';
39
- import '@babylonjs/core/Engines/abstractEngine.js';
40
- import 'react-dom/client';
41
- import '@babylonjs/core/FrameGraph/frameGraphUtils.js';
42
- import '@babylonjs/core/Gizmos/cameraGizmo.js';
43
- import '@babylonjs/core/Gizmos/lightGizmo.js';
44
- import '@babylonjs/core/Bones/bone.js';
45
- import '@babylonjs/core/Cameras/camera.js';
46
- import '@babylonjs/core/Gizmos/gizmoManager.js';
47
- import '@babylonjs/core/Lights/light.js';
48
- import '@babylonjs/core/Meshes/abstractMesh.js';
49
- import '@babylonjs/core/node.js';
50
- import '@babylonjs/core/Animations/animationGroup.js';
51
- import '@babylonjs/core/Animations/animation.js';
52
- import '@babylonjs/core/Animations/animationPropertiesOverride.js';
53
- import '@babylonjs/addons/atmosphere/atmosphere.js';
54
- import '@babylonjs/core/Cameras/arcRotateCamera.js';
55
- import '@babylonjs/core/Cameras/followCamera.js';
56
- import '@babylonjs/core/Cameras/freeCamera.js';
57
- import '@babylonjs/core/Cameras/geospatialCamera.js';
58
- import '@babylonjs/core/Cameras/targetCamera.js';
59
- import '@babylonjs/core/scene.js';
60
- import '@babylonjs/core/FrameGraph/frameGraph.js';
61
- import '@babylonjs/core/Lights/directionalLight.js';
62
- import '@babylonjs/core/Lights/hemisphericLight.js';
63
- import '@babylonjs/core/Lights/pointLight.js';
64
- import '@babylonjs/core/Lights/rectAreaLight.js';
65
- import '@babylonjs/core/Lights/shadowLight.js';
66
- import '@babylonjs/core/Lights/spotLight.js';
67
- import '@babylonjs/core/Lights/Shadows/cascadedShadowGenerator.js';
68
- import '@babylonjs/core/Debug/directionalLightFrustumViewer.js';
69
- import '@babylonjs/core/Lights/Shadows/shadowGenerator.js';
70
- import '@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js';
71
- import '@babylonjs/core/Materials/material.js';
72
- import '@babylonjs/core/Materials/multiMaterial.js';
73
- import '@babylonjs/core/Materials/Node/nodeMaterial.js';
74
- import '@babylonjs/core/Materials/PBR/openpbrMaterial.js';
75
- import '@babylonjs/core/Materials/PBR/pbrBaseMaterial.js';
76
- import '@babylonjs/materials/sky/skyMaterial.js';
77
- import '@babylonjs/core/Engines/constants.js';
78
- import '@babylonjs/core/Engines/engine.js';
79
- import '@babylonjs/core/Particles/particleSystem.js';
80
- import '@babylonjs/core/Materials/Node/Blocks/gradientBlock.js';
81
- import '@babylonjs/core/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes.js';
82
- import '@babylonjs/core/Misc/gradients.js';
83
- import '@babylonjs/core/Misc/fileTools.js';
84
- import '@babylonjs/core/Materials/Textures/cubeTexture.js';
85
- import '@babylonjs/core/Meshes/GaussianSplatting/gaussianSplattingMesh.js';
86
- import '@babylonjs/core/Meshes/mesh.js';
87
- import '@babylonjs/core/Debug/skeletonViewer.js';
88
- import '@babylonjs/core/Meshes/buffer.js';
89
- import '@babylonjs/core/Meshes/Builders/linesBuilder.js';
90
- import '@babylonjs/core/Meshes/instancedMesh.js';
91
- import '@babylonjs/core/Rendering/renderingManager.js';
92
- import '@babylonjs/core/Rendering/edgesRenderer.js';
93
- import '@babylonjs/core/Rendering/outlineRenderer.js';
94
- import '@babylonjs/core/Particles/gpuParticleSystem.js';
95
- import '@babylonjs/core/Particles/Node/nodeParticleSystemSet.helper.js';
96
- import '@babylonjs/core/Particles/particleHelper.js';
97
- import '@babylonjs/core/Particles/EmitterTypes/boxParticleEmitter.js';
98
- import '@babylonjs/core/Particles/EmitterTypes/coneParticleEmitter.js';
99
- import '@babylonjs/core/Particles/EmitterTypes/cylinderParticleEmitter.js';
100
- import '@babylonjs/core/Particles/EmitterTypes/hemisphericParticleEmitter.js';
101
- import '@babylonjs/core/Particles/EmitterTypes/meshParticleEmitter.js';
102
- import '@babylonjs/core/Particles/EmitterTypes/pointParticleEmitter.js';
103
- import '@babylonjs/core/Particles/EmitterTypes/sphereParticleEmitter.js';
104
- import '@babylonjs/core/Particles/attractor.js';
105
- import '@babylonjs/core/Meshes/Builders/sphereBuilder.js';
106
- import '@babylonjs/core/Particles/Node/Blocks/particleInputBlock.js';
107
- import '@babylonjs/core/Particles/Node/Blocks/Update/updateAttractorBlock.js';
108
- import '@babylonjs/core/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js';
109
- import '@babylonjs/core/Meshes/transformNode.js';
110
- import '@babylonjs/core/Physics/v2/IPhysicsEnginePlugin.js';
111
- import '@babylonjs/core/Physics/v2/physicsEngineComponent.js';
112
- import '@babylonjs/core/PostProcesses/postProcess.js';
113
- import '@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipeline.js';
114
- import '@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js';
115
- import '@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js';
116
- import '@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js';
117
- import '@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js';
118
- import '@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js';
119
- import '@babylonjs/core/Rendering/IBLShadows/iblShadowsRenderPipeline.js';
120
- import '@babylonjs/core/Materials/imageProcessingConfiguration.js';
121
- import '@babylonjs/core/Bones/skeleton.js';
122
- import '@babylonjs/core/Sprites/sprite.js';
123
- import '@babylonjs/core/Sprites/spriteManager.js';
124
- import '@babylonjs/core/Misc/textureTools.js';
125
- import '@babylonjs/core/Materials/Textures/baseTexture.js';
126
- import '@babylonjs/core/Materials/Textures/multiRenderTarget.js';
127
- import '@babylonjs/core/Materials/Textures/renderTargetTexture.js';
128
- import '@babylonjs/core/Materials/Textures/thinTexture.js';
129
- import '@babylonjs/core/Events/keyboardEvents.js';
130
- import '@babylonjs/core/Events/pointerEvents.js';
131
- import '@babylonjs/core/Materials/Textures/htmlElementTexture.js';
132
- import '@babylonjs/core/Materials/shaderMaterial.js';
133
- import '@babylonjs/core/Meshes/Builders/planeBuilder.js';
134
- import '@babylonjs/core/Lights/Clustered/clusteredLightContainer.js';
135
- import '@babylonjs/core/Rendering/boundingBoxRenderer.js';
136
- import '@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js';
137
- import '@babylonjs/core/Sprites/spriteSceneComponent.js';
138
- import '@babylonjs/core/Materials/Textures/dynamicTexture.js';
139
- import '@babylonjs/core/Misc/equirectangularCapture.js';
140
- import '@babylonjs/core/Misc/sceneRecorder.js';
141
- import '@babylonjs/core/Misc/screenshotTools.js';
142
- import '@babylonjs/core/Misc/videoRecorder.js';
143
- import '@babylonjs/core/Misc/sceneSerializer.js';
144
- import '@babylonjs/core/Misc/environmentTextureTools.js';
145
- import '@babylonjs/core/Loading/sceneLoader.js';
146
- import '@babylonjs/core/Misc/filesInput.js';
147
- import '@babylonjs/loaders/glTF/glTFFileLoader.js';
148
- import '@babylonjs/loaders/glTF/glTFValidation.js';
149
- import '@babylonjs/core/Engines/engineStore.js';
150
- import '@babylonjs/core/Misc/uniqueIdGenerator.js';
151
- import '@babylonjs/core/Debug/debugLayer.js';
152
- import '@babylonjs/core/Misc/lazy.js';
153
-
154
- const ReflectorTools = ({ scene }) => {
155
- const [hostname, setHostname] = useState("localhost");
156
- const [port, setPort] = useState(1234);
157
- const reflectorRef = useRef(null);
158
- const connectReflector = useCallback(() => {
159
- if (reflectorRef.current) {
160
- reflectorRef.current.close();
161
- }
162
- reflectorRef.current = new Reflector(scene, hostname, port);
163
- }, [scene, hostname, port]);
164
- return (jsxs(Fragment, { children: [jsx(TextInputPropertyLine, { label: "Hostname", value: hostname, onChange: (value) => setHostname(value) }), jsx(NumberInputPropertyLine, { label: "Port", value: port, onChange: (value) => setPort(value), forceInt: true }), jsx(ButtonLine, { label: "Connect", icon: PlugConnectedRegular, onClick: connectReflector })] }));
165
- };
166
-
167
- const ReflectorServiceDefinition = {
168
- friendlyName: "Reflector Tools",
169
- consumes: [ToolsServiceIdentity],
170
- factory: (toolsService) => {
171
- const contentRegistrations = [];
172
- // Reflector content
173
- contentRegistrations.push(toolsService.addSectionContent({
174
- key: "Reflector",
175
- section: "Reflector",
176
- component: ({ context }) => jsx(ReflectorTools, { scene: context }),
177
- }));
178
- return {
179
- dispose: () => {
180
- contentRegistrations.forEach((registration) => registration.dispose());
181
- },
182
- };
183
- },
184
- };
185
- var reflectorService = {
186
- serviceDefinitions: [ReflectorServiceDefinition],
187
- };
188
-
189
- export { ReflectorServiceDefinition, reflectorService as default };
190
- //# sourceMappingURL=reflectorService-BQoH5p1A.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflectorService-BQoH5p1A.js","sources":["../../../../../../../../dev/inspector-v2/src/components/tools/reflectorTools.tsx","../../../../../../../../dev/inspector-v2/src/services/panes/tools/reflectorService.tsx"],"sourcesContent":["import { ButtonLine } from \"shared-ui-components/fluent/hoc/buttonLine\";\r\nimport { useState, useCallback, useRef } from \"react\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { TextInputPropertyLine, NumberInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\r\nimport { Reflector } from \"core/Misc/reflector\";\r\nimport { PlugConnectedRegular } from \"@fluentui/react-icons\";\r\n\r\nexport const ReflectorTools: FunctionComponent<{ scene: Scene }> = ({ scene }) => {\r\n const [hostname, setHostname] = useState(\"localhost\");\r\n const [port, setPort] = useState(1234);\r\n const reflectorRef = useRef<Reflector | null>(null);\r\n\r\n const connectReflector = useCallback(() => {\r\n if (reflectorRef.current) {\r\n reflectorRef.current.close();\r\n }\r\n\r\n reflectorRef.current = new Reflector(scene, hostname, port);\r\n }, [scene, hostname, port]);\r\n\r\n return (\r\n <>\r\n <TextInputPropertyLine label=\"Hostname\" value={hostname} onChange={(value) => setHostname(value)} />\r\n <NumberInputPropertyLine label=\"Port\" value={port} onChange={(value) => setPort(value)} forceInt />\r\n <ButtonLine label=\"Connect\" icon={PlugConnectedRegular} onClick={connectReflector} />\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 { ReflectorTools } from \"../../../components/tools/reflectorTools\";\r\n\r\nexport const ReflectorServiceDefinition: ServiceDefinition<[], [IToolsService]> = {\r\n friendlyName: \"Reflector Tools\",\r\n consumes: [ToolsServiceIdentity],\r\n factory: (toolsService) => {\r\n const contentRegistrations: IDisposable[] = [];\r\n\r\n // Reflector content\r\n contentRegistrations.push(\r\n toolsService.addSectionContent({\r\n key: \"Reflector\",\r\n section: \"Reflector\",\r\n component: ({ context }) => <ReflectorTools 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: [ReflectorServiceDefinition],\r\n} as const;\r\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,cAAc,GAAwC,CAAC,EAAE,KAAK,EAAE,KAAI;IAC7E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;IACrD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;AACtC,IAAA,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC;AAEnD,IAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAK;AACtC,QAAA,IAAI,YAAY,CAAC,OAAO,EAAE;AACtB,YAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;;AAGhC,QAAA,YAAY,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC;KAC9D,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE3B,IAAA,QACIA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACIC,GAAC,CAAA,qBAAqB,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,EAAA,CAAI,EACpGA,GAAA,CAAC,uBAAuB,EAAA,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAG,IAAA,EAAA,CAAA,EACnGA,GAAC,CAAA,UAAU,EAAC,EAAA,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,EAAI,CAAA,CAAA,EAAA,CACtF;AAEX,CAAC;;ACtBY,MAAA,0BAA0B,GAA2C;AAC9E,IAAA,YAAY,EAAE,iBAAiB;IAC/B,QAAQ,EAAE,CAAC,oBAAoB,CAAC;AAChC,IAAA,OAAO,EAAE,CAAC,YAAY,KAAI;QACtB,MAAM,oBAAoB,GAAkB,EAAE;;AAG9C,QAAA,oBAAoB,CAAC,IAAI,CACrB,YAAY,CAAC,iBAAiB,CAAC;AAC3B,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,KAAKA,GAAA,CAAC,cAAc,EAAA,EAAC,KAAK,EAAE,OAAO,EAAI,CAAA;AACjE,SAAA,CAAC,CACL;QAED,OAAO;YACH,OAAO,EAAE,MAAK;AACV,gBAAA,oBAAoB,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;aACzE;SACJ;KACJ;;AAGL,uBAAe;IACX,kBAAkB,EAAE,CAAC,0BAA0B,CAAC;CAC1C;;;;"}