import * as React from "react"; import { PaneComponent, IPaneComponentProps } from "../paneComponent"; import { ArcRotateCamera } from "babylonjs/Cameras/arcRotateCamera"; import { FreeCamera } from "babylonjs/Cameras/freeCamera"; import { AnimationGroup, TargetedAnimation } from "babylonjs/Animations/animationGroup"; import { Material } from "babylonjs/Materials/material"; import { BackgroundMaterial } from "babylonjs/Materials/Background/backgroundMaterial"; import { StandardMaterial } from "babylonjs/Materials/standardMaterial"; import { PBRMaterial } from "babylonjs/Materials/PBR/pbrMaterial"; import { PBRMetallicRoughnessMaterial } from "babylonjs/Materials/PBR/pbrMetallicRoughnessMaterial"; import { PBRSpecularGlossinessMaterial } from "babylonjs/Materials/PBR/pbrSpecularGlossinessMaterial"; import { Texture } from "babylonjs/Materials/Textures/texture"; import { TransformNode } from "babylonjs/Meshes/transformNode"; import { Mesh } from "babylonjs/Meshes/mesh"; import { HemisphericLight } from "babylonjs/Lights/hemisphericLight"; import { PointLight } from "babylonjs/Lights/pointLight"; import { Scene } from "babylonjs/scene"; import { MaterialPropertyGridComponent } from "./propertyGrids/materials/materialPropertyGridComponent"; import { StandardMaterialPropertyGridComponent } from "./propertyGrids/materials/standardMaterialPropertyGridComponent"; import { TexturePropertyGridComponent } from "./propertyGrids/materials/texturePropertyGridComponent"; import { PBRMaterialPropertyGridComponent } from "./propertyGrids/materials/pbrMaterialPropertyGridComponent"; import { ScenePropertyGridComponent } from "./propertyGrids/scenePropertyGridComponent"; import { HemisphericLightPropertyGridComponent } from "./propertyGrids/lights/hemisphericLightPropertyGridComponent"; import { PointLightPropertyGridComponent } from "./propertyGrids/lights/pointLightPropertyGridComponent"; import { FreeCameraPropertyGridComponent } from "./propertyGrids/cameras/freeCameraPropertyGridComponent"; import { ArcRotateCameraPropertyGridComponent } from "./propertyGrids/cameras/arcRotateCameraPropertyGridComponent"; import { MeshPropertyGridComponent } from "./propertyGrids/meshes/meshPropertyGridComponent"; import { TransformNodePropertyGridComponent } from "./propertyGrids/meshes/transformNodePropertyGridComponent"; import { BackgroundMaterialPropertyGridComponent } from "./propertyGrids/materials/backgroundMaterialPropertyGridComponent"; import { Control } from "babylonjs-gui/2D/controls/control"; import { ControlPropertyGridComponent } from "./propertyGrids/gui/controlPropertyGridComponent"; import { TextBlockPropertyGridComponent } from "./propertyGrids/gui/textBlockPropertyGridComponent"; import { TextBlock } from "babylonjs-gui/2D/controls/textBlock"; import { InputText } from "babylonjs-gui/2D/controls/inputText"; import { InputTextPropertyGridComponent } from "./propertyGrids/gui/inputTextPropertyGridComponent"; import { ColorPicker } from "babylonjs-gui/2D/controls/colorpicker"; import { Image } from "babylonjs-gui/2D/controls/image"; import { Slider } from "babylonjs-gui/2D/controls/sliders/slider"; import { ImageBasedSlider } from "babylonjs-gui/2D/controls/sliders/imageBasedSlider"; import { Rectangle } from "babylonjs-gui/2D/controls/rectangle"; import { Ellipse } from "babylonjs-gui/2D/controls/ellipse"; import { Checkbox } from "babylonjs-gui/2D/controls/checkbox"; import { RadioButton } from "babylonjs-gui/2D/controls/radioButton"; import { Line } from "babylonjs-gui/2D/controls/line"; import { ScrollViewer } from "babylonjs-gui/2D/controls/scrollViewers/scrollViewer"; import { Grid } from "babylonjs-gui/2D/controls/grid"; import { StackPanel } from "babylonjs-gui/2D/controls/stackPanel"; import { ColorPickerPropertyGridComponent } from "./propertyGrids/gui/colorPickerPropertyGridComponent"; import { AnimationGroupGridComponent } from "./propertyGrids/animations/animationGroupPropertyGridComponent"; import { LockObject } from "./propertyGrids/lockObject"; import { ImagePropertyGridComponent } from "./propertyGrids/gui/imagePropertyGridComponent"; import { SliderPropertyGridComponent } from "./propertyGrids/gui/sliderPropertyGridComponent"; import { ImageBasedSliderPropertyGridComponent } from "./propertyGrids/gui/imageBasedSliderPropertyGridComponent"; import { RectanglePropertyGridComponent } from "./propertyGrids/gui/rectanglePropertyGridComponent"; import { EllipsePropertyGridComponent } from "./propertyGrids/gui/ellipsePropertyGridComponent"; import { CheckboxPropertyGridComponent } from "./propertyGrids/gui/checkboxPropertyGridComponent"; import { RadioButtonPropertyGridComponent } from "./propertyGrids/gui/radioButtonPropertyGridComponent"; import { LinePropertyGridComponent } from "./propertyGrids/gui/linePropertyGridComponent"; import { ScrollViewerPropertyGridComponent } from "./propertyGrids/gui/scrollViewerPropertyGridComponent"; import { GridPropertyGridComponent } from "./propertyGrids/gui/gridPropertyGridComponent"; import { PBRMetallicRoughnessMaterialPropertyGridComponent } from "./propertyGrids/materials/pbrMetallicRoughnessMaterialPropertyGridComponent"; import { PBRSpecularGlossinessMaterialPropertyGridComponent } from "./propertyGrids/materials/pbrSpecularGlossinessMaterialPropertyGridComponent"; import { StackPanelPropertyGridComponent } from "./propertyGrids/gui/stackPanelPropertyGridComponent"; import { PostProcess } from 'babylonjs/PostProcesses/postProcess'; import { PostProcessPropertyGridComponent } from './propertyGrids/postProcesses/postProcessPropertyGridComponent'; import { RenderingPipelinePropertyGridComponent } from './propertyGrids/postProcesses/renderingPipelinePropertyGridComponent'; import { PostProcessRenderPipeline } from 'babylonjs/PostProcesses/RenderPipeline/postProcessRenderPipeline'; import { DefaultRenderingPipelinePropertyGridComponent } from './propertyGrids/postProcesses/defaultRenderingPipelinePropertyGridComponent'; import { DefaultRenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline'; import { SSAORenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline'; import { SSAORenderingPipelinePropertyGridComponent } from './propertyGrids/postProcesses/ssaoRenderingPipelinePropertyGridComponent'; import { SSAO2RenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline'; import { SSAO2RenderingPipelinePropertyGridComponent } from './propertyGrids/postProcesses/ssao2RenderingPipelinePropertyGridComponent'; import { Skeleton } from 'babylonjs/Bones/skeleton'; import { SkeletonPropertyGridComponent } from './propertyGrids/meshes/skeletonPropertyGridComponent'; import { Bone } from 'babylonjs/Bones/bone'; import { BonePropertyGridComponent } from './propertyGrids/meshes/bonePropertyGridComponent'; import { DirectionalLightPropertyGridComponent } from './propertyGrids/lights/directionalLightPropertyGridComponent'; import { DirectionalLight } from 'babylonjs/Lights/directionalLight'; import { SpotLight } from 'babylonjs/Lights/spotLight'; import { SpotLightPropertyGridComponent } from './propertyGrids/lights/spotLightPropertyGridComponent'; import { LensRenderingPipeline } from 'babylonjs/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline'; import { LensRenderingPipelinePropertyGridComponent } from './propertyGrids/postProcesses/lensRenderingPipelinePropertyGridComponent'; import { NodeMaterial } from 'babylonjs/Materials/Node/nodeMaterial'; import { NodeMaterialPropertyGridComponent } from './propertyGrids/materials/nodeMaterialPropertyGridComponent'; import { MultiMaterial } from 'babylonjs/Materials/multiMaterial'; import { MultiMaterialPropertyGridComponent } from './propertyGrids/materials/multiMaterialPropertyGridComponent'; import { ParticleSystemPropertyGridComponent } from './propertyGrids/particleSystems/particleSystemPropertyGridComponent'; import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem'; import { SpriteManagerPropertyGridComponent } from './propertyGrids/sprites/spriteManagerPropertyGridComponent'; import { SpriteManager } from 'babylonjs/Sprites/spriteManager'; import { SpritePropertyGridComponent } from './propertyGrids/sprites/spritePropertyGridComponent'; import { Sprite } from 'babylonjs/Sprites/sprite'; import { TargetedAnimationGridComponent } from './propertyGrids/animations/targetedAnimationPropertyGridComponent'; import { FollowCamera } from 'babylonjs/Cameras/followCamera'; import { FollowCameraPropertyGridComponent } from './propertyGrids/cameras/followCameraPropertyGridComponent'; export class PropertyGridTabComponent extends PaneComponent { private _timerIntervalId: number; private _lockObject = new LockObject(); constructor(props: IPaneComponentProps) { super(props); } timerRefresh() { if (!this._lockObject.lock) { this.forceUpdate(); } } componentDidMount() { this._timerIntervalId = window.setInterval(() => this.timerRefresh(), 500); } componentWillUnmount() { window.clearInterval(this._timerIntervalId); } render() { const entity = this.props.selectedEntity; if (!entity) { return (