import { Camera } from "babylonjs/Cameras/camera"; import { IExplorerExtensibilityGroup } from "babylonjs/Debug/debugLayer"; import { AnimationGroup, TargetedAnimation } from "babylonjs/Animations/animationGroup"; import { Material } from "babylonjs/Materials/material"; import { Texture } from "babylonjs/Materials/Textures/texture"; import { TransformNode } from "babylonjs/Meshes/transformNode"; import { Light } from "babylonjs/Lights/light"; import { AbstractMesh } from "babylonjs/Meshes/abstractMesh"; import { PostProcess } from 'babylonjs/PostProcesses/postProcess'; import { MeshTreeItemComponent } from "./entities/meshTreeItemComponent"; import { CameraTreeItemComponent } from "./entities/cameraTreeItemComponent"; import { LightTreeItemComponent } from "./entities/lightTreeItemComponent"; import { TreeItemLabelComponent } from "./treeItemLabelComponent"; import { faProjectDiagram } from '@fortawesome/free-solid-svg-icons'; import { MaterialTreeItemComponent } from "./entities/materialTreeItemComponent"; import { TextureTreeItemComponent } from "./entities/textureTreeItemComponent"; import { TransformNodeItemComponent } from "./entities/transformNodeTreeItemComponent"; import * as React from "react"; import { ControlTreeItemComponent } from "./entities/gui/controlTreeItemComponent"; import { Control } from "babylonjs-gui/2D/controls/control"; import { AdvancedDynamicTexture } from "babylonjs-gui/2D/advancedDynamicTexture"; import { AdvancedDynamicTextureTreeItemComponent } from "./entities/gui/advancedDynamicTextureTreeItemComponent"; import { AnimationGroupItemComponent } from "./entities/animationGroupTreeItemComponent"; import { GlobalState } from "../globalState"; import { PostProcessItemComponent } from './entities/postProcessTreeItemComponent'; import { RenderingPipelineItemComponent } from './entities/renderingPipelineTreeItemComponent'; import { PostProcessRenderPipeline } from 'babylonjs/PostProcesses/RenderPipeline/postProcessRenderPipeline'; import { SkeletonTreeItemComponent } from './entities/skeletonTreeItemComponent'; import { Skeleton } from 'babylonjs/Bones/skeleton'; import { BoneTreeItemComponent } from './entities/boneTreeItemComponent'; import { Bone } from 'babylonjs/Bones/bone'; import { ParticleSystemTreeItemComponent } from './entities/particleSystemTreeItemComponent'; import { IParticleSystem } from 'babylonjs/Particles/IParticleSystem'; import { SpriteManagerTreeItemComponent } from './entities/spriteManagerTreeItemComponent'; import { SpriteManager } from 'babylonjs/Sprites/spriteManager'; import { SpriteTreeItemComponent } from './entities/spriteTreeItemComponent'; import { Sprite } from 'babylonjs/Sprites/sprite'; import { TargetedAnimationItemComponent } from './entities/targetedAnimationTreeItemComponent'; interface ITreeItemSpecializedComponentProps { label: string, entity?: any, extensibilityGroups?: IExplorerExtensibilityGroup[], globalState: GlobalState, onClick?: () => void } export class TreeItemSpecializedComponent extends React.Component { constructor(props: ITreeItemSpecializedComponentProps) { super(props); } onClick() { if (!this.props.onClick) { return; } this.props.onClick(); } render() { const entity = this.props.entity; if (entity && entity.getClassName) { const className = entity.getClassName(); if (className.indexOf("Mesh") !== -1) { const mesh = entity as AbstractMesh; if (mesh.isAnInstance || mesh.getTotalVertices() > 0) { return ( this.onClick()} />); } else { return ( this.onClick()} />); } } if (className.indexOf("SpriteManager") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Sprite") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Skeleton") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Bone") !== -1) { return ( this.onClick()} />); } if (className.indexOf("TransformNode") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Camera") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Light", className.length - 5) !== -1) { return ( this.onClick()} />); } if (className.indexOf("Material") !== -1) { return ( this.onClick()} />); } if (className.indexOf("ParticleSystem") !== -1) { return ( this.onClick()} />); } if (className === "AdvancedDynamicTexture") { return ( this.onClick()} />); } if (className === "AnimationGroup") { return ( this.onClick()} />); } if (className === "TargetedAnimation") { return ( this.onClick()} />); } if (className.indexOf("Texture") !== -1) { return ( this.onClick()} />); } if (className.indexOf("RenderingPipeline") !== -1) { return ( this.onClick()} />); } if (className.indexOf("PostProcess") !== -1) { return ( this.onClick()} />); } if (entity._host) { return ( this.onClick()} />); } } return (
this.onClick()} icon={faProjectDiagram} color="cornflowerblue" />
); } }