# [−]Enum amethyst_rendy::rendy::hal::Primitive

```#[repr(u8)]pub enum Primitive {
PointList,
LineList,
LineStrip,
TriangleList,
TriangleStrip,
PatchList(u8),
}```

Describes the type of geometric primitives, 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 triangle with adjacency information. For example, with `[a, b, c, d, e, f]`, `a`, `c`, and `e` form a triangle, 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)

## Blanket Implementations

### `impl<T> Same<T> for T`

#### `type Output = T`

Should always be `Self`

### `impl<T> ToOwned for T where    T: Clone, `[src]

#### `type Owned = T`

The resulting type after obtaining ownership.

### `impl<T, U> TryFrom<U> for T where    U: Into<T>, `[src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

### `impl<T, U> TryInto<U> for T where    U: TryFrom<T>, `[src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.