UNPKG

fluid-pointer-react

Version:

A dependency-free fluid simulation component with WebGL-based physics - supports both vanilla web components and React

113 lines 2.93 kB
export interface FluidConfig { SIM_RESOLUTION: number; DYE_RESOLUTION: number; DENSITY_DISSIPATION: number; VELOCITY_DISSIPATION: number; PRESSURE: number; PRESSURE_ITERATIONS: number; CURL: number; SPLAT_RADIUS: number; SPLAT_FORCE: number; MOUSE_INTERACTION: boolean; SHADING: boolean; COLORFUL: boolean; COLOR_UPDATE_SPEED: number; COLOR_TRANSITION_SPEED: number; COLOR_MODE: ColorMode; COLOR: string; PAUSED: boolean; } export interface WebGLExtensions { formatRGBA: { internalFormat: number; format: number; } | null; formatRG: { internalFormat: number; format: number; } | null; formatR: { internalFormat: number; format: number; } | null; halfFloatTexType: number; supportLinearFiltering: any; } export interface Pointer { id: number; texcoordX: number; texcoordY: number; prevTexcoordX: number; prevTexcoordY: number; deltaX: number; deltaY: number; down: boolean; moved: boolean; color: [number, number, number]; } export interface FBO { fbo: WebGLFramebuffer; texture: WebGLTexture; width: number; height: number; texelSizeX: number; texelSizeY: number; attach(id: number): number; } export interface DoubleFBO { read: FBO; write: FBO; swap(): void; } export interface ShaderProgram { program: WebGLProgram; uniforms: Record<string, WebGLUniformLocation>; bind(): void; } export interface Material { program: WebGLProgram; uniforms: Record<string, WebGLUniformLocation>; bind(): void; setKeywords(keywords: string[]): void; } export interface FluidSplatEventDetail { x: number; y: number; velocityX: number; velocityY: number; color: [number, number, number]; force: number; } export interface FluidReadyEventDetail { width: number; height: number; } export interface FluidPerformanceEventDetail { fps: number; frameTime: number; } export interface FluidPointerEventMap { "fluid-ready": CustomEvent<FluidReadyEventDetail>; "fluid-splat": CustomEvent<FluidSplatEventDetail>; "fluid-interaction-start": CustomEvent<{ x: number; y: number; }>; "fluid-interaction-end": CustomEvent<{ x: number; y: number; }>; "fluid-fps-change": CustomEvent<FluidPerformanceEventDetail>; "fluid-pause": CustomEvent<{}>; "fluid-resume": CustomEvent<{}>; } export type ColorMode = "rainbow" | "monochrome" | "custom"; export type InteractionMode = "movement" | "click" | "both"; export type QualityLevel = "low" | "medium" | "high" | "ultra"; export interface QualityPreset { simResolution: number; dyeResolution: number; pressureIterations: number; } export declare const QUALITY_PRESETS: Record<QualityLevel, QualityPreset>; //# sourceMappingURL=fluid-types.d.ts.map