diff options
Diffstat (limited to 'engine/src/mesh.rs')
-rw-r--r-- | engine/src/mesh.rs | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/engine/src/mesh.rs b/engine/src/mesh.rs index 917e7f7..fb977af 100644 --- a/engine/src/mesh.rs +++ b/engine/src/mesh.rs @@ -1,11 +1,9 @@ -use ecs::Component; - -use crate::vector::Vec3; -use crate::vertex::Vertex; +use crate::builder; +use crate::vector::{Vec2, Vec3}; pub mod cube; -#[derive(Debug, Clone, Component)] +#[derive(Debug, Clone, Default)] pub struct Mesh { vertices: Vec<Vertex>, @@ -77,6 +75,27 @@ impl Mesh } } +builder! { +#[builder(name = VertexBuilder, derives = (Debug, Default, Clone))] +#[derive(Debug, Clone, Default, PartialEq)] +#[non_exhaustive] +pub struct Vertex +{ + pub pos: Vec3<f32>, + pub texture_coords: Vec2<f32>, + pub normal: Vec3<f32>, +} +} + +impl Vertex +{ + #[must_use] + pub fn builder() -> VertexBuilder + { + VertexBuilder::default() + } +} + #[derive(Debug, Clone)] pub struct DirectionPositions<'mesh> { |