pub trait GeometryBuilder {
fn begin_geometry(&mut self);
fn end_geometry(&mut self) -> Count;
fn abort_geometry(&mut self);
fn add_triangle(&mut self, a: VertexId, b: VertexId, c: VertexId);
}
pub trait FillGeometryBuilder: GeometryBuilder {
fn add_vertex(&mut self, vertex: &FillVertex) -> Result<VertexId, GeometryBuilderError>;
}
pub trait StrokeGeometryBuilder: GeometryBuilder {
fn add_vertex(&mut self, vertex: &StrokeVertex) -> Result<VertexId, GeometryBuilderError>;
}
pub struct FillVertex<'l> {
position: Point,
src: &'l mut VertexSourceIterator,
}
pub struct StrokeVertex {
src: VertexSource,
position: Point,
normal: Vector,
advancement: f32,
side: Side,
}