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
sourcepub fn bytes_used(&self) -> usize
pub fn bytes_used(&self) -> usize
Returns the amount of memory used by the vertices and indices.
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(&mut self, other: Self)
pub fn append(&mut self, other: Self)
Append all the indices and vertices of other
to self
.
Panics when other
mesh has a different texture.
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.
Panics when other
mesh has a different texture.
sourcepub fn colored_vertex(&mut self, pos: Pos2, color: Color32)
pub fn colored_vertex(&mut self, pos: Pos2, color: Color32)
Add a colored vertex.
Panics when the mesh has assigned a texture.
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.
sourcepub fn transform(&mut self, transform: TSTransform)
pub fn transform(&mut self, transform: TSTransform)
Transform the mesh in-place with the given transform.
Trait Implementations§
impl Eq for Mesh
impl StructuralPartialEq for Mesh
Auto Trait Implementations§
impl Freeze for Mesh
impl RefUnwindSafe for Mesh
impl Send for Mesh
impl Sync for Mesh
impl Unpin for Mesh
impl UnwindSafe for Mesh
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)