pub struct BufferSliceInterleaved<'a, T: InterleavedBuffer<'a>>(/* private fields */);
Expand description

A buffer slice for an interleaved buffer

Implementations§

source§

impl<'a, T: InterleavedBuffer<'a>> BufferSliceInterleaved<'a, T>

source

pub fn new(buffer: &'a T, point_range: Range<usize>) -> Self

Trait Implementations§

source§

impl<'a, T: InterleavedBuffer<'a>> BorrowedBuffer<'a> for BufferSliceInterleaved<'a, T>

source§

fn len(&self) -> usize

Returns the length of this buffer, i.e. the number of points Read more
source§

fn point_layout(&self) -> &PointLayout

Returns the PointLayout of this buffer. The PointLayout describes the structure of a single point at runtime. Read more
source§

fn get_point(&self, index: usize, data: &mut [u8])

Writes the data for the point at index from this buffer into data Read more
source§

fn get_point_range(&self, range: Range<usize>, data: &mut [u8])

Writes the data for the given range of points from this buffer into data Read more
source§

unsafe fn get_attribute_unchecked( &self, attribute_member: &PointAttributeMember, index: usize, data: &mut [u8] )

Like get_attribute, but performs no check whether the attribute actually is part of this buffers PointLayout or not. Because of this, this function accepts a PointAttributeMember instead of a PointAttributeDefinition, and this PointAttributeMember must come from the PointLayout of this buffer! The benefit over get_attribute is that this function skips the include checks and thus will be faster if you repeatedly want to get data for a single attribute Read more
source§

fn as_interleaved(&self) -> Option<&dyn InterleavedBuffer<'a>>

Try to get a reference to self as an InterleavedBuffer. Returns None if self does not implement InterleavedBuffer
source§

fn is_empty(&self) -> bool

Returns true if this buffer does not store any points Read more
source§

fn get_attribute( &self, attribute: &PointAttributeDefinition, index: usize, data: &mut [u8] )

Writes the data for the given attribute of the point at index into data Read more
source§

fn get_attribute_range( &self, attribute: &PointAttributeDefinition, point_range: Range<usize>, data: &mut [u8] )

Writes the data for the given attribute of the given range of points into data. The attribute data will be tightly packed in data, irregardless of the memory layout of this buffer. The attribute values might not be correctly aligned, if the alignment requirement of attribute.datatype() is larger than the size of the attribute. All of the built-in attributes in pasture have alignments that are less than or equal to their size, so for built-in attributes you can assume that the attributes in data are correctly aligned. Read more
source§

fn view<'b, T: PointType>(&'b self) -> PointView<'a, 'b, Self, T>
where Self: Sized, 'a: 'b,

Get a strongly typed view of the point data of this buffer Read more
source§

fn view_attribute<'b, T: PrimitiveType>( &'b self, attribute: &PointAttributeDefinition ) -> AttributeView<'a, 'b, Self, T>
where Self: Sized, 'a: 'b,

Gets a strongly typed view of the attribute of all points in this buffer Read more
source§

fn view_attribute_with_conversion<'b, T: PrimitiveType>( &'b self, attribute: &PointAttributeDefinition ) -> Result<AttributeViewConverting<'a, 'b, Self, T>>
where Self: Sized, 'a: 'b,

Like view_attribute, but allows T::data_type() to be different from the data type of
the attribute within this buffer. Read more
source§

fn as_columnar(&self) -> Option<&dyn ColumnarBuffer<'a>>

Try to get a reference to self as a ColumnarBuffer. Returns None if self does not implement ColumnarBuffer
source§

impl<'a, T: InterleavedBuffer<'a>> InterleavedBuffer<'a> for BufferSliceInterleaved<'a, T>

source§

fn get_point_ref<'c>(&'c self, index: usize) -> &'c [u8]
where 'a: 'c,

Get an immutable slice of the point memory of the point at index Read more
source§

fn get_point_range_ref<'c>(&'c self, range: Range<usize>) -> &'c [u8]
where 'a: 'c,

Get an immutable slice of the memory for the given range of points. This is the range-version of [get_point_ref], see its documentation for more details Read more
source§

fn view_raw_attribute<'b>( &'b self, attribute: &PointAttributeMember ) -> RawAttributeView<'b>
where 'a: 'b,

Get a raw view over the given attribute from this point buffer. Unlike the typed view that view_attribute returns, this view dereferences to byte slices, but it is potentially more efficient to use than calling get_attribute repeatedly
source§

impl<'a, T: InterleavedBuffer<'a>> SliceBuffer<'a> for BufferSliceInterleaved<'a, T>

§

type SliceType = BufferSliceInterleaved<'a, T>

The slice type
source§

fn slice(&'a self, range: Range<usize>) -> Self::SliceType

Take a immutable slice to this buffer using the given range of points Read more

Auto Trait Implementations§

§

impl<'a, T> RefUnwindSafe for BufferSliceInterleaved<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for BufferSliceInterleaved<'a, T>
where T: Sync,

§

impl<'a, T> Sync for BufferSliceInterleaved<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for BufferSliceInterleaved<'a, T>

§

impl<'a, T> UnwindSafe for BufferSliceInterleaved<'a, T>
where T: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.