summaryrefslogtreecommitdiffstats
path: root/graphics/src/triangle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/src/triangle.rs')
-rw-r--r--graphics/src/triangle.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/graphics/src/triangle.rs b/graphics/src/triangle.rs
index 05028f51..92709fe2 100644
--- a/graphics/src/triangle.rs
+++ b/graphics/src/triangle.rs
@@ -6,20 +6,22 @@ use bytemuck::{Pod, Zeroable};
pub struct Mesh2D {
/// The vertices of the mesh
pub vertices: Vec<Vertex2D>,
-
/// The list of vertex indices that defines the triangles of the mesh.
- ///
- /// Therefore, this list should always have a length that is a multiple of
- /// 3.
pub indices: Vec<u32>,
}
-/// A two-dimensional vertex with some color in __linear__ RGBA.
+/// A two-dimensional vertex.
#[derive(Copy, Clone, Debug, Zeroable, Pod)]
#[repr(C)]
pub struct Vertex2D {
- /// The vertex position
+ /// The vertex position in 2D space.
pub position: [f32; 2],
- /// The vertex color in __linear__ RGBA.
- pub color: [f32; 4],
+}
+
+/// Convert from lyon's position data to Iced's Vertex2D type.
+impl Vertex2D {
+ /// Converts from [`lyon::math::Point`] to [`Vertex2D`]. Used for generating primitives.
+ pub fn from(points: Vec<lyon::math::Point>) -> Vec<Vertex2D> {
+ points.iter().map(|p| Vertex2D { position: [p.x, p.y]}).collect()
+ }
}