pub trait ColumnarBuffer<'a>: BorrowedBuffer<'a> {
    // Required methods
    fn get_attribute_ref<'b>(
        &'b self,
        attribute: &PointAttributeDefinition,
        index: usize
    ) -> &'b [u8] 
       where 'a: 'b;
    fn get_attribute_range_ref<'b>(
        &'b self,
        attribute: &PointAttributeDefinition,
        range: Range<usize>
    ) -> &'b [u8] 
       where 'a: 'b;

    // Provided method
    fn view_raw_attribute<'b>(
        &'b self,
        attribute: &PointAttributeMember
    ) -> RawAttributeView<'b>
       where 'a: 'b { ... }
}
Expand description

Trait for point buffers that store their point data in columnar memory layout. This allows accessing point attributes by reference

Required Methods§

source

fn get_attribute_ref<'b>( &'b self, attribute: &PointAttributeDefinition, index: usize ) -> &'b [u8]
where 'a: 'b,

Get an immutable slice to the memory of the given attribute for the point at index. See InterleavedBuffer::get_point_ref for an explanation of the lifetime bounds.

Panics

Should panic if attribute is not part of the PointLayout of this buffer.
Should panic if index is out of bounds.

source

fn get_attribute_range_ref<'b>( &'b self, attribute: &PointAttributeDefinition, range: Range<usize> ) -> &'b [u8]
where 'a: 'b,

Get an immutable slice to the memory for the attribute of the given range of points

Panics

Should panic if attribute is not part of the PointLayout of this buffer.
Should panic if range is out of bounds.

Provided Methods§

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

Implementors§