@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.
- package/dist/babylon.inspector.bundle.js +3 -0
- package/dist/babylon.inspector.bundle.js.LICENSE.txt +60 -0
- package/dist/babylon.inspector.bundle.js.map +1 -0
- package/dist/babylon.inspector.bundle.max.js +3 -0
- package/dist/babylon.inspector.module.d.ts +9790 -0
- package/package.json +42 -26
- package/readme.md +17 -14
- package/lib/extensionsListService-B4-L1I2C.js +0 -367
- package/lib/extensionsListService-B4-L1I2C.js.map +0 -1
- package/lib/gif-8Ty35Toc.js +0 -2
- package/lib/gif-8Ty35Toc.js.map +0 -1
- package/lib/index-D3l4X8Gw.js +0 -20186
- package/lib/index-D3l4X8Gw.js.map +0 -1
- package/lib/index.d.ts +0 -73043
- package/lib/index.js +0 -152
- package/lib/index.js.map +0 -1
- package/lib/quickCreateToolsService-CpPuenWN.js +0 -706
- package/lib/quickCreateToolsService-CpPuenWN.js.map +0 -1
- package/lib/reflectorService-BQoH5p1A.js +0 -190
- package/lib/reflectorService-BQoH5p1A.js.map +0 -1
|
@@ -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;;;;"}
|