pub struct Mesh {
pub indices: Vec<u32>,
pub vertices: Vec<Vertex>,
pub texture_id: TextureId,
}
Expand description
Textured triangles in two dimensions.
Fields§
§indices: Vec<u32>
Draw as triangles (i.e. the length is always multiple of three).
If you only support 16-bit indices you can use Mesh::split_to_u16
.
egui is NOT consistent with what winding order it uses, so turn off backface culling.
vertices: Vec<Vertex>
The vertex data indexed by indices
.
texture_id: TextureId
The texture to use when drawing these triangles.
Implementations§
source§impl Mesh
impl Mesh
pub fn with_texture(texture_id: TextureId) -> Self
pub fn bytes_used(&self) -> usize
pub fn is_empty(&self) -> bool
sourcepub fn calc_bounds(&self) -> Rect
pub fn calc_bounds(&self) -> Rect
Calculate a bounding rectangle.
sourcepub fn append_ref(&mut self, other: &Self)
pub fn append_ref(&mut self, other: &Self)
Append all the indices and vertices of other
to self
without
taking ownership.
pub fn colored_vertex(&mut self, pos: Pos2, color: Color32)
sourcepub fn add_triangle(&mut self, a: u32, b: u32, c: u32)
pub fn add_triangle(&mut self, a: u32, b: u32, c: u32)
Add a triangle.
sourcepub fn reserve_triangles(&mut self, additional_triangles: usize)
pub fn reserve_triangles(&mut self, additional_triangles: usize)
Make room for this many additional triangles (will reserve 3x as many indices).
See also reserve_vertices
.
sourcepub fn reserve_vertices(&mut self, additional: usize)
pub fn reserve_vertices(&mut self, additional: usize)
Make room for this many additional vertices.
See also reserve_triangles
.
sourcepub fn add_rect_with_uv(&mut self, rect: Rect, uv: Rect, color: Color32)
pub fn add_rect_with_uv(&mut self, rect: Rect, uv: Rect, color: Color32)
Rectangle with a texture and color.
sourcepub fn add_colored_rect(&mut self, rect: Rect, color: Color32)
pub fn add_colored_rect(&mut self, rect: Rect, color: Color32)
Uniformly colored rectangle.
sourcepub fn split_to_u16(self) -> Vec<Mesh16>
pub fn split_to_u16(self) -> Vec<Mesh16>
This is for platforms that only support 16-bit index buffers.
Splits this mesh into many smaller meshes (if needed) where the smaller meshes have 16-bit indices.