pub struct VertexWords<'a> { /* private fields */ }Expand description
A model’s vertex stream as GTE register words, bounds-checked once.
Model::vertex_words builds it from the struct-of-arrays stream current
cooks emit: a word-aligned run of packed XY words and a run of Z halfwords,
one entry per vertex. Both are ordinary slices of the same length, so a
loop over Self::triples or Self::iter reads every vertex with
native aligned loads and no per-index check, and a range taken with
Self::slice is checked once rather than once per vertex.
Implementations§
Source§impl<'a> VertexWords<'a>
impl<'a> VertexWords<'a>
Sourcepub const EMPTY: VertexWords<'static>
pub const EMPTY: VertexWords<'static>
No vertices.
Sourcepub fn get(&self, index: usize) -> Option<GteVertexWords>
pub fn get(&self, index: usize) -> Option<GteVertexWords>
Vertex index, or None past the end of the view.
Sourcepub fn slice(&self, range: Range<usize>) -> Option<VertexWords<'a>>
pub fn slice(&self, range: Range<usize>) -> Option<VertexWords<'a>>
The vertices range covers, or None when it runs past the view.
Sourcepub fn iter(&self) -> impl Iterator<Item = GteVertexWords> + 'a
pub fn iter(&self) -> impl Iterator<Item = GteVertexWords> + 'a
Every vertex in order.
Sourcepub fn triples(
&self,
) -> (impl Iterator<Item = [GteVertexWords; 3]> + 'a, VertexWords<'a>)
pub fn triples( &self, ) -> (impl Iterator<Item = [GteVertexWords; 3]> + 'a, VertexWords<'a>)
The vertices in consecutive groups of three, one RTPT batch each, and the view of the zero to two vertices left over.
Trait Implementations§
Source§impl<'a> Clone for VertexWords<'a>
impl<'a> Clone for VertexWords<'a>
Source§fn clone(&self) -> VertexWords<'a>
fn clone(&self) -> VertexWords<'a>
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<'a> Copy for VertexWords<'a>
Auto Trait Implementations§
impl<'a> Freeze for VertexWords<'a>
impl<'a> RefUnwindSafe for VertexWords<'a>
impl<'a> Send for VertexWords<'a>
impl<'a> Sync for VertexWords<'a>
impl<'a> Unpin for VertexWords<'a>
impl<'a> UnsafeUnpin for VertexWords<'a>
impl<'a> UnwindSafe for VertexWords<'a>
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)