Struct lyon_tessellation::geometry_builder::BuffersBuilder
[−]
[src]
pub struct BuffersBuilder<'l, VertexType: 'l, Input, Ctor: VertexConstructor<Input, VertexType>> { /* fields omitted */ }
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 VertexBuilfer
takes care of translating indices adequately.
Often, algorithms are built to generate vertex positions without knowledge of eventual other
vertex attributes. The VertexConstructor
does the translation from generic Input
to VertexType
.
If your logic generates the actual vertex type directly, you can use the SimpleBuffersBuilder
convenience typedef.
Methods
impl<'l, VertexType: 'l, Input, Ctor: VertexConstructor<Input, VertexType>> BuffersBuilder<'l, VertexType, Input, Ctor>
[src]
fn new(
buffers: &'l mut VertexBuffers<VertexType>,
ctor: Ctor
) -> BuffersBuilder<'l, VertexType, Input, Ctor>
buffers: &'l mut VertexBuffers<VertexType>,
ctor: Ctor
) -> BuffersBuilder<'l, VertexType, Input, Ctor>
Trait Implementations
impl<'l, VertexType, Input, Ctor> GeometryBuilder<Input> for BuffersBuilder<'l, VertexType, Input, Ctor> where
VertexType: 'l + Clone,
Ctor: VertexConstructor<Input, VertexType>,
[src]
VertexType: 'l + Clone,
Ctor: VertexConstructor<Input, VertexType>,
fn begin_geometry(&mut self)
Called at the beginning of a generation. Read more
fn end_geometry(&mut self) -> Count
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
fn add_vertex(&mut self, v: Input) -> VertexId
Inserts a vertex, providing its position, and optionally a normal. Retuns a vertex id that is only valid between begin_geometry and end_geometry. Read more
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
fn abort_geometry(&mut self)
abort_geometry is called instead of end_geometry if an error occured while producing the geometry and we won't be able to finish. Read more
impl<'l, VertexType, Input, Ctor> BezierGeometryBuilder<Input> for BuffersBuilder<'l, VertexType, Input, Ctor> where
VertexType: 'l + Clone,
Ctor: VertexConstructor<Input, VertexType>,
[src]
VertexType: 'l + Clone,
Ctor: VertexConstructor<Input, VertexType>,
fn add_quadratic_bezier(&mut self, _from: VertexId, _to: VertexId, _ctrl: Input)
Insert a quadratic bezier curve. The interrior is on the right side of the curve. Read more