1use crate::math::vec::{Vec2, Vec3};
4
5pub use mesh::Mesh;
6
7pub mod mesh;
8
9#[derive(Copy, Clone, Debug, Eq, PartialEq)]
11pub struct Vertex<P, A> {
12 pub pos: P,
13 pub attrib: A,
14}
15
16#[derive(Copy, Clone, Debug, Eq, PartialEq)]
18#[repr(transparent)]
19pub struct Tri<V>(pub [V; 3]);
20
21#[derive(Copy, Clone, Debug, Eq, PartialEq)]
23#[repr(transparent)]
24pub struct Plane<V>(pub(crate) V);
25
26pub type Normal3 = Vec3;
29pub type Normal2 = Vec2;
30
31pub const fn vertex<P, A>(pos: P, attrib: A) -> Vertex<P, A> {
32 Vertex { pos, attrib }
33}