Skip to main content

VoxelGridDownsampleConfig

Struct VoxelGridDownsampleConfig 

Source
pub struct VoxelGridDownsampleConfig {
    pub leaf_size: f32,
    pub origin: Option<Vec3<f32>>,
    pub mode: VoxelAggregationMode,
    pub attribute_policy: AttributeAggregation,
    pub gpu_min_points: Option<usize>,
}
Expand description

Configuration for voxel-grid downsampling.

Fields§

§leaf_size: f32

Voxel edge length in meters.

§origin: Option<Vec3<f32>>

Optional grid origin. Defaults to the cloud minimum corner.

§mode: VoxelAggregationMode

Position aggregation mode.

§attribute_policy: AttributeAggregation

Aggregation policy for other fields.

§gpu_min_points: Option<usize>

Minimum input point count before GPU execution is considered worthwhile.

None always uses GPU when requested. Defaults follow local bench results: centroid ~500k, approximate-first ~2M (1M end-to-end still CPU-favored).

Approximate-first Auto also consults the input schema: clouds with APPROXIMATE_HEAVY_F32_ATTRIBUTE_CHANNELS or more non-position F32 fields (e.g. point_xyzinormal) use DEFAULT_GPU_MIN_POINTS_APPROXIMATE_HEAVY.

Implementations§

Source§

impl VoxelGridDownsampleConfig

Source

pub fn centroid(leaf_size: f32) -> Self

Creates a centroid downsampling config with uniform leaf size.

Source

pub fn approximate(leaf_size: f32) -> Self

Creates an approximate first-point downsampling config.

Source

pub const fn without_gpu_min_points(self) -> Self

Disables the GPU point-count heuristic so GPU is always used when requested.

Source

pub fn effective_gpu_min_points(&self, schema: &PointSchema) -> Option<usize>

Returns the point-count threshold used by ExecutionPolicy::Auto.

Approximate-first mode raises the effective threshold to DEFAULT_GPU_MIN_POINTS_APPROXIMATE_HEAVY when the schema carries many F32 attributes (Epic 38 regression, Epic 46 crossover at 1M+).

Trait Implementations§

Source§

impl Clone for VoxelGridDownsampleConfig

Source§

fn clone(&self) -> VoxelGridDownsampleConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for VoxelGridDownsampleConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for VoxelGridDownsampleConfig

Source§

fn eq(&self, other: &VoxelGridDownsampleConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for VoxelGridDownsampleConfig

Source§

impl StructuralPartialEq for VoxelGridDownsampleConfig

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,