fluid-pointer-react
Version:
A dependency-free fluid simulation component with WebGL-based physics - supports both vanilla web components and React
57 lines • 1.73 kB
TypeScript
import type { FluidConfig } from "../types/fluid-types.js";
export declare class FluidSimulation {
private gl;
private ext;
private config;
private contextId;
private isDestroyed;
private isInitializing;
private velocityFBO;
private dyeFBO;
private pressureFBO;
private divergenceFBO;
private curlFBO;
private blitVertexBuffer;
private blitIndexBuffer;
private clearProgram;
private splatProgram;
private advectionProgram;
private divergenceProgram;
private curlProgram;
private vorticityProgram;
private pressureProgram;
private gradientSubtractProgram;
private displayMaterial;
private pointerTracker;
private colorManager;
private lastTime;
private canvas;
constructor(canvas: HTMLCanvasElement, config: FluidConfig);
initialize(): Promise<void>;
/**
* Validates that WebGL resources are valid and belong to this context
*/
private validateWebGLResources;
/**
* Checks for WebGL errors and logs them with context information
*/
private checkWebGLError;
private initializeBlitBuffers;
private initializeShaders;
/**
* Draws a full-screen quad using instance-specific buffers
*/
private blit;
private initializeFBOs;
private initializeUtilities;
step(): void;
private stepFluid;
render(): void;
splat(x: number, y: number, dx: number, dy: number, color?: [number, number, number]): void;
addRandomSplats(count: number): void;
updateConfig(newConfig: Partial<FluidConfig>): void;
handleResize(_width: number, _height: number): void;
private calcDeltaTime;
destroy(): void;
}
//# sourceMappingURL=simulation.d.ts.map