@firecms/neat
Version:
Beautiful 3D gradients for your website
100 lines (99 loc) • 2.92 kB
TypeScript
import * as THREE from "three";
type SceneState = {
renderer: THREE.WebGLRenderer;
camera: THREE.Camera;
scene: THREE.Scene;
meshes: THREE.Mesh[];
resolution: number;
};
export type NeatConfig = {
resolution?: number;
speed?: number;
horizontalPressure?: number;
verticalPressure?: number;
waveFrequencyX?: number;
waveFrequencyY?: number;
waveAmplitude?: number;
highlights?: number;
shadows?: number;
colorSaturation?: number;
colorBrightness?: number;
colors: NeatColor[];
colorBlending?: number;
grainScale?: number;
grainIntensity?: number;
grainSparsity?: number;
grainSpeed?: number;
wireframe?: boolean;
backgroundColor?: string;
backgroundAlpha?: number;
yOffset?: number;
};
export type NeatColor = {
color: string;
enabled: boolean;
/**
* Value from 0 to 1
*/
influence?: number;
};
export type NeatController = {
destroy: () => void;
};
export declare class NeatGradient implements NeatController {
private _ref;
private _speed;
private _horizontalPressure;
private _verticalPressure;
private _waveFrequencyX;
private _waveFrequencyY;
private _waveAmplitude;
private _shadows;
private _highlights;
private _saturation;
private _brightness;
private _grainScale;
private _grainIntensity;
private _grainSparsity;
private _grainSpeed;
private _colorBlending;
private _colors;
private _wireframe;
private _backgroundColor;
private _backgroundAlpha;
private requestRef;
private sizeObserver;
private sceneState;
private _yOffset;
constructor(config: NeatConfig & {
ref: HTMLCanvasElement;
resolution?: number;
seed?: number;
});
destroy(): void;
downloadAsPNG(filename?: string): void;
set speed(speed: number);
set horizontalPressure(horizontalPressure: number);
set verticalPressure(verticalPressure: number);
set waveFrequencyX(waveFrequencyX: number);
set waveFrequencyY(waveFrequencyY: number);
set waveAmplitude(waveAmplitude: number);
set colors(colors: NeatColor[]);
set highlights(highlights: number);
set shadows(shadows: number);
set colorSaturation(colorSaturation: number);
set colorBrightness(colorBrightness: number);
set colorBlending(colorBlending: number);
set grainScale(grainScale: number);
set grainIntensity(grainIntensity: number);
set grainSparsity(grainSparsity: number);
set grainSpeed(grainSpeed: number);
set wireframe(wireframe: boolean);
set resolution(resolution: number);
set backgroundColor(backgroundColor: string);
set backgroundAlpha(backgroundAlpha: number);
set yOffset(yOffset: number);
_initScene(resolution: number): SceneState;
_buildMaterial(width: number, height: number): THREE.ShaderMaterial;
}
export {};