Struct tetra::graphics::mesh::GeometryBuilder[][src]

pub struct GeometryBuilder { /* fields omitted */ }

A builder for creating primitive shape geometry, and associated buffers/meshes.

Performance

GeometryBuilder stores the generated vertex and index data in a pair of Vecs. 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.

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]

pub fn new() -> GeometryBuilder[src]

Creates a new empty geometry builder.

pub fn rectangle(
    &mut self,
    style: ShapeStyle,
    rectangle: Rectangle
) -> Result<&mut GeometryBuilder>
[src]

Adds a rectangle.

Errors

pub fn rounded_rectangle(
    &mut self,
    style: ShapeStyle,
    rectangle: Rectangle,
    radii: BorderRadii
) -> Result<&mut GeometryBuilder>
[src]

Adds a rounded rectangle.

Errors

pub fn circle(
    &mut self,
    style: ShapeStyle,
    center: Vec2<f32>,
    radius: f32
) -> Result<&mut GeometryBuilder>
[src]

Adds a circle.

Errors

pub fn ellipse(
    &mut self,
    style: ShapeStyle,
    center: Vec2<f32>,
    radii: Vec2<f32>
) -> Result<&mut GeometryBuilder>
[src]

Adds an ellipse.

Errors

pub fn polygon(
    &mut self,
    style: ShapeStyle,
    points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
[src]

Adds a polygon.

Errors

pub fn polyline(
    &mut self,
    stroke_width: f32,
    points: &[Vec2<f32>]
) -> Result<&mut GeometryBuilder>
[src]

Adds a polyline.

Errors

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]

Clears the geometry builder’s data.

pub fn vertices(&self) -> &[Vertex][src]

Returns a view of the generated vertex data.

pub fn indices(&self) -> &[u32][src]

Returns a view of the generated index data.

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]

Builds a vertex and index buffer from the generated geometry.

Errors

pub fn build_mesh(&self, ctx: &mut Context) -> Result<Mesh>[src]

Builds a mesh from the generated geometry.

Errors

Trait Implementations

impl Clone for GeometryBuilder[src]

impl Debug for GeometryBuilder[src]

impl Default for GeometryBuilder[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.