Module pasture_core::layout [−][src]
Expand description
Defines attributes and data layout of point cloud data
Modules
Module containing default attribute definitions
Contains helper function and structures for raw binary point format conversions. This module contains a lot of unsafe
code because it has to support conversions between various point formats at runtime. The conversions operate on binary
buffers (&[u8]
and &mut [u8]
) that represent the binary layout of strongly typed PointTypes
. Given two point
types A: PointType
and B: PointType
, a runtime conversion from A
to B
works by first obtaining the binary
representations of A
and B
through view_raw_bytes
/view_raw_bytes_mut
:
Structs
A definition for a single point attribute of a point cloud. Point attributes are things like the position, GPS time, intensity etc. In Pasture, attributes are identified by a unique name together with the data type that a single record of the attribute is stored in. Attributes can be grouped into two categories: Built-in attributes (e.g. POSITION_3D, INTENSITY, GPS_TIME etc.) and custom attributes.
A point attribute within a PointType
structure. This is similar to a PointAttributeDefinition
, but includes the
offset of the member within the structure
Describes the data layout of a single point in a point cloud
Enums
How is a field within the associated in-memory type of a PointLayout
aligned?
Possible data types for individual point attributes
Traits
Trait that marks a Rust type for usage as a type in which point data can be stored.
This trait allows the mapping between Rust types at compile time and the dynamic PointLayout
type.
You will almost never want to implement PointType
manually! Prefer to use the #[derive(PointType)]
procedural macro!
Marker trait for all types that can be used as primitive types within a PointAttributeDefinition
. It provides a mapping
between Rust types and the PointAttributeDataType
enum.
Functions
Returns the corresponding PointLayout for the given PointType T