4528e08e04
Fase F: segundo stub de pineal cerrado.
- matrix — HeatmapMatrix densa width×height de f32, con revision para
invalidación de textura; get/set/min_max/replace_data.
- palette — Ramp::{Viridis, Grayscale}; Viridis por interpolación
lineal de 5 control points perceptualmente uniformes.
- encoder — encode_argb: normaliza por min/max + rampa + pack 0xAARRGGBB
para subir como textura (camino de matrices grandes).
- paint — painter agnóstico: un fill_rect por celda contra un Canvas
(camino de matrices chicas + export SVG).
12 tests verdes. cargo check --workspace verde.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
24 lines
765 B
Rust
24 lines
765 B
Rust
//! `pineal-heatmap` — matriz `width × height` de `f32` → visualización.
|
||
//!
|
||
//! Dos caminos de render:
|
||
//! - [`paint`] — agnóstico, un `fill_rect` por celda contra un `Canvas`.
|
||
//! Apto para matrices chicas y export SVG.
|
||
//! - [`encoder::encode_argb`] — empaqueta la matriz como buffer ARGB para
|
||
//! que un backend lo suba como textura y la rendee con un solo blit.
|
||
//! Apto para matrices grandes (4096² sin sudar).
|
||
//!
|
||
//! - [`matrix`] — `HeatmapMatrix` con `revision` para invalidación.
|
||
//! - [`palette`] — color ramps (Viridis, Grayscale).
|
||
|
||
#![forbid(unsafe_code)]
|
||
|
||
pub mod matrix;
|
||
pub mod palette;
|
||
pub mod encoder;
|
||
pub mod paint;
|
||
|
||
pub use encoder::encode_argb;
|
||
pub use matrix::HeatmapMatrix;
|
||
pub use paint::paint;
|
||
pub use palette::Ramp;
|