/** * Allows to create particle systems that will run on the GPU using gl nodes. * * @remarks * TBD * * */ import { Constructor, valueof } from '../../../types/GlobalTypes'; import { TypedSopNode } from './_Base'; import { NodeContext } from '../../poly/NodeContext'; import { CoreGroup } from '../../../core/geometry/Group'; import { GlNodeChildrenMap } from '../../poly/registers/nodes/Gl'; import { BaseGlNodeType } from '../gl/_Base'; import { ParticlesSystemGpuRenderController } from './utils/ParticlesSystemGPU/RenderController'; import { ParticlesSystemGpuComputeController } from './utils/ParticlesSystemGPU/GPUComputeController'; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; import { ShaderName } from '../utils/shaders/ShaderName'; import { AssemblerName } from '../../poly/registers/assemblers/_BaseRegister'; import { ParticlesPersistedConfig } from '../gl/code/assemblers/particles/PersistedConfig'; import { ParamsInitData } from '../utils/io/IOController'; declare class ParticlesSystemGpuSopParamsConfig extends NodeParamsConfig { /** @param frame the particles simulation starts */ startFrame: import("../utils/params/ParamsConfig").ParamTemplate; /** @param auto sets the resolution of the textures used by the GPU shaders */ autoTexturesSize: import("../utils/params/ParamsConfig").ParamTemplate; /** @param max texture size. This is important to set a limit, as some systems may not handle large textures for particle sims */ maxTexturesSize: import("../utils/params/ParamsConfig").ParamTemplate; /** @param sets the texture size manually */ texturesSize: import("../utils/params/ParamsConfig").ParamTemplate; /** @param data type used by the solver */ dataType: import("../utils/params/ParamsConfig").ParamTemplate; /** @param resets the sim */ reset: import("../utils/params/ParamsConfig").ParamTemplate; /** @param material used to render the particles */ material: import("../utils/params/ParamsConfig").ParamTemplate; } export declare class ParticlesSystemGpuSopNode extends TypedSopNode { params_config: ParticlesSystemGpuSopParamsConfig; static type(): string; dispose(): void; get assemblerController(): import("../gl/code/Controller").GlAssemblerController | undefined; usedAssembler(): Readonly; protected _assembler_controller: import("../gl/code/Controller").GlAssemblerController | undefined; private _create_assembler_controller; readonly persisted_config: ParticlesPersistedConfig; private globals_handler; private _shaders_by_name; shaders_by_name(): Map; readonly gpu_controller: ParticlesSystemGpuComputeController; readonly render_controller: ParticlesSystemGpuRenderController; static require_webgl2(): boolean; static PARAM_CALLBACK_reset(node: ParticlesSystemGpuSopNode): void; PARAM_CALLBACK_reset(): void; static displayedInputNames(): string[]; private _reset_material_if_dirty_bound; protected _children_controller_context: NodeContext; initializeNode(): void; createNode(node_class: S, params_init_value_overrides?: ParamsInitData): GlNodeChildrenMap[S]; createNode>(node_class: Constructor, params_init_value_overrides?: ParamsInitData): K; children(): BaseGlNodeType[]; nodesByType(type: K): GlNodeChildrenMap[K][]; childrenAllowed(): boolean; _reset_material_if_dirty(): Promise; is_on_frame_start(): boolean; cook(input_contents: CoreGroup[]): Promise; compile_if_required(): Promise; run_assembler(): Promise; private _set_shader_names; init_with_persisted_config(): void; private _find_export_nodes; } export {};