@prachwal/mandelbrot-generator
Version:
Professional Mandelbrot fractal generator with TypeScript support, interactive web interface, and multiple output formats
51 lines • 1.98 kB
TypeScript
/**
* @fileoverview Base abstract class for all fractal algorithms
* @module BaseFractal
*/
import type { FractalConfig, FractalResult, Complex, ParameterSchema, Bounds } from './types';
/**
* Abstract base class for all fractal algorithms
* Provides common interface and functionality for fractal generation
*/
export declare abstract class BaseFractal {
/** Unique identifier for this fractal type */
abstract readonly id: string;
/** Human-readable name */
abstract readonly name: string;
/** Description of the fractal */
abstract readonly description: string;
/** Default configuration for this fractal */
abstract readonly defaultConfig: FractalConfig;
/** Parameter schema for UI generation */
abstract readonly parameterSchema: ParameterSchema[];
/**
* Core iteration function - must be implemented by each fractal
* @param point - Point in complex plane to test
* @param config - Fractal-specific configuration
* @returns Iteration result (escape time, convergence info, etc.)
*/
abstract iterate(point: Complex, config: FractalConfig): FractalResult;
/**
* Generate fractal data for given configuration
* @param config - Generation configuration
* @returns Image data array
*/
generateData(config: FractalConfig): Uint8ClampedArray;
/**
* Convert screen coordinates to complex plane
*/
protected screenToComplex(x: number, y: number, bounds: Bounds, config: FractalConfig): Complex;
/**
* Calculate bounds of complex plane for given config
*/
protected calculateBounds(config: FractalConfig): Bounds;
/**
* Get color for fractal result
*/
protected abstract getColor(result: FractalResult, config: FractalConfig): [number, number, number];
/**
* Validate configuration for this fractal type
*/
validateConfig(_config: FractalConfig): boolean;
}
//# sourceMappingURL=base-fractal.d.ts.map