@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
41 lines (40 loc) • 1.84 kB
TypeScript
import { BaseObjNodeClass } from '../_Base';
import { Object3D } from 'three';
import { DisplayNodeController, DisplayNodeControllerCallbacks } from '../../utils/DisplayNodeController';
import { Group } from 'three';
import { BaseSopNodeType } from '../../sop/_Base';
import { CoreGroup } from '../../../../core/geometry/Group';
export type OnSopGroupUpdatedHook = () => void;
interface BaseObjNodeClassWithDisplayNode extends BaseObjNodeClass {
displayNodeController: DisplayNodeController;
}
export declare class ObjChildrenDisplayController {
protected node: BaseObjNodeClassWithDisplayNode;
protected _childrenUuids: Set<string>;
protected _sopGroup: Group<import("three").Object3DEventMap>;
protected _newSpecializedObjects: Object3D[];
protected _newObjectsAreDifferent: boolean;
private _scene;
constructor(node: BaseObjNodeClassWithDisplayNode);
private _createSopGroup;
sopGroup(): Group<import("three").Object3DEventMap>;
setSopGroupName(): void;
dispose(): void;
displayNodeControllerCallbacks(): DisplayNodeControllerCallbacks;
initializeNode(): void;
private _updateSopGroupHierarchy;
usedInScene(): boolean;
requestDisplayNodeContainer(): Promise<void>;
private removeChildren;
_setContentUnderSopGroup(): Promise<void>;
private _notifyCamerasController;
protected _addSpecializedObjects(displayNode: BaseSopNodeType, coreGroup: CoreGroup, newObjects: Object3D[]): void;
private _onSopGroupUpdatedHookNames;
private _onSopGroupUpdatedHooks;
registerOnSopGroupUpdated(callbackName: string, callback: OnSopGroupUpdatedHook): void;
private _clearHooks;
deregisterOnSopGroupUpdated(callbackName: string): void;
private _runOnSopGroupUpdatedHooks;
onSopGroupUpdatedCallbackNames(): string[] | undefined;
}
export {};