polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
28 lines (27 loc) • 1.9 kB
TypeScript
import { Constructor, valueof } from '../../../types/GlobalTypes';
import { TypedMatNode } from './_Base';
import { GlAssemblerController } from '../gl/code/Controller';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { ShaderAssemblerMaterial } from '../gl/code/assemblers/materials/_BaseMaterial';
import { MaterialPersistedConfig } from '../gl/code/assemblers/materials/PersistedConfig';
import { GlNodeChildrenMap } from '../../poly/registers/nodes/Gl';
import { BaseGlNodeType } from '../gl/_Base';
import { ShaderMaterialWithCustomMaterials } from '../../../core/geometry/Material';
import { NodeContext } from '../../poly/NodeContext';
import { ParamsInitData } from '../utils/io/IOController';
export declare abstract class TypedBuilderMatNode<A extends ShaderAssemblerMaterial, K extends NodeParamsConfig> extends TypedMatNode<ShaderMaterialWithCustomMaterials, K> {
protected _assembler_controller: GlAssemblerController<A> | undefined;
protected _children_controller_context: NodeContext;
readonly persisted_config: MaterialPersistedConfig;
create_material(): ShaderMaterialWithCustomMaterials;
get assemblerController(): GlAssemblerController<A> | undefined;
protected abstract _create_assembler_controller(): GlAssemblerController<A> | undefined;
createNode<S extends keyof GlNodeChildrenMap>(node_class: S, params_init_value_overrides?: ParamsInitData): GlNodeChildrenMap[S];
createNode<K extends valueof<GlNodeChildrenMap>>(node_class: Constructor<K>, params_init_value_overrides?: ParamsInitData): K;
children(): BaseGlNodeType[];
nodesByType<K extends keyof GlNodeChildrenMap>(type: K): GlNodeChildrenMap[K][];
childrenAllowed(): boolean;
compile_if_required(): void;
protected _compile(): void;
}
export declare type BaseBuilderMatNodeType = TypedBuilderMatNode<ShaderAssemblerMaterial, NodeParamsConfig>;