import { AbstractMesh, Camera, Light, Material, Texture, TransformNode, IExplorerExtensibilityGroup } from "babylonjs"; 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"; interface ITreeItemSpecializedComponentProps { label: string, entity?: any, extensibilityGroups?: IExplorerExtensibilityGroup[], 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.getTotalVertices() > 0) { return ( this.onClick()} />); } else { return ( this.onClick()} />); } } if (className.indexOf("TransformNode") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Camera") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Light") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Material") !== -1) { return ( this.onClick()} />); } if (className.indexOf("Texture") !== -1) { return ( this.onClick()} />); } } return (
this.onClick()} icon={faProjectDiagram} color="cornflowerblue" />
) } }