Struct tetra::graphics::mesh::GeometryBuilder [−][src]
pub struct GeometryBuilder { /* fields omitted */ }
Expand description
A builder for creating primitive shape geometry, and associated buffers/meshes.
Performance
GeometryBuilder
stores the generated vertex and index data in a pair of Vec
s. This means that creating
a new builder (as well as cloning an existing one) will allocate memory. Consider reusing a GeometryBuilder
if you need to reuse the generated data, or if you need to create new data every frame.
Creating buffers/meshes from the generated geometry is a fairly expensive operation. Try to avoid creating lots of seperate buffers/meshes, and pack multiple shapes into the same buffers/mesh if they don’t move relative to each other.
Examples
The shapes
example demonstrates
how to draw primitive shapes, both through the simplified API on Mesh
, and the more powerful
GeometryBuilder
API.
Implementations
impl GeometryBuilder
[src]
impl GeometryBuilder
[src]pub fn new() -> GeometryBuilder
[src]
pub fn new() -> GeometryBuilder
[src]Creates a new empty geometry builder.
pub fn rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle
) -> Result<&mut GeometryBuilder>
[src]
pub fn rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle
) -> Result<&mut GeometryBuilder>
[src]Adds a rectangle.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn rounded_rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle,
radii: BorderRadii
) -> Result<&mut GeometryBuilder>
[src]
pub fn rounded_rectangle(
&mut self,
style: ShapeStyle,
rectangle: Rectangle,
radii: BorderRadii
) -> Result<&mut GeometryBuilder>
[src]Adds a rounded rectangle.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn circle(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radius: f32
) -> Result<&mut GeometryBuilder>
[src]
pub fn circle(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radius: f32
) -> Result<&mut GeometryBuilder>
[src]Adds a circle.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn ellipse(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radii: Vec2<f32>
) -> Result<&mut GeometryBuilder>
[src]
pub fn ellipse(
&mut self,
style: ShapeStyle,
center: Vec2<f32>,
radii: Vec2<f32>
) -> Result<&mut GeometryBuilder>
[src]Adds an ellipse.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn polygon(
&mut self,
style: ShapeStyle,
points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
[src]
pub fn polygon(
&mut self,
style: ShapeStyle,
points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
[src]Adds a polygon.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn polyline(
&mut self,
stroke_width: f32,
points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
[src]
pub fn polyline(
&mut self,
stroke_width: f32,
points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
[src]Adds a polyline.
Errors
TetraError::TessellationError
will be returned if the shape could not be turned into vertex data.
pub fn set_color(&mut self, color: Color) -> &mut GeometryBuilder
[src]
pub fn set_color(&mut self, color: Color) -> &mut GeometryBuilder
[src]Sets the color that will be used for subsequent shapes.
You can also use DrawParams::color
to tint an entire mesh -
this method only needs to be used if you want to display multiple colors in a
single piece of geometry.
pub fn clear(&mut self) -> &mut GeometryBuilder
[src]
pub fn clear(&mut self) -> &mut GeometryBuilder
[src]Clears the geometry builder’s data.
pub fn into_data(self) -> (Vec<Vertex>, Vec<u32>)
[src]
pub fn into_data(self) -> (Vec<Vertex>, Vec<u32>)
[src]Consumes the builder, returning the generated geometry.
pub fn build_buffers(
&self,
ctx: &mut Context
) -> Result<(VertexBuffer, IndexBuffer)>
[src]
pub fn build_buffers(
&self,
ctx: &mut Context
) -> Result<(VertexBuffer, IndexBuffer)>
[src]Builds a vertex and index buffer from the generated geometry.
This involves uploading the geometry to the GPU, and is a fairly expensive operation.
Errors
TetraError::PlatformError
will be returned if the underlying graphics API encounters an error.
pub fn build_mesh(&self, ctx: &mut Context) -> Result<Mesh>
[src]
pub fn build_mesh(&self, ctx: &mut Context) -> Result<Mesh>
[src]Builds a mesh from the generated geometry.
This involves uploading the geometry to the GPU, and is a fairly expensive operation.
Errors
TetraError::PlatformError
will be returned if the underlying graphics API encounters an error.
Trait Implementations
impl Clone for GeometryBuilder
[src]
impl Clone for GeometryBuilder
[src]fn clone(&self) -> GeometryBuilder
[src]
fn clone(&self) -> GeometryBuilder
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for GeometryBuilder
[src]
impl Debug for GeometryBuilder
[src]Auto Trait Implementations
impl RefUnwindSafe for GeometryBuilder
impl Send for GeometryBuilder
impl Sync for GeometryBuilder
impl Unpin for GeometryBuilder
impl UnwindSafe for GeometryBuilder
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more