use crate::bounds::Bounds;
use tiny_skia::{Paint, PixmapMut, Shader};
mod circle;
mod icon;
mod line;
pub use circle::{Circle, CircleBuilder};
pub use icon::{Icon, IconBuilder};
pub use line::{Line, LineBuilder};
#[derive(Clone, Default)]
pub struct Color(Paint<'static>);
impl Color {
pub fn new(anti_alias: bool, r: u8, g: u8, b: u8, a: u8) -> Color {
Color(Paint {
shader: Shader::SolidColor(tiny_skia::Color::from_rgba8(r, g, b, a)),
anti_alias,
..Default::default()
})
}
}
pub trait Tool {
fn extent(&self, zoom: u8, tile_size: f64) -> (f64, f64, f64, f64);
fn draw(&self, bounds: &Bounds, pixmap: PixmapMut);
}