1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//! Provides the core data structures and traits for storing point cloud data in memory.
//!
//! Pasture exposes a hierarchy of traits that define the capabilities of the in-memory buffers that
//! the point data is stored in. The most basic trait is [PointBuffer], which is implemented by every
//! specific point cloud buffer in Pasture. It provides basic access to the point data without making
//! any assumptions about the memory layout of the point data. More specific types include [InterleavedPointBuffer]
//! and [PerAttributePointBuffer], which store data in an Interleaved or PerAttribute memory layout.
//! For an explanation of these memory layouts, see the [PointLayout](crate::layout::PointLayout) type.
//!
//! On top of these traits, Pasture provides some specific implementations for storing contiguous
//! point data in [Interleaved](InterleavedVecPointStorage) or [PerAttribute](PerAttributeVecPointStorage)
//! layouts, as well as [non-owning](InterleavedPointView) and [sliced](InterleavedPointBufferSlice) versions
//! of these buffers.
//!
//! Lastly, this module exposes some helper functions for iterating over the point data inside any of
//! these buffers.

mod point_buffer;
pub use self::point_buffer::*;

mod point_view;
pub use self::point_view::*;

mod attribute_iterators;
pub use self::attribute_iterators::*;

mod point_iterators;
pub use self::point_iterators::*;

mod vec_buffers;
pub use self::vec_buffers::*;

mod slice_buffers;
pub use self::slice_buffers::*;