@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
83 lines (82 loc) • 2.59 kB
TypeScript
import { CoreGraphNodeId } from './CoreGraph';
import { DirtyController, PostDirtyHook } from './DirtyController';
import { PolyScene } from '../../engine/scene/PolyScene';
/**
*
*
* This is the base class for nodes and params, which are part of the same graph, and are connected to dependencies.
*
*/
export declare class CoreGraphNode {
protected _scene: PolyScene;
protected _name: string;
private _graph;
private _graphNodeId;
private _dirtyController;
private _allPredecessors;
private _allSuccessors;
private _allPredecessorsDirty;
private _allSuccessorsDirty;
constructor(_scene: PolyScene, _name: string);
private _disposed;
dispose(): void;
disposed(): boolean;
/**
* returns the name
*
*/
name(): string;
setName(name: string): void;
/**
* returns the scene
*
*/
scene(): PolyScene;
/**
* returns the id, which is unique for the scene
*
*/
graphNodeId(): CoreGraphNodeId;
get dirtyController(): DirtyController;
/**
* makes the graphNode dirty, which in turns makes its dependencies dirty
*
*/
setDirty(trigger?: CoreGraphNode | null): void;
/**
* makes dependencies dirty
*
*/
setSuccessorsDirty(trigger?: CoreGraphNode): void;
/**
* removes the dirty state
*
*/
removeDirtyState(): void;
isDirty(): boolean;
/**
* adds a callback that gets run when the graphNode is dirty
*
*/
addPostDirtyHook(name: string, callback: PostDirtyHook): void;
removePostDirtyHook(name: string): void;
graphRemove(): void;
addGraphInput(src: CoreGraphNode, checkCycle?: boolean): boolean;
removeGraphInput(src: CoreGraphNode): void;
graphDisconnectPredecessors(): void;
graphDisconnectSuccessors(): void;
graphPredecessorIds(): Readonly<CoreGraphNodeId[]> | undefined;
graphPredecessors(): Readonly<CoreGraphNode[]> | undefined;
graphSuccessorIds(): Readonly<CoreGraphNodeId[]> | undefined;
graphSuccessors(): Readonly<CoreGraphNode[]> | undefined;
private _clearAllPredecessors;
private _clearAllSuccessors;
graphAllPredecessors(): Readonly<CoreGraphNode[]>;
graphAllSuccessors(): Readonly<CoreGraphNode[]>;
hasPredecessor(node: CoreGraphNode): boolean;
clearCachesWithPredecessorsAndSuccessors(): void;
setForbiddenTriggerNodes(nodes: CoreGraphNode | CoreGraphNode[]): void;
clearForbiddenTriggerNodes(): void;
setSelfDirtyForbidden(state: boolean): void;
selfDirtyForbidden(): boolean;
}