Struct lyon_tessellation::BuffersBuilder
source · [−]pub struct BuffersBuilder<'l, OutputVertex: 'l, OutputIndex: 'l, Ctor> { /* private fields */ }
Expand description
A temporary view on a VertexBuffers
object which facilitate the population of vertex and index
data.
BuffersBuilders
record the vertex offset from when they are created so that algorithms using
them don’t need to worry about offsetting indices if some geometry was added beforehand. This
means that from the point of view of a BuffersBuilder
user, the first added vertex is at always
offset at the offset 0 and VertexBuilder
takes care of translating indices adequately.
Often, algorithms are built to generate vertex positions without knowledge of eventual other
vertex vertex. The VertexConstructor
does the translation from generic Input
to OutputVertex
.
If your logic generates the actual vertex type directly, you can use the SimpleBuffersBuilder
convenience typedef.
Implementations
sourceimpl<'l, OutputVertex: 'l, OutputIndex: 'l, Ctor> BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor>
impl<'l, OutputVertex: 'l, OutputIndex: 'l, Ctor> BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor>
pub fn new(
buffers: &'l mut VertexBuffers<OutputVertex, OutputIndex>,
ctor: Ctor
) -> Self
pub fn with_vertex_offset(self, offset: u32) -> Self
sourcepub fn with_inverted_winding(self) -> InvertWinding<Self>
pub fn with_inverted_winding(self) -> InvertWinding<Self>
Consumes self and returns a builder with opposite triangle face winding.
pub fn buffers<'a, 'b: 'a>(
&'b self
) -> &'a VertexBuffers<OutputVertex, OutputIndex>
Trait Implementations
sourceimpl<'l, OutputVertex, OutputIndex, Ctor> FillGeometryBuilder for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
OutputVertex: 'l,
OutputIndex: Add + From<VertexId> + MaxIndex,
Ctor: FillVertexConstructor<OutputVertex>,
impl<'l, OutputVertex, OutputIndex, Ctor> FillGeometryBuilder for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
OutputVertex: 'l,
OutputIndex: Add + From<VertexId> + MaxIndex,
Ctor: FillVertexConstructor<OutputVertex>,
sourcefn add_fill_vertex(
&mut self,
vertex: FillVertex<'_>
) -> Result<VertexId, GeometryBuilderError>
fn add_fill_vertex(
&mut self,
vertex: FillVertex<'_>
) -> Result<VertexId, GeometryBuilderError>
Inserts a vertex, providing its position, and optionally a normal. Returns a vertex id that is only valid between begin_geometry and end_geometry. Read more
sourceimpl<'l, OutputVertex, OutputIndex, Ctor> GeometryBuilder for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
OutputVertex: 'l,
OutputIndex: Add + From<VertexId> + MaxIndex,
impl<'l, OutputVertex, OutputIndex, Ctor> GeometryBuilder for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
OutputVertex: 'l,
OutputIndex: Add + From<VertexId> + MaxIndex,
sourcefn begin_geometry(&mut self)
fn begin_geometry(&mut self)
Called at the beginning of a generation. Read more
sourcefn abort_geometry(&mut self)
fn abort_geometry(&mut self)
abort_geometry is called instead of end_geometry if an error occurred while producing the geometry and we won’t be able to finish. Read more
sourcefn add_triangle(&mut self, a: VertexId, b: VertexId, c: VertexId)
fn add_triangle(&mut self, a: VertexId, b: VertexId, c: VertexId)
Insert a triangle made of vertices that were added after the last call to begin_geometry. Read more
sourcefn end_geometry(&mut self)
fn end_geometry(&mut self)
Called at the end of a generation. Returns the number of vertices and indices added since the last time begin_geometry was called. Read more
sourceimpl<'l, OutputVertex, OutputIndex, Ctor> StrokeGeometryBuilder for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
OutputVertex: 'l,
OutputIndex: Add + From<VertexId> + MaxIndex,
Ctor: StrokeVertexConstructor<OutputVertex>,
impl<'l, OutputVertex, OutputIndex, Ctor> StrokeGeometryBuilder for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
OutputVertex: 'l,
OutputIndex: Add + From<VertexId> + MaxIndex,
Ctor: StrokeVertexConstructor<OutputVertex>,
sourcefn add_stroke_vertex(
&mut self,
v: StrokeVertex<'_, '_>
) -> Result<VertexId, GeometryBuilderError>
fn add_stroke_vertex(
&mut self,
v: StrokeVertex<'_, '_>
) -> Result<VertexId, GeometryBuilderError>
Inserts a vertex, providing its position, and optionally a normal. Returns a vertex id that is only valid between begin_geometry and end_geometry. Read more
Auto Trait Implementations
impl<'l, OutputVertex, OutputIndex, Ctor> RefUnwindSafe for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
Ctor: RefUnwindSafe,
OutputIndex: RefUnwindSafe,
OutputVertex: RefUnwindSafe,
impl<'l, OutputVertex, OutputIndex, Ctor> Send for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
Ctor: Send,
OutputIndex: Send,
OutputVertex: Send,
impl<'l, OutputVertex, OutputIndex, Ctor> Sync for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
Ctor: Sync,
OutputIndex: Sync,
OutputVertex: Sync,
impl<'l, OutputVertex, OutputIndex, Ctor> Unpin for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor> where
Ctor: Unpin,
impl<'l, OutputVertex, OutputIndex, Ctor> !UnwindSafe for BuffersBuilder<'l, OutputVertex, OutputIndex, Ctor>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more