polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
147 lines (146 loc) • 7.66 kB
TypeScript
import { PolyScene } from '../scene/PolyScene';
import { CoreGraphNode } from '../../core/graph/CoreGraphNode';
import { UIData } from './utils/UIData';
import { FlagsController, FlagsControllerD } from './utils/FlagsController';
import { StatesController } from './utils/StatesController';
import { HierarchyParentController } from './utils/hierarchy/ParentController';
import { HierarchyChildrenController } from './utils/hierarchy/ChildrenController';
import { LifeCycleController } from './utils/LifeCycleController';
import { TypedContainerController } from './utils/ContainerController';
import { NodeCookController } from './utils/CookController';
import { NameController } from './utils/NameController';
import { NodeSerializer, NodeSerializerData } from './utils/Serializer';
import { ParamsController } from './utils/params/ParamsController';
import { ParamConstructorMap } from '../params/types/ParamConstructorMap';
import { ParamInitValuesTypeMap } from '../params/types/ParamInitValuesTypeMap';
import { NodeParamsConfig } from './utils/params/ParamsConfig';
import { ParamsValueAccessorType } from './utils/params/ParamsValueAccessor';
import { IOController, ParamsInitData } from './utils/io/IOController';
import { NodeEvent } from '../poly/NodeEvent';
import { NodeContext } from '../poly/NodeContext';
import { ParamsAccessorType } from './utils/params/ParamsAccessor';
export interface NodeDeletedEmitData {
parent_id: CoreGraphNodeId;
}
export interface NodeCreatedEmitData {
child_node_json: NodeSerializerData;
}
declare type EmitDataByNodeEventMapGeneric = {
[key in NodeEvent]: any;
};
export interface EmitDataByNodeEventMap extends EmitDataByNodeEventMapGeneric {
[NodeEvent.CREATED]: NodeCreatedEmitData;
[NodeEvent.DELETED]: NodeDeletedEmitData;
[NodeEvent.ERROR_UPDATED]: undefined;
}
export interface IntegrationData {
name: string;
data: PolyDictionary<string>;
}
import { ContainableMap } from '../containers/utils/ContainableMap';
import { ParamOptions } from '../params/utils/OptionsController';
import { ParamType } from '../poly/ParamType';
import { DisplayNodeController } from './utils/DisplayNodeController';
import { NodeTypeMap } from '../containers/utils/ContainerMap';
import { ParamInitValueSerialized } from '../params/types/ParamInitValueSerialized';
import { ModuleName } from '../poly/registers/modules/_BaseRegister';
import { BasePersistedConfig } from './utils/PersistedConfig';
import { AssemblerName } from '../poly/registers/assemblers/_BaseRegister';
import { PolyNodeController } from './utils/poly/PolyNodeController';
import { CoreGraphNodeId } from '../../core/graph/CoreGraph';
import { PolyDictionary } from '../../types/GlobalTypes';
export declare class TypedNode<NC extends NodeContext, K extends NodeParamsConfig> extends CoreGraphNode {
params_init_value_overrides?: ParamsInitData | undefined;
container_controller: TypedContainerController<NC>;
private _parent_controller;
private _ui_data;
private _states;
private _lifecycle;
private _serializer;
private _cook_controller;
readonly flags: FlagsController | undefined;
readonly display_node_controller: DisplayNodeController | undefined;
readonly persisted_config: BasePersistedConfig | undefined;
private _params_controller;
readonly params_config: K | undefined;
readonly pv: ParamsValueAccessorType<K>;
readonly p: ParamsAccessorType<K>;
copy_param_values(node: TypedNode<NC, K>): void;
private _name_controller;
get parentController(): HierarchyParentController;
static displayedInputNames(): string[];
private _children_controller;
protected _children_controller_context: NodeContext | undefined;
get childrenControllerContext(): NodeContext | undefined;
private _create_children_controller;
get childrenController(): HierarchyChildrenController | undefined;
childrenAllowed(): boolean;
get uiData(): UIData;
get states(): StatesController;
get lifecycle(): LifeCycleController;
get serializer(): NodeSerializer;
get cookController(): NodeCookController<NC>;
protected _io: IOController<NC> | undefined;
get io(): IOController<NC>;
get nameController(): NameController;
setName(name: string): void;
_set_core_name(name: string): void;
get params(): ParamsController;
constructor(scene: PolyScene, name?: string, params_init_value_overrides?: ParamsInitData | undefined);
private _initialized;
initialize_base_and_node(): void;
protected initializeBaseNode(): void;
protected initializeNode(): void;
static type(): string;
type(): string;
static nodeContext(): NodeContext;
nodeContext(): NodeContext;
static require_webgl2(): boolean;
require_webgl2(): boolean;
setParent(parent: BaseNodeType | null): void;
parent(): BaseNodeType | null;
root(): import("./manager/ObjectsManager").ObjectsManagerNode;
fullPath(relative_to_parent?: BaseNodeType): string;
create_params(): void;
addParam<T extends ParamType>(type: T, name: string, default_value: ParamInitValuesTypeMap[T], options?: ParamOptions): ParamConstructorMap[T] | undefined;
param_default_value(name: string): ParamInitValueSerialized;
cook(input_contents: any[]): any;
requestContainer(): Promise<import("../containers/utils/ContainerMap").ContainerMap[NC]>;
setContainer(content: ContainableMap[NC], message?: string | null): void;
createNode(node_class: any, params_init_value_overrides?: ParamsInitData): BaseNodeType | undefined;
create_operation_container(type: string, operation_container_name: string, params_init_value_overrides?: ParamsInitData): import("../../core/operations/container/_Base").BaseOperationContainer | undefined;
removeNode(node: BaseNodeType): void;
dispose(): void;
children(): BaseNodeType[];
node(path: string): BaseNodeType | null;
nodeSibbling(name: string): NodeTypeMap[NC] | null;
nodesByType(type: string): BaseNodeType[];
setInput(input_index_or_name: number | string, node: NodeTypeMap[NC] | null, output_index_or_name?: number | string): void;
emit(event_name: NodeEvent.CREATED, data: EmitDataByNodeEventMap[NodeEvent.CREATED]): void;
emit(event_name: NodeEvent.DELETED, data: EmitDataByNodeEventMap[NodeEvent.DELETED]): void;
emit(event_name: NodeEvent.NAME_UPDATED): void;
emit(event_name: NodeEvent.OVERRIDE_CLONABLE_STATE_UPDATE): void;
emit(event_name: NodeEvent.NAMED_INPUTS_UPDATED): void;
emit(event_name: NodeEvent.NAMED_OUTPUTS_UPDATED): void;
emit(event_name: NodeEvent.INPUTS_UPDATED): void;
emit(event_name: NodeEvent.PARAMS_UPDATED): void;
emit(event_name: NodeEvent.UI_DATA_POSITION_UPDATED): void;
emit(event_name: NodeEvent.UI_DATA_COMMENT_UPDATED): void;
emit(event_name: NodeEvent.ERROR_UPDATED): void;
emit(event_name: NodeEvent.FLAG_BYPASS_UPDATED): void;
emit(event_name: NodeEvent.FLAG_DISPLAY_UPDATED): void;
emit(event_name: NodeEvent.FLAG_OPTIMIZE_UPDATED): void;
emit(event_name: NodeEvent.SELECTION_UPDATED): void;
toJSON(include_param_components?: boolean): NodeSerializerData;
requiredModules(): Promise<ModuleName[] | void>;
usedAssembler(): AssemblerName | void;
integrationData(): IntegrationData | void;
readonly polyNodeController: PolyNodeController | undefined;
}
export declare type BaseNodeType = TypedNode<any, any>;
export declare class BaseNodeClass extends TypedNode<any, any> {
}
export declare class BaseNodeClassWithDisplayFlag extends TypedNode<any, any> {
readonly flags: FlagsControllerD;
}
export {};