pub enum Primitive {
PointList,
LineList,
LineStrip,
TriangleList,
TriangleStrip,
LineListAdjacency,
LineStripAdjacency,
TriangleListAdjacency,
TriangleStripAdjacency,
PatchList(u8),
}
Expand description
Describes what geometric primitives are created from vertex data.
Variants
PointList
Each vertex represents a single point.
LineList
Each pair of vertices represent a single line segment. For example, with [a, b, c, d, e]
, a
and b
form a line, c
and d
form a line, and e
is discarded.
LineStrip
Every two consecutive vertices represent a single line segment. Visually forms a “path” of
lines, as they are all connected. For example, with [a, b, c]
, a
and b
form a line
line, and b
and c
form a line.
TriangleList
Each triplet of vertices represent a single triangle. For example, with [a, b, c, d, e]
,
a
, b
, and c
form a triangle, d
and e
are discarded.
TriangleStrip
Every three consecutive vertices represent a single triangle. For example, with [a, b, c, d]
, a
, b
, and c
form a triangle, and b
, c
, and d
form a triangle.
LineListAdjacency
Each quadtruplet of vertices represent a single line segment with adjacency information.
For example, with [a, b, c, d]
, b
and c
form a line, and a
and d
are the adjacent
vertices.
LineStripAdjacency
Every four consecutive vertices represent a single line segment with adjacency information.
For example, with [a, b, c, d, e]
, [a, b, c, d]
form a line segment with adjacency, and
[b, c, d, e]
form a line segment with adjacency.
TriangleListAdjacency
Each sextuplet of vertices represent a single traingle with adjacency information. For
example, with [a, b, c, d, e, f]
, a
, c
, and e
form a traingle, and b
, d
, and
f
are the adjacent vertices, where b
is adjacent to the edge formed by a
and c
, d
is adjacent to the edge c
and e
, and f
is adjacent to the edge e
and a
.
TriangleStripAdjacency
Every even-numbered vertex (every other starting from the first) represents an additional
vertex for the triangle strip, while odd-numbered vertices (every other starting from the
second) represent adjacent vertices. For example, with [a, b, c, d, e, f, g, h]
, [a, c, e, g]
form a triangle strip, and [b, d, f, h]
are the adjacent vertices, where b
, d
,
and f
are adjacent to the first triangle in the strip, and d
, f
, and h
are adjacent
to the second.
PatchList(u8)
Patch list, used with shaders capable of producing primitives on their own (tessellation)
Trait Implementations
impl Copy for Primitive
impl Eq for Primitive
impl StructuralEq for Primitive
impl StructuralPartialEq for Primitive
Auto Trait Implementations
impl RefUnwindSafe for Primitive
impl Send for Primitive
impl Sync for Primitive
impl Unpin for Primitive
impl UnwindSafe for Primitive
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> SetParameter for T
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Resultwhere
T: Parameter<Self>,
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Resultwhere
T: Parameter<Self>,
value
as a parameter of self
.