# Function graphics::triangulation::stream_quad_tri_list
[−]
[src]

`pub fn stream_quad_tri_list<E, F>(m: Matrix2d, quad_edge: E, f: F) where E: FnMut() -> Option<(Vec2d, Vec2d)>, F: FnMut(&[f32])`

Streams a quad into tri list.

Uses buffers that fit inside L1 cache. The 'quad_edge' stream returns two points defining the next edge.

`quad_edge`

is a function that returns two vertices, which together comprise
one edge of a quad

`f`

is a function that consumes the tri list constructed by the output of
`quad_edge`

, one chunk (buffer) at a time

The tri list is series of buffers (fixed size array) of the format:

// [x0, y0, x1, y1, x2, y2, x3, y3, ... y5, ...] // ^--------------------^ ^------------^ // 3 Points of triangle 3 points of second triangle, // ^------------------------------------^ __ // Two triangles together form a single quad |\\ 2| // |1\\ | // |__\\|

Together all the chunks comprise the full tri list. Each time the buffer size is
reached, that chunk is fed to `f`

, then this function proceeds using a new buffer
until a call to `quad_edge`

returns `None`

, indicating there are no more edges left.
(in which case the last partially filled buffer is sent to `f`

)