UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

42 lines (41 loc) 2.2 kB
import { Constructor, valueof } from '../../../../types/GlobalTypes'; import { TypedNode } from '../../_Base'; import { BaseJsShaderAssembler } from './assemblers/_Base'; import { GlobalsJsBaseController } from './globals/_Base'; import { OutputJsNode } from '../Output'; import { GlobalsJsNode } from '../Globals'; import { JsNodeChildrenMap } from '../../../poly/registers/nodes/Js'; import { BaseJsNodeType } from '../_Base'; import { NodeCreateOptions } from '../../utils/hierarchy/ChildrenController'; declare class BaseJsParentNode extends TypedNode<any, any> { createNode<S extends keyof JsNodeChildrenMap>(node_class: S, options?: NodeCreateOptions): JsNodeChildrenMap[S]; createNode<K extends valueof<JsNodeChildrenMap>>(node_class: Constructor<K>, options?: NodeCreateOptions): K; children(): BaseJsNodeType[]; nodesByType<K extends keyof JsNodeChildrenMap>(type: K): JsNodeChildrenMap[K][]; } export declare abstract class AssemblerControllerNode<A extends BaseJsShaderAssembler> extends BaseJsParentNode { abstract assemblerController(): JsAssemblerController<A> | undefined; abstract compile(): void; } type BaseJsShaderAssemblerConstructor<A extends BaseJsShaderAssembler> = new (...args: any[]) => A; export declare class JsAssemblerController<A extends BaseJsShaderAssembler> { private node; protected _assembler: A; private _spareParamsController; private _globalsHandler; private _compileRequired; constructor(node: AssemblerControllerNode<A>, assembler_class: BaseJsShaderAssemblerConstructor<A>); setAssemblerGlobalsHandler(globalsHandler: GlobalsJsBaseController): void; get assembler(): A; globalsHandler(): GlobalsJsBaseController | undefined; add_output_inputs(output_child: OutputJsNode): void; add_globals_outputs(globals_node: GlobalsJsNode): void; allow_attribute_exports(): boolean; setCompilationRequired(newState?: boolean): void; setCompilationRequiredAndDirty(triggerNode?: BaseJsNodeType): void; compileRequired(): boolean; post_compile(): void; createSpareParameters(): void; } export type JsAssemblerControllerType = JsAssemblerController<BaseJsShaderAssembler>; export {};