ts-hashlife
Version:
Efficient TypeScript implementation of HashLife, an optimized algorithm for simulating Conway's Game of Life with memoization and quadtree-based compression.
57 lines (56 loc) • 1.67 kB
TypeScript
export declare const clamp: (value: number, min: number, max: number) => number;
export declare class LifeCanvasDrawer {
private canvas;
private context;
private image_data;
private image_data_data;
private pixel_ratio;
private cell_color_rgb;
private canvas_width;
private canvas_height;
private _canvas_offset_x;
private _canvas_offset_y;
private _cell_width;
private _default_cell_width;
border_width: number;
background_color: string | null;
cell_color: string | null;
constructor();
get default_cell_width(): number;
set default_cell_width(value: number);
private get canvas_offset_x();
private set canvas_offset_x(value);
private get canvas_offset_y();
private set canvas_offset_y(value);
get cell_width(): number;
set cell_width(value: number);
private set_cell_width;
init(canvas: HTMLCanvasElement): boolean;
set_size(width: number, height: number): void;
private draw_node;
private fill_square;
redraw(node: any): void;
private draw_grid_lines;
pan(dx: number, dy: number): void;
center_view(): void;
private zoom;
zoom_at(zoom_factor: number, pinch_origin_x: number, pinch_origin_y: number): void;
zoom_centered(out: boolean): void;
zoom_to(level: number): void;
fit_bounds(bounds: {
right: number;
left: number;
bottom: number;
top: number;
}, padding?: {
right?: number;
left?: number;
bottom?: number;
top?: number;
}): void;
pixel2cell(x: number, y: number): {
x: number;
y: number;
};
private color2rgb;
}