polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
36 lines (35 loc) • 1.92 kB
TypeScript
import { Constructor, valueof } from '../../../../types/GlobalTypes';
import { TypedNode } from '../../_Base';
import { BaseJsFunctionAssembler } from './assemblers/_Base';
import { OutputJsNode } from '../Output';
import { GlobalsJsNode } from '../Globals';
import { JsNodeChildrenMap } from '../../../poly/registers/nodes/Js';
import { BaseJsNodeType } from '../_Base';
import { ParamsInitData } from '../../utils/io/IOController';
export declare class AssemblerControllerNode extends TypedNode<any, any> {
createNode<S extends keyof JsNodeChildrenMap>(node_class: S, params_init_value_overrides?: ParamsInitData): JsNodeChildrenMap[S];
createNode<K extends valueof<JsNodeChildrenMap>>(node_class: Constructor<K>, params_init_value_overrides?: ParamsInitData): K;
children(): BaseJsNodeType[];
nodesByType<K extends keyof JsNodeChildrenMap>(type: K): JsNodeChildrenMap[K][];
assembler_controller: JsAssemblerController<BaseJsFunctionAssembler>;
}
declare type BaseJsFunctionAssemblerConstructor<A extends BaseJsFunctionAssembler> = new (...args: any[]) => A;
export declare class JsAssemblerController<A extends BaseJsFunctionAssembler> {
private node;
protected _assembler: A;
private _spare_params_controller;
private _compile_required;
constructor(node: AssemblerControllerNode, assembler_class: BaseJsFunctionAssemblerConstructor<A>);
get assembler(): A;
add_output_inputs(output_child: OutputJsNode): void;
add_globals_outputs(globals_node: GlobalsJsNode): void;
allow_attribute_exports(): boolean;
on_create(): void;
set_compilation_required(new_state?: boolean): void;
set_compilation_required_and_dirty(trigger_node?: BaseJsNodeType): void;
compile_required(): boolean;
post_compile(): void;
create_spare_parameters(): void;
}
export declare type JsAssemblerControllerType = JsAssemblerController<BaseJsFunctionAssembler>;
export {};