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 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.

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]

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.

This involves uploading the geometry to the GPU, and is a fairly expensive operation.

Errors

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

Trait Implementations

impl Clone for 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]

Performs copy-assignment from source. Read more

impl Debug for GeometryBuilder[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for GeometryBuilder[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

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]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.