@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
48 lines (47 loc) • 2.15 kB
TypeScript
import { PolyScene } from '../../engine/scene/PolyScene';
import { CoreGraphNode } from './CoreGraphNode';
export type CoreGraphNodeId = number;
export declare class CoreGraph {
private _nextId;
private _scene;
private _successors;
private _predecessors;
private _nodesById;
private _forbiddenTriggerNodeIds;
private _selfDirtyForbidden;
private _nodesCount;
private _debugging;
private _addedNodesDuringDebugging;
startDebugging(): void;
stopDebugging(): void;
printDebug(): void;
setScene(scene: PolyScene): void;
scene(): PolyScene | undefined;
nextId(): CoreGraphNodeId;
nodesFromIds(ids: number[], target: CoreGraphNode[]): void;
nodeFromId(id: number): CoreGraphNode | undefined;
hasNode(node: CoreGraphNode): boolean;
addNode(node: CoreGraphNode): void;
removeNode(node: CoreGraphNode): void;
nodesCount(): number;
connect(src: CoreGraphNode, dest: CoreGraphNode, checkCycle?: boolean): boolean;
disconnect(src: CoreGraphNode, dest: CoreGraphNode): void;
disconnectPredecessors(node: CoreGraphNode): void;
disconnectSuccessors(node: CoreGraphNode): void;
predecessorIds(id: CoreGraphNodeId): CoreGraphNodeId[] | undefined;
predecessors(node: CoreGraphNode): CoreGraphNode[] | undefined;
successorIds(id: CoreGraphNodeId): CoreGraphNodeId[] | undefined;
successors(node: CoreGraphNode): CoreGraphNode[] | undefined;
private _boundPredecessorIds;
private _boundSuccessorIds;
allPredecessorIds(node: CoreGraphNode, target: CoreGraphNodeId[]): void;
allSuccessorIds(node: CoreGraphNode, target: CoreGraphNodeId[]): void;
allPredecessors(node: CoreGraphNode, target: CoreGraphNode[]): void;
allSuccessors(node: CoreGraphNode, target: CoreGraphNode[]): void;
private _createConnection;
private _removeConnection;
setForbiddenTriggerNodes(src: CoreGraphNode, dest: CoreGraphNode | CoreGraphNode[]): void;
clearForbiddenTriggerNodes(src: CoreGraphNode): void;
setSelfDirtyForbidden(node: CoreGraphNode, state: boolean): void;
selfDirtyForbidden(node: CoreGraphNode): boolean;
}