[−][src]Enum luminance::tess::Mode
Vertices can be connected via several modes.
Some modes allow for primitive restart. Primitive restart is a cool feature that allows to break the building of a primitive to start over again. For instance, when making a curve, you can imagine gluing segments next to each other. If at some point, you want to start a new line, you have two choices:
- Either you stop your draw call and make another one.
- Or you just use the primitive restart feature to ask to create another line from scratch.
That feature is encoded with a special vertex index. You can setup the value of the primitive
restart index with TessBuilder::set_primitive_restart_index
. Whenever a vertex index is set
to the same value as the primitive restart index, the value is not interpreted as a vertex
index but just a marker / hint to start a new primitive.
Variants
A single point.
Points are left unconnected from each other and represent a point cloud. This is the typical primitive mode you want to do, for instance, particles rendering.
A line, defined by two points.
Every pair of vertices are connected together to form a straight line.
A strip line, defined by at least two points and zero or many other ones.
The first two vertices create a line, and every new vertex flowing in the graphics pipeline (starting from the third, then) well extend the initial line, making a curve composed of several segments.
This kind of primitive mode allows the usage of primitive restart.
A triangle, defined by three points.
A triangle fan, defined by at least three points and zero or many other ones.
Such a mode is easy to picture: a cooling fan is a circular shape, with blades.
Mode::TriangleFan
is kind of the same. The first vertex is at the center of the fan, then
the second vertex creates the first edge of the first triangle. Every time you add a new
vertex, a triangle is created by taking the first (center) vertex, the very previous vertex
and the current vertex. By specifying vertices around the center, you actually create a
fan-like shape.
This kind of primitive mode allows the usage of primitive restart.
A triangle strip, defined by at least three points and zero or many other ones.
This mode is a bit different from Mode::TriangleStrip
. The first two vertices define the
first edge of the first triangle. Then, for each new vertex, a new triangle is created by
taking the very previous vertex and the last to very previous vertex. What it means is that
every time a triangle is created, the next vertex will share the edge that was created to
spawn the previous triangle.
This mode is useful to create long ribbons / strips of triangles.
This kind of primitive mode allows the usage of primitive restart.
Trait Implementations
Auto Trait Implementations
impl Send for Mode
impl Unpin for Mode
impl Sync for Mode
impl RefUnwindSafe for Mode
impl UnwindSafe for Mode
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,