@babylonjs/inspector 8.41.0 → 8.41.1-preview

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickCreateToolsService-C-yzV033.js","sources":["../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/settingsPopover.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/meshes.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/materials.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/lights.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/cameras.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/particles.tsx","../../../../../../../../dev/inspector-v2/src/extensions/quickCreate/quickCreateToolsService.tsx"],"sourcesContent":["import type { FunctionComponent, PropsWithChildren } from \"react\";\nimport { useState } from \"react\";\nimport { Popover, PopoverTrigger, PopoverSurface } from \"@fluentui/react-components\";\nimport { Settings20Regular } from \"@fluentui/react-icons\";\n\n/**\n * Settings popover component, can be updated to use shared popover once it exists\n * @param props\n * @returns\n */\nexport const SettingsPopover: FunctionComponent<PropsWithChildren<{}>> = (props) => {\n const { children } = props;\n const [popoverOpen, setPopoverOpen] = useState(false);\n\n return (\n <Popover open={popoverOpen} onOpenChange={(_, data) => setPopoverOpen(data.open)} positioning=\"below-start\" trapFocus>\n <PopoverTrigger disableButtonEnhancement>\n <button\n type=\"button\"\n onClick={() => setPopoverOpen(true)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n padding: \"5px 8px\",\n borderRadius: \"4px\",\n }}\n >\n <Settings20Regular />\n </button>\n </PopoverTrigger>\n <PopoverSurface>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12, padding: 16, minWidth: 300, maxWidth: 400 }}>{children}</div>\n </PopoverSurface>\n </Popover>\n );\n};\n","import { MeshBuilder } from \"core/Meshes/meshBuilder\";\nimport type { Scene } from \"core/scene\";\nimport { useState, useRef, type ChangeEvent } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { FilesInput } from \"core/Misc/filesInput\";\nimport { SettingsPopover } from \"./settingsPopover\";\nimport { CheckboxPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/checkboxPropertyLine\";\nimport type { ArcRotateCamera } from \"core/Cameras/arcRotateCamera\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\nconst SetCamera = function (scene: Scene) {\n const camera = scene.activeCamera as ArcRotateCamera;\n if (camera && camera.radius !== undefined) {\n camera.radius = 5;\n }\n};\n\ntype SphereParams = {\n name: string;\n segments: number;\n diameter: number;\n diameterX: number;\n diameterY: number;\n diameterZ: number;\n arc: number;\n slice: number;\n uniform: boolean;\n};\n\ntype BoxParams = {\n name: string;\n size: number;\n width: number;\n height: number;\n depth: number;\n};\n\ntype CylinderParams = {\n name: string;\n height: number;\n diameterTop: number;\n diameterBottom: number;\n diameter: number;\n tessellation: number;\n subdivisions: number;\n arc: number;\n};\n\ntype ConeParams = {\n name: string;\n height: number;\n diameter: number;\n diameterTop: number;\n diameterBottom: number;\n tessellation: number;\n subdivisions: number;\n arc: number;\n};\n\ntype GroundParams = {\n name: string;\n width: number;\n height: number;\n subdivisions: number;\n subdivisionsX: number;\n subdivisionsY: number;\n};\n\n/**\n * @internal\n */\nexport const MeshesContent: FunctionComponent<{ scene: Scene }> = ({ scene }) => {\n const classes = useStyles();\n const [sphereParams, setSphereParams] = useState<SphereParams>({\n name: \"Sphere\",\n segments: 32,\n diameter: 1,\n diameterX: 1,\n diameterY: 1,\n diameterZ: 1,\n arc: 1,\n slice: 1,\n uniform: true,\n });\n\n const handleSphereParamChange = <K extends keyof SphereParams>(key: K, value: SphereParams[K]) => {\n setSphereParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [boxParams, setBoxParams] = useState<BoxParams>({\n name: \"Box\",\n size: 1,\n width: 1,\n height: 1,\n depth: 1,\n });\n\n const handleBoxParamChange = <K extends keyof BoxParams>(key: K, value: BoxParams[K]) => {\n setBoxParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [cylinderParams, setCylinderParams] = useState<CylinderParams>({\n name: \"Cylinder\",\n height: 2,\n diameterTop: 1,\n diameterBottom: 1,\n diameter: 1,\n tessellation: 32,\n subdivisions: 1,\n arc: 1,\n });\n\n const handleCylinderParamChange = <K extends keyof CylinderParams>(key: K, value: CylinderParams[K]) => {\n setCylinderParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [coneParams, setConeParams] = useState<ConeParams>({\n name: \"Cone\",\n height: 2,\n diameter: 1,\n diameterTop: 0,\n diameterBottom: 1,\n tessellation: 32,\n subdivisions: 1,\n arc: 1,\n });\n\n const [coneUp, setConeUp] = useState(true);\n\n const handleConeParamChange = <K extends keyof ConeParams>(key: K, value: ConeParams[K]) => {\n setConeParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [groundParams, setGroundParams] = useState<GroundParams>({\n name: \"Ground\",\n width: 10,\n height: 10,\n subdivisions: 1,\n subdivisionsX: 1,\n subdivisionsY: 1,\n });\n\n const handleGroundParamChange = <K extends keyof GroundParams>(key: K, value: GroundParams[K]) => {\n setGroundParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const fileInputRef = useRef<HTMLInputElement | null>(null);\n const [importMeshName, setImportMeshName] = useState(\"ImportedMesh\");\n\n const handleLocalMeshImport = (event: ChangeEvent<HTMLInputElement>) => {\n const files = event.target.files;\n if (!files || files.length === 0) {\n return;\n }\n\n const filesArray = Array.from(files);\n if (importMeshName.trim().length > 0 && filesArray.length > 0) {\n const originalFile = filesArray[0];\n const extensionIndex = originalFile.name.lastIndexOf(\".\");\n const extension = extensionIndex >= 0 ? originalFile.name.substring(extensionIndex) : \"\";\n const sanitizedName = importMeshName.trim();\n const desiredFileName = sanitizedName.toLowerCase().endsWith(extension.toLowerCase()) ? sanitizedName : `${sanitizedName}${extension}`;\n filesArray[0] = new File([originalFile], desiredFileName, { type: originalFile.type, lastModified: originalFile.lastModified });\n }\n\n const filesInput = new FilesInput(\n scene.getEngine(),\n scene,\n null,\n null,\n null,\n null,\n null,\n null,\n (_sceneFile, _scene, message) => {\n alert(message ? `Failed to import mesh: ${message}` : \"Failed to import mesh.\");\n },\n true\n );\n\n filesInput.displayLoadingUI = false;\n filesInput.loadFiles({ target: { files: filesArray } });\n filesInput.dispose();\n\n event.target.value = \"\";\n };\n\n return (\n <div className={classes.section}>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateSphere(\"Sphere\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Sphere\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={sphereParams.name} onChange={(val: string) => handleSphereParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Segments\" value={sphereParams.segments} min={0} onChange={(val: number) => handleSphereParamChange(\"segments\", val)} />\n <SpinButtonPropertyLine\n label=\"Diameter\"\n value={sphereParams.diameter}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameter\", val)}\n disabled={!sphereParams.uniform}\n />\n <CheckboxPropertyLine label=\"Uniform\" value={sphereParams.uniform} onChange={(checked) => handleSphereParamChange(\"uniform\", checked)} />\n <SpinButtonPropertyLine\n label=\"Diameter X\"\n value={sphereParams.diameterX}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameterX\", val)}\n disabled={sphereParams.uniform}\n />\n <SpinButtonPropertyLine\n label=\"Diameter Y\"\n value={sphereParams.diameterY}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameterY\", val)}\n disabled={sphereParams.uniform}\n />\n <SpinButtonPropertyLine\n label=\"Diameter Z\"\n value={sphereParams.diameterZ}\n min={0}\n step={0.1}\n onChange={(val: number) => handleSphereParamChange(\"diameterZ\", val)}\n disabled={sphereParams.uniform}\n />\n <SpinButtonPropertyLine label=\"Arc\" value={sphereParams.arc} min={0} max={1} step={0.1} onChange={(val: number) => handleSphereParamChange(\"arc\", val)} />\n <SpinButtonPropertyLine label=\"Slice\" value={sphereParams.slice} min={0} max={1} step={0.1} onChange={(val: number) => handleSphereParamChange(\"slice\", val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n // Create params object based on uniform checkbox\n const createParams: Partial<SphereParams> = {\n segments: sphereParams.segments,\n arc: sphereParams.arc,\n slice: sphereParams.slice,\n };\n\n if (sphereParams.uniform) {\n // If uniform is checked, use diameter\n createParams.diameter = sphereParams.diameter;\n } else {\n // If uniform is unchecked, use individual diameters\n createParams.diameterX = sphereParams.diameterX;\n createParams.diameterY = sphereParams.diameterY;\n createParams.diameterZ = sphereParams.diameterZ;\n }\n\n MeshBuilder.CreateSphere(sphereParams.name, createParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateBox(\"Box\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Box\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={boxParams.name} onChange={(val: string) => handleBoxParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Size\" value={boxParams.size} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"size\", val)} />\n <SpinButtonPropertyLine label=\"Width\" value={boxParams.width} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"width\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={boxParams.height} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"height\", val)} />\n <SpinButtonPropertyLine label=\"Depth\" value={boxParams.depth} min={0} step={0.1} onChange={(val: number) => handleBoxParamChange(\"depth\", val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n MeshBuilder.CreateBox(boxParams.name, boxParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateCylinder(\"Cylinder\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Cylinder\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={cylinderParams.name} onChange={(val: string) => handleCylinderParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={cylinderParams.height} min={0} step={0.1} onChange={(val: number) => handleCylinderParamChange(\"height\", val)} />\n <SpinButtonPropertyLine\n label=\"Diameter Top\"\n value={cylinderParams.diameterTop}\n min={0}\n step={0.1}\n onChange={(val: number) => handleCylinderParamChange(\"diameterTop\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Diameter Bottom\"\n value={cylinderParams.diameterBottom}\n min={0}\n step={0.1}\n onChange={(val: number) => handleCylinderParamChange(\"diameterBottom\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Diameter\"\n value={cylinderParams.diameter}\n min={0}\n step={0.1}\n onChange={(val: number) => handleCylinderParamChange(\"diameter\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Tessellation\"\n value={cylinderParams.tessellation}\n min={3}\n onChange={(val: number) => handleCylinderParamChange(\"tessellation\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Subdivisions\"\n value={cylinderParams.subdivisions}\n min={1}\n onChange={(val: number) => handleCylinderParamChange(\"subdivisions\", val)}\n />\n <SpinButtonPropertyLine label=\"Arc\" value={cylinderParams.arc} min={0} max={1} step={0.1} onChange={(val: number) => handleCylinderParamChange(\"arc\", val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n MeshBuilder.CreateCylinder(cylinderParams.name, cylinderParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateCylinder(\"Cone\", { diameterTop: 0 }, scene);\n SetCamera(scene);\n }}\n label=\"Cone\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={coneParams.name} onChange={(val: string) => handleConeParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={coneParams.height} min={0} step={0.1} onChange={(val: number) => handleConeParamChange(\"height\", val)} />\n <SpinButtonPropertyLine label=\"Diameter\" value={coneParams.diameter} min={0} step={0.1} onChange={(val: number) => handleConeParamChange(\"diameter\", val)} />\n <SpinButtonPropertyLine label=\"Tessellation\" value={coneParams.tessellation} min={3} onChange={(val: number) => handleConeParamChange(\"tessellation\", val)} />\n <SpinButtonPropertyLine label=\"Subdivisions\" value={coneParams.subdivisions} min={1} onChange={(val: number) => handleConeParamChange(\"subdivisions\", val)} />\n <SpinButtonPropertyLine label=\"Arc\" value={coneParams.arc} min={0} max={1} step={0.1} onChange={(val: number) => handleConeParamChange(\"arc\", val)} />\n <CheckboxPropertyLine label=\"Up\" value={coneUp} onChange={(val: boolean) => setConeUp(val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n const coneParamsToUse = {\n ...coneParams,\n diameterTop: coneUp ? 0 : coneParams.diameterTop,\n diameterBottom: coneUp ? coneParams.diameterBottom : 0,\n };\n MeshBuilder.CreateCylinder(coneParams.name, coneParamsToUse, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n MeshBuilder.CreateGround(\"Ground\", {}, scene);\n SetCamera(scene);\n }}\n label=\"Ground\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={groundParams.name} onChange={(val: string) => handleGroundParamChange(\"name\", val)} />\n <SpinButtonPropertyLine label=\"Width\" value={groundParams.width} min={0} step={0.1} onChange={(val: number) => handleGroundParamChange(\"width\", val)} />\n <SpinButtonPropertyLine label=\"Height\" value={groundParams.height} min={0} step={0.1} onChange={(val: number) => handleGroundParamChange(\"height\", val)} />\n <SpinButtonPropertyLine\n label=\"Subdivisions\"\n value={groundParams.subdivisions}\n min={1}\n onChange={(val: number) => handleGroundParamChange(\"subdivisions\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Subdivisions X\"\n value={groundParams.subdivisionsX}\n min={1}\n onChange={(val: number) => handleGroundParamChange(\"subdivisionsX\", val)}\n />\n <SpinButtonPropertyLine\n label=\"Subdivisions Y\"\n value={groundParams.subdivisionsY}\n min={1}\n onChange={(val: number) => handleGroundParamChange(\"subdivisionsY\", val)}\n />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, marginTop: 16 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n MeshBuilder.CreateGround(groundParams.name, groundParams, scene);\n SetCamera(scene);\n }}\n label=\"Create\"\n />\n </div>\n </SettingsPopover>\n </div>\n <div className={classes.row}>\n <Button\n onClick={() => {\n fileInputRef.current?.click();\n }}\n label=\"Import Mesh\"\n />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={importMeshName} onChange={(val: string) => setImportMeshName(val)} />\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8 }}>\n <Button\n appearance=\"primary\"\n onClick={() => {\n fileInputRef.current?.click();\n }}\n label=\"Import\"\n />\n </div>\n </SettingsPopover>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".babylon,.glb,.gltf,.obj,.stl,.ply,.mesh,.babylonmeshdata\"\n multiple\n style={{ display: \"none\" }}\n onChange={handleLocalMeshImport}\n />\n </div>\n </div>\n );\n};\n","import { NodeMaterial } from \"core/Materials/Node/nodeMaterial\";\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype MaterialsContentProps = {\n scene: Scene;\n};\n\n/**\n * Materials content component\n * @param props - Component props\n * @returns React component\n */\nexport const MaterialsContent: FunctionComponent<MaterialsContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // Node Material state\n const [nodeMaterialName, setNodeMaterialName] = useState(\"Node Material\");\n const [nodeMaterialSnippetId, setNodeMaterialSnippetId] = useState(\"\");\n\n // PBR Material state\n const [pbrMaterialName, setPbrMaterialName] = useState(\"PBR Material\");\n\n // Standard Material state\n const [standardMaterialName, setStandardMaterialName] = useState(\"Standard Material\");\n\n const handleCreateNodeMaterialAsync = async () => {\n if (nodeMaterialSnippetId) {\n try {\n const nodeMaterial = await NodeMaterial.ParseFromSnippetAsync(nodeMaterialSnippetId, scene);\n nodeMaterial.name = nodeMaterialName;\n } catch (e) {\n alert(\"Failed to load Node Material from snippet: \" + e);\n }\n } else {\n const nodeMaterial = new NodeMaterial(nodeMaterialName, scene);\n nodeMaterial.build();\n }\n };\n\n const handleCreatePBRMaterial = () => {\n new PBRMaterial(pbrMaterialName, scene);\n };\n\n const handleCreateStandardMaterial = () => {\n new StandardMaterial(standardMaterialName, scene);\n };\n\n return (\n <div className={classes.section}>\n {/* Node Material */}\n <div className={classes.row}>\n <Button onClick={handleCreateNodeMaterialAsync} label=\"Node Material\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={nodeMaterialName} onChange={(value) => setNodeMaterialName(value)} />\n <TextInputPropertyLine label=\"Snippet ID\" value={nodeMaterialSnippetId} onChange={(value) => setNodeMaterialSnippetId(value)} />\n <Button appearance=\"primary\" onClick={handleCreateNodeMaterialAsync} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* PBR Material */}\n <div className={classes.row}>\n <Button onClick={handleCreatePBRMaterial} label=\"PBR Material\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={pbrMaterialName} onChange={(value) => setPbrMaterialName(value)} />\n <Button appearance=\"primary\" onClick={handleCreatePBRMaterial} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Standard Material */}\n <div className={classes.row}>\n <Button onClick={handleCreateStandardMaterial} label=\"Standard Material\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={standardMaterialName} onChange={(value) => setStandardMaterialName(value)} />\n <Button appearance=\"primary\" onClick={handleCreateStandardMaterial} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import { PointLight } from \"core/Lights/pointLight\";\nimport { DirectionalLight } from \"core/Lights/directionalLight\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Vector3 } from \"core/Maths/math.vector\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { Vector3PropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/vectorPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype LightsContentProps = {\n scene: Scene;\n};\n\n/**\n * Lights content component\n * @param props - Component props\n * @returns React component\n */\nexport const LightsContent: FunctionComponent<LightsContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // Point Light state\n const [pointLightName, setPointLightName] = useState(\"Point Light\");\n const [pointLightPosition, setPointLightPosition] = useState(new Vector3(0, 5, 0));\n\n // Directional Light state\n const [directionalLightName, setDirectionalLightName] = useState(\"Directional Light\");\n const [directionalLightDirection, setDirectionalLightDirection] = useState(new Vector3(1, -1, 0));\n\n // Spotlight state\n const [spotlightName, setSpotlightName] = useState(\"Spotlight\");\n const [spotlightPosition, setSpotlightPosition] = useState(new Vector3(0, 5, 0));\n const [spotlightDirection, setSpotlightDirection] = useState(new Vector3(0, -1, 0));\n const [spotlightAngle, setSpotlightAngle] = useState(1);\n const [spotlightExponent, setSpotlightExponent] = useState(1);\n\n const handleCreatePointLight = () => {\n const light = new PointLight(pointLightName, pointLightPosition, scene);\n light.intensity = 1.0;\n };\n\n const handleCreateDirectionalLight = () => {\n const dirLight = new DirectionalLight(directionalLightName, directionalLightDirection, scene);\n dirLight.intensity = 1.0;\n };\n\n const handleCreateSpotlight = () => {\n const spotlight = new SpotLight(spotlightName, spotlightPosition, spotlightDirection, spotlightAngle, spotlightExponent, scene);\n spotlight.intensity = 1.0;\n };\n\n return (\n <div className={classes.section}>\n {/* Point Light */}\n <div className={classes.row}>\n <Button onClick={handleCreatePointLight} label=\"Point Light\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={pointLightName} onChange={(value) => setPointLightName(value)} />\n <Vector3PropertyLine label=\"Position\" value={pointLightPosition} onChange={(value) => setPointLightPosition(value)} />\n <Button appearance=\"primary\" onClick={handleCreatePointLight} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Directional Light */}\n <div className={classes.row}>\n <Button onClick={handleCreateDirectionalLight} label=\"Directional Light\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={directionalLightName} onChange={(value) => setDirectionalLightName(value)} />\n <Vector3PropertyLine label=\"Direction\" value={directionalLightDirection} onChange={(value) => setDirectionalLightDirection(value)} />\n <Button appearance=\"primary\" onClick={handleCreateDirectionalLight} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Spotlight */}\n <div className={classes.row}>\n <Button onClick={handleCreateSpotlight} label=\"Spotlight\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={spotlightName} onChange={(value) => setSpotlightName(value)} />\n <Vector3PropertyLine label=\"Position\" value={spotlightPosition} onChange={(value) => setSpotlightPosition(value)} />\n <Vector3PropertyLine label=\"Direction\" value={spotlightDirection} onChange={(value) => setSpotlightDirection(value)} />\n <SpinButtonPropertyLine label=\"Angle\" value={spotlightAngle} onChange={(value) => setSpotlightAngle(value)} min={0} max={Math.PI} step={0.1} />\n <SpinButtonPropertyLine label=\"Exponent\" value={spotlightExponent} onChange={(value) => setSpotlightExponent(value)} min={0} max={10} step={0.1} />\n <Button appearance=\"primary\" onClick={handleCreateSpotlight} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import { ArcRotateCamera } from \"core/Cameras/arcRotateCamera\";\nimport { UniversalCamera } from \"core/Cameras/universalCamera\";\nimport { Vector3 } from \"core/Maths/math.vector\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { Vector3PropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/vectorPropertyLine\";\nimport { CheckboxPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/checkboxPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype CamerasContentProps = {\n scene: Scene;\n};\n\n/**\n * Cameras content component\n * @param props - Component props\n * @returns React component\n */\nexport const CamerasContent: FunctionComponent<CamerasContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // ArcRotate Camera state\n const [arcRotateCameraName, setArcRotateCameraName] = useState(\"ArcRotate Camera\");\n const [arcRotateCameraTarget, setArcRotateCameraTarget] = useState(new Vector3(0, 0, 0));\n const [arcRotateCameraRadius, setArcRotateCameraRadius] = useState(10);\n const [arcRotateCameraAlpha, setArcRotateCameraAlpha] = useState(0);\n const [arcRotateCameraBeta, setArcRotateCameraBeta] = useState(45);\n const [arcRotateCameraUseRadians, setArcRotateCameraUseRadians] = useState(false);\n\n // Universal Camera state\n const [universalCameraName, setUniversalCameraName] = useState(\"Universal Camera\");\n const [universalCameraPosition, setUniversalCameraPosition] = useState(new Vector3(0, 1, -10));\n\n const handleCreateArcRotateCamera = () => {\n const alpha = arcRotateCameraUseRadians ? arcRotateCameraAlpha : (arcRotateCameraAlpha * Math.PI) / 180;\n const beta = arcRotateCameraUseRadians ? arcRotateCameraBeta : (arcRotateCameraBeta * Math.PI) / 180;\n\n const camera = new ArcRotateCamera(arcRotateCameraName, alpha, beta, arcRotateCameraRadius, arcRotateCameraTarget, scene);\n camera.attachControl(scene.getEngine().getRenderingCanvas(), true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n const handleCreateUniversalCamera = () => {\n const camera = new UniversalCamera(universalCameraName, universalCameraPosition, scene);\n camera.attachControl(scene.getEngine().getRenderingCanvas(), true);\n if (!scene.activeCamera) {\n scene.activeCamera = camera;\n }\n };\n\n return (\n <div className={classes.section}>\n {/* ArcRotate Camera */}\n <div className={classes.row}>\n <Button onClick={handleCreateArcRotateCamera} label=\"ArcRotate Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={arcRotateCameraName} onChange={(value) => setArcRotateCameraName(value)} />\n <Vector3PropertyLine label=\"Target\" value={arcRotateCameraTarget} onChange={(value) => setArcRotateCameraTarget(value)} />\n <SpinButtonPropertyLine label=\"Radius\" value={arcRotateCameraRadius} onChange={(value) => setArcRotateCameraRadius(value)} min={0.1} max={1000} step={0.5} />\n <SpinButtonPropertyLine\n label={`Alpha ${arcRotateCameraUseRadians ? \"(rad)\" : \"(deg)\"}`}\n value={arcRotateCameraAlpha}\n onChange={(value) => setArcRotateCameraAlpha(value)}\n min={arcRotateCameraUseRadians ? -Math.PI * 2 : -360}\n max={arcRotateCameraUseRadians ? Math.PI * 2 : 360}\n step={arcRotateCameraUseRadians ? 0.1 : 5}\n />\n <SpinButtonPropertyLine\n label={`Beta ${arcRotateCameraUseRadians ? \"(rad)\" : \"(deg)\"}`}\n value={arcRotateCameraBeta}\n onChange={(value) => setArcRotateCameraBeta(value)}\n min={arcRotateCameraUseRadians ? 0 : 0}\n max={arcRotateCameraUseRadians ? Math.PI : 180}\n step={arcRotateCameraUseRadians ? 0.1 : 5}\n />\n <CheckboxPropertyLine label=\"Use Radians\" value={arcRotateCameraUseRadians} onChange={(value) => setArcRotateCameraUseRadians(value)} />\n <Button appearance=\"primary\" onClick={handleCreateArcRotateCamera} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Universal Camera */}\n <div className={classes.row}>\n <Button onClick={handleCreateUniversalCamera} label=\"Universal Camera\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={universalCameraName} onChange={(value) => setUniversalCameraName(value)} />\n <Vector3PropertyLine label=\"Position\" value={universalCameraPosition} onChange={(value) => setUniversalCameraPosition(value)} />\n <Button appearance=\"primary\" onClick={handleCreateUniversalCamera} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import { ParticleSystem } from \"core/Particles/particleSystem\";\nimport { GPUParticleSystem } from \"core/Particles/gpuParticleSystem\";\nimport { NodeParticleSystemSet } from \"core/Particles/Node/nodeParticleSystemSet\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nimport type { Scene } from \"core/scene\";\nimport { useState } from \"react\";\nimport type { FunctionComponent } from \"react\";\nimport { Button } from \"shared-ui-components/fluent/primitives/button\";\nimport { makeStyles, tokens } from \"@fluentui/react-components\";\nimport { TextInputPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/inputPropertyLine\";\nimport { SpinButtonPropertyLine } from \"shared-ui-components/fluent/hoc/propertyLines/spinButtonPropertyLine\";\nimport { SettingsPopover } from \"./settingsPopover\";\n\n// Side-effect import needed for GPUParticleSystem\nimport \"core/Particles/webgl2ParticleSystem\";\n\nconst useStyles = makeStyles({\n section: {\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: tokens.spacingVerticalM,\n },\n row: { display: \"flex\", alignItems: \"center\", gap: \"4px\" },\n});\n\ntype ParticlesContentProps = {\n scene: Scene;\n};\n\n/**\n * Particles content component\n * @param props - Component props\n * @returns React component\n */\nexport const ParticlesContent: FunctionComponent<ParticlesContentProps> = ({ scene }) => {\n const classes = useStyles();\n\n // CPU Particle System state\n const [cpuParticleSystemName, setCpuParticleSystemName] = useState(\"Particle System\");\n const [cpuParticleSystemCapacity, setCpuParticleSystemCapacity] = useState(2000);\n\n // GPU Particle System state\n const [gpuParticleSystemName, setGpuParticleSystemName] = useState(\"GPU Particle System\");\n const [gpuParticleSystemCapacity, setGpuParticleSystemCapacity] = useState(2000);\n\n // Node Particle System state\n const [nodeParticleSystemName, setNodeParticleSystemName] = useState(\"Node Particle System\");\n const [nodeParticleSystemSnippetId, setNodeParticleSystemSnippetId] = useState(\"\");\n\n const handleCreateCPUParticleSystem = () => {\n setTimeout(() => {\n const system = new ParticleSystem(cpuParticleSystemName, cpuParticleSystemCapacity, scene);\n system.particleTexture = new Texture(\"https://assets.babylonjs.com/textures/flare.png\", scene);\n system.start();\n }, 0);\n };\n\n const handleCreateGPUParticleSystem = () => {\n if (GPUParticleSystem.IsSupported) {\n setTimeout(() => {\n const system = new GPUParticleSystem(gpuParticleSystemName, { capacity: gpuParticleSystemCapacity }, scene);\n system.particleTexture = new Texture(\"https://assets.babylonjs.com/textures/flare.png\", scene);\n system.start();\n }, 0);\n } else {\n alert(\"GPU Particle System is not supported.\");\n }\n };\n\n const handleCreateNodeParticleSystemAsync = async () => {\n try {\n let nodeParticleSet;\n const snippetId = nodeParticleSystemSnippetId.trim();\n if (snippetId) {\n nodeParticleSet = await NodeParticleSystemSet.ParseFromSnippetAsync(snippetId);\n nodeParticleSet.name = nodeParticleSystemName;\n } else {\n nodeParticleSet = NodeParticleSystemSet.CreateDefault(nodeParticleSystemName);\n }\n const particleSystemSet = await nodeParticleSet.buildAsync(scene);\n for (const system of particleSystemSet.systems) {\n system.name = nodeParticleSystemName;\n }\n particleSystemSet.start();\n } catch (e) {\n global.console.error(\"Error creating Node Particle System:\", e);\n alert(\"Failed to create Node Particle System: \" + e);\n }\n };\n\n return (\n <div className={classes.section}>\n {/* CPU Particle System */}\n <div className={classes.row}>\n <Button onClick={handleCreateCPUParticleSystem} label=\"CPU Particle System\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={cpuParticleSystemName} onChange={(value) => setCpuParticleSystemName(value)} />\n <SpinButtonPropertyLine\n label=\"Capacity\"\n value={cpuParticleSystemCapacity}\n onChange={(value) => setCpuParticleSystemCapacity(value)}\n min={1}\n max={100000}\n step={100}\n />\n <Button appearance=\"primary\" onClick={handleCreateCPUParticleSystem} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* GPU Particle System */}\n <div className={classes.row}>\n <Button onClick={handleCreateGPUParticleSystem} label=\"GPU Particle System\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={gpuParticleSystemName} onChange={(value) => setGpuParticleSystemName(value)} />\n <SpinButtonPropertyLine\n label=\"Capacity\"\n value={gpuParticleSystemCapacity}\n onChange={(value) => setGpuParticleSystemCapacity(value)}\n min={1}\n max={1000000}\n step={1000}\n />\n <Button appearance=\"primary\" onClick={handleCreateGPUParticleSystem} label=\"Create\" />\n </SettingsPopover>\n </div>\n\n {/* Node Particle System */}\n <div className={classes.row}>\n <Button onClick={handleCreateNodeParticleSystemAsync} label=\"Node Particle System\" />\n <SettingsPopover>\n <TextInputPropertyLine label=\"Name\" value={nodeParticleSystemName} onChange={(value) => setNodeParticleSystemName(value)} />\n <TextInputPropertyLine label=\"Snippet ID\" value={nodeParticleSystemSnippetId} onChange={(value) => setNodeParticleSystemSnippetId(value)} />\n <Button appearance=\"primary\" onClick={handleCreateNodeParticleSystemAsync} label=\"Create\" />\n </SettingsPopover>\n </div>\n </div>\n );\n};\n","import type { ServiceDefinition } from \"../../modularity/serviceDefinition\";\nimport type { ISceneContext } from \"../../services/sceneContext\";\nimport type { IShellService } from \"../../services/shellService\";\nimport { Accordion as BabylonAccordion, AccordionSection as BabylonAccordionSection } from \"shared-ui-components/fluent/primitives/accordion\";\nimport { ShellServiceIdentity } from \"../../services/shellService\";\n\nimport { CollectionsAdd20Regular } from \"@fluentui/react-icons\";\nimport { SceneContextIdentity } from \"../../services/sceneContext\";\nimport { useObservableState } from \"../../hooks/observableHooks\";\n\n// Side-effect import needed for GPUParticleSystem\nimport \"core/Particles/webgl2ParticleSystem\";\nimport { MeshesContent } from \"./meshes\";\nimport { MaterialsContent } from \"./materials\";\nimport { LightsContent } from \"./lights\";\nimport { CamerasContent } from \"./cameras\";\nimport { ParticlesContent } from \"./particles\";\n\n// TODO: This is just a placeholder for a dynamically installed extension that brings in asset creation tools (node materials, etc.).\nexport const CreateToolsServiceDefinition: ServiceDefinition<[], [IShellService, ISceneContext]> = {\n friendlyName: \"Creation Tools\",\n consumes: [ShellServiceIdentity, SceneContextIdentity],\n factory: (shellService, sceneContext) => {\n const registration = shellService.addSidePane({\n key: \"Create\",\n title: \"Creation Tools\",\n icon: CollectionsAdd20Regular,\n horizontalLocation: \"left\",\n verticalLocation: \"top\",\n content: () => {\n const scene = useObservableState(() => sceneContext.currentScene, sceneContext.currentSceneObservable);\n\n return (\n scene && (\n <>\n <BabylonAccordion>\n <BabylonAccordionSection title=\"Meshes\">\n <MeshesContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Materials\">\n <MaterialsContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Lights\">\n <LightsContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Particles\">\n <ParticlesContent scene={scene} />\n </BabylonAccordionSection>\n <BabylonAccordionSection title=\"Cameras\">\n <CamerasContent scene={scene} />\n </BabylonAccordionSection>\n </BabylonAccordion>\n </>\n )\n );\n },\n });\n return {\n dispose: () => registration.dispose(),\n };\n },\n};\n\nexport default {\n serviceDefinitions: [CreateToolsServiceDefinition],\n} as const;\n"],"names":["_jsxs","_jsx","useStyles","_Fragment","BabylonAccordion","BabylonAccordionSection"],"mappings":"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"}
package/package.json CHANGED
@@ -1,59 +1,43 @@
1
1
  {
2
2
  "name": "@babylonjs/inspector",
3
- "version": "8.41.0",
4
- "module": "dist/babylon.inspector.bundle.js",
5
- "main": "dist/babylon.inspector.bundle.js",
6
- "esnext": "dist/babylon.inspector.bundle.js",
7
- "typings": "dist/babylon.inspector.module.d.ts",
3
+ "version": "8.41.1-preview",
4
+ "type": "module",
5
+ "main": "lib/index.js",
6
+ "module": "lib/index.js",
7
+ "esnext": "lib/index.js",
8
+ "types": "lib/index.d.ts",
8
9
  "files": [
9
- "dist/**/*.*",
10
+ "lib/**/*.js",
11
+ "lib/**/*.d.ts",
12
+ "lib/**/*.map",
10
13
  "readme.md",
11
14
  "license.md"
12
15
  ],
13
- "scripts": {
14
- "build": "npm run clean && npm run build:prod && npm run build:declaration",
15
- "build:dev": "webpack --env development",
16
- "build:prod": "webpack --env production",
17
- "build:declaration": "build-tools -c pud --config ./config.json",
18
- "clean": "rimraf dist"
19
- },
20
- "dependencies": {
21
- "@fortawesome/fontawesome-svg-core": "^6.1.0",
22
- "@fortawesome/free-regular-svg-icons": "^6.0.0",
23
- "@fortawesome/free-solid-svg-icons": "^6.0.0"
24
- },
25
16
  "peerDependencies": {
26
17
  "@babylonjs/addons": "^8.0.0",
27
18
  "@babylonjs/core": "^8.0.0",
28
19
  "@babylonjs/gui": "^8.0.0",
29
- "@babylonjs/gui-editor": "^8.0.0",
30
20
  "@babylonjs/loaders": "^8.0.0",
31
21
  "@babylonjs/materials": "^8.0.0",
32
22
  "@babylonjs/serializers": "^8.0.0",
33
- "@types/react": ">=16.7.3",
34
- "@types/react-dom": ">=16.0.9"
35
- },
36
- "devDependencies": {
37
- "@babylonjs/addons": "^8.41.0",
38
- "@babylonjs/core": "^8.41.0",
39
- "@babylonjs/gui": "^8.41.0",
40
- "@babylonjs/gui-editor": "^8.41.0",
41
- "@babylonjs/loaders": "^8.41.0",
42
- "@babylonjs/materials": "^8.41.0",
43
- "@babylonjs/serializers": "^8.41.0",
44
- "@lts/gui": "1.0.0",
45
- "react": "^18.2.0",
46
- "react-dom": "^18.2.0"
23
+ "@fluentui-contrib/react-virtualizer": "^0.5.3",
24
+ "@fluentui/react-components": "^9.70.0",
25
+ "@fluentui/react-icons": "^2.0.310",
26
+ "react": ">=16.14.0 <20.0.0",
27
+ "react-dom": ">=16.14.0 <20.0.0",
28
+ "usehooks-ts": "^3.1.1"
47
29
  },
48
30
  "keywords": [
49
31
  "3D",
50
32
  "javascript",
51
33
  "html5",
52
34
  "webgl",
53
- "babylon.js"
35
+ "babylon.js",
36
+ "inspector",
37
+ "diagnostic",
38
+ "debug"
54
39
  ],
55
40
  "license": "Apache-2.0",
56
- "sideEffects": true,
57
41
  "homepage": "https://www.babylonjs.com",
58
42
  "repository": {
59
43
  "type": "git",
@@ -62,4 +46,4 @@
62
46
  "bugs": {
63
47
  "url": "https://github.com/BabylonJS/Babylon.js/issues"
64
48
  }
65
- }
49
+ }
package/readme.md CHANGED
@@ -1,26 +1,23 @@
1
- # Babylon.js inspector module
1
+ # BabylonJS Inspector
2
2
 
3
- For usage documentation please visit https://doc.babylonjs.com/how_to/debug_layer.
3
+ The Babylon Inspector is a diagnostic tool that makes it possible to view and edit the scene graph, properties of entities within the scene, and more.
4
4
 
5
- # Installation instructions
5
+ You can learn more in the Inspector [documentation](https://doc.babylonjs.com/toolsAndResources/inspectorv2/).
6
6
 
7
- To install using npm :
7
+ ## Installation
8
8
 
9
- ```shell
10
- npm install @babylonjs/core @babylonjs/inspector
11
- ```
12
-
13
- # How to use
14
-
15
- Afterwards it can be imported to your project using:
9
+ Install the package using npm:
16
10
 
17
- ```javascript
18
- import "@babylonjs/core/Debug/debugLayer";
19
- import "@babylonjs/inspector";
11
+ ```bash
12
+ npm install @babylonjs/inspector@preview
20
13
  ```
21
14
 
22
- The first line will ensure you can access the property debugLayer of the scene while the second will ensure the inspector can be used within your scene.
15
+ The simplest way to use `Inspector` is to call the `ShowInspector` function, passing in your scene:
23
16
 
24
- This is a great example where code splitting or conditional loading could be used to ensure you are not delivering the inspector if not part of your final app.
17
+ ```ts
18
+ import { ShowInspector } from "@babylonjs/inspector";
25
19
 
26
- For more information you can have a look at our [ES6 dedicated documentation](https://doc.babylonjs.com/features/es6_support).
20
+ // Your code that sets up a Babylon.js scene...
21
+
22
+ ShowInspector(scene);
23
+ ```