/** * @module viw-webgl-component */ import * as VIM from 'vim-webgl-viewer/'; import { ComponentSettings } from '../settings/settings'; import { ComponentCamera } from './camera'; /** * Manages the isolation mechanic in the vim component. */ export declare class Isolation { private _viewer; private _settings; private _isolation; private _lastIsolation; private _camera; private _references; private _onChanged; /** Signal dispatched when the isolation set changes. */ get onChanged(): import("ste-simple-events").ISimpleEvent; constructor(viewer: VIM.Viewer, camera: ComponentCamera, settings: ComponentSettings); /** * Applies relevant settings to isolation. * @param settings The settings to be applied to isolation. */ applySettings(settings: ComponentSettings): void; /** * Sets the reference objects for a given VIM. * @param vim The VIM for which reference objects are being set. * @param reference An array of reference objects or the string 'always' to indicate permanent reference. */ setReference(vim: VIM.Vim, reference: VIM.Object3D[] | 'always'): void; /** * Retrieves the reference objects set for a given VIM. * @param vim The VIM for which reference objects are being retrieved. * @returns The reference objects set for the specified VIM. */ getReference(vim: VIM.Vim): "always" | Set; /** * Clears all reference objects set for VIMs. */ clearReferences(): void; /** * Returns true if there are currently objects isolated. * @returns True if there are currently objects isolated; otherwise, false. */ any(): boolean; /** * Returns the current array of isolated objects. * @returns The array of objects currently isolated, or undefined if no objects are isolated. */ current(): VIM.Object3D[]; /** * Isolates the objects in the given array and shows the rest as ghost. * @param objects An array of objects to isolate. * @param source The source of isolation. * @returns True if isolation occurs; otherwise, false. */ isolate(objects: VIM.Object3D[], source: string): boolean; /** * Toggles current isolation based on selection. * @param source The source of isolation. */ toggleIsolation(source: string): void; /** * Removes the given objects from the isolation set. * @param objects An array of objects to be removed from isolation. * @param source The source of the removal operation. */ hide(objects: VIM.Object3D[], source: string): void; /** * Adds the given objects to the isolation set. * @param objects An array of objects to be added to isolation. * @param source The source of the addition operation. */ show(objects: VIM.Object3D[], source: string): void; /** * Clears the current isolation. * @param source The source of the isolation clearing operation. */ clear(source: string): void; /** * Show all objects and quit isolation mode. */ private _showAll; getMaterial(settings: ComponentSettings, isolate: boolean): VIM.THREE.Material; private _isolate; }