UNPKG

@prachwal/mandelbrot-generator

Version:

Professional Mandelbrot fractal generator with TypeScript support, interactive web interface, and multiple output formats

51 lines 1.98 kB
/** * @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