//! A collection of triangle primitives. use crate::gradient::Gradient; use crate::{triangle, Color, Point, Rectangle}; /// A mesh of triangles. #[derive(Debug, Clone, Copy)] pub struct Mesh<'a> { /// The origin of the vertices of the [`Mesh`]. pub origin: Point, /// The vertex and index buffers of the [`Mesh`]. pub buffers: &'a triangle::Mesh2D, /// The clipping bounds of the [`Mesh`]. pub clip_bounds: Rectangle, /// The shader of the [`Mesh`]. pub style: &'a Style, } #[derive(Debug, Clone, PartialEq)] /// Supported shaders for primitives. pub enum Style { /// Fill a primitive with a solid color. Solid(Color), /// Fill a primitive with an interpolated color. Gradient(Gradient), } impl<'a> Into