UNPKG

@metacell/geppetto-meta-ui

Version:

React components from geppetto-meta to create neuroscience applications and visualize data.

188 lines (187 loc) 5.65 kB
export default class ThreeDEngine { constructor(containerRef: any, cameraOptions: any, cameraHandler: any, setColorHandler: any, backgroundColor: any, pickingEnabled: any, linesThreshold: any, renderingThreshold: any, onSelection: any, selectionStrategy: any, onHoverListeners: any, onEmptyHoverListener: any, preserveDrawingBuffer: any, dracoDecoderPath: any); scene: THREE.Scene; cameraManager: CameraManager; cameraOptions: any; onSelection: any; renderer: THREE.WebGLRenderer; controls: TrackballControls; mouse: { x: number; y: number; }; mouseContainer: { x: number; y: number; }; frameId: number; meshFactory: MeshFactory; pickingEnabled: any; onHoverListeners: any; onEmptyHoverListener: any; cameraHandler: any; setColorHandler: any; selectionStrategy: any; containerRef: any; width: any; height: any; lastRequestFrame: number; lastRenderTimer: Date; instancesMap: Map<any, any>; externalThreeDObjectsUUIDs: Set<any>; updateInstances(proxyInstances: any): Promise<void>; updateCamera(cameraOptions: any): void; stop(): void; animate(): void; renderScene(): void; resize(): void; requestFrame(): void; mouseDownEventListener: (event: any) => void; mouseUpEventListener: (event: any) => void; mouseMoveEventListener: (event: any) => void; /** * Setups the renderer * @param containerRef */ setupRenderer(containerRef: any, options: any): void; /** * Set up the listeners use to detect mouse movement and window resizing */ setupListeners: () => void; /** * Sets onHoverListeners */ setOnHoverListeners(onHoverListeners: any): void; setOnEmptyHoverListener(onEmptyHoverListener: any): void; /** * Setups the camera * @param cameraOptions * @param aspect */ setupCamera(cameraOptions: any, aspect: any): void; /** * * @param shaders */ configureRenderer(shaders: any): void; composer: EffectComposer; /** * Setups the lights */ setupLights(): void; setupControls(): void; clientX: any; clientY: any; updateExternalThreeDObjects(threeDObjects: any): void; /** * Adds instances to the ThreeJS Scene * @param proxyInstances */ addInstancesToScene(proxyInstances: any): Promise<void>; addToScene(obj: any): void; clearScene(proxyInstances: any): Promise<any>; traverseInstance(proxyInstance: any, geppettoInstance: any): void; /** * Returns intersected objects from mouse click * * @returns {Array} a list of objects intersected by the current mouse coordinates */ getIntersectedObjects(): any[]; updateVisibleChildren(): void; visibleChildren: any[]; /** * Check that the material for the already present instance did not change. * return true if the color changed, otherwise false. */ checkMaterial(mesh: any, instance: any): boolean; updateInstanceMaterial(mesh: any, instance: any): void; setInstanceMaterial(mesh: any, instance: any): void; updateInstancesColor(proxyInstances: any): void; /** * Sets the color of the instances * * @param path * @param color */ setInstanceColor(path: any, color: any): void; /** * * @param instancePath * @param visualGroups */ setSplitGroupsColor(instancePath: any, visualGroups: any): void; updateGroupMeshes(proxyInstances: any): void; getVisualElements(instance: any, visualGroups: any): {}; /** * Show connection lines for this instance. * * @param instancePath * @param {boolean} mode - Show or hide connection lines */ showConnectionLines(instancePath: any, mode: boolean): void; /** * * * @param instance */ showConnectionLinesForInstance(instance: any): void; updateInstancesConnectionLines(proxyInstances: any): void; /** * Removes connection lines, all if nothing is passed in or just the ones passed in. * * @param instance - optional, instance for which we want to remove the connections */ removeConnectionLines(instance: any): void; /** * Sets whether to use wireframe for the materials of the meshes * @param wireframe */ setWireframe(wireframe: any): void; wireframe: any; setBackgroundColor(color: any): void; updateControls(): void; /** * Returns the scene renderer * @returns renderer */ getRenderer(): THREE.WebGLRenderer; /** * Returns the scene * @returns scene */ getScene(): THREE.Scene; /** * Returns the wireframe flag * @returns wireframe */ getWireframe(): any; /** * Sets selectionStrategy */ setSelectionStrategy(selectionStrategy: any): void; /** * Sets onSelection */ setOnSelection(onSelection: any): void; /** * Sets linesThreshold */ setLinesThreshold(linesThreshold: any): void; /** * Sets pickingEnabled */ setPickingEnabled(pickingEnabled: any): void; /** * Sets cameraHandler */ seCameraHandler(cameraHandler: any): void; /** * Sets setColorHandler */ setSetColorHandler(setColorHandler: any): void; } import * as THREE from "three"; import CameraManager from "./CameraManager"; import { TrackballControls } from "./TrackballControls"; import MeshFactory from "./MeshFactory"; import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js";