pub struct ScanSegmentationStats {Show 33 fields
pub input_points: u64,
pub accepted_points: u64,
pub rejected_points: u64,
pub outside_region_points: u64,
pub coordinate_spacing_metres: f64,
pub voxel_size_metres: f64,
pub coarsenings: u32,
pub voxels: u64,
pub voxels_with_normals: u64,
pub seed_voxels: u64,
pub seed_curvature: f64,
pub regions_grown: u64,
pub regions_merged: u64,
pub curved_regions_rejected: u64,
pub small_regions_rejected: u64,
pub planar_voxels: u64,
pub cylinder_groups: u64,
pub cylinders_rejected_as_spheres: u64,
pub cylinder_candidates_below_share: u64,
pub cylinder_refits_failed: u64,
pub cylinders_rejected_for_radius: u64,
pub cylinders_rejected_as_sparse: u64,
pub cylinders_rejected_as_facets: u64,
pub cylinders_rejected_as_pierced: u64,
pub cylinders_rejected_for_uneven_arc: u64,
pub cylinders_joined_across_gaps: u64,
pub cylinders_rejected_as_duplicates: u64,
pub cylinders_rejected_for_arc: u64,
pub cylinders_rejected_for_length: u64,
pub plane_rings: u64,
pub plane_rings_rejected_as_irregular: u64,
pub plane_rings_rejected_as_hollow: u64,
pub planes_absorbed_into_cylinders: u64,
}Fields§
§input_points: u64§accepted_points: u64§rejected_points: u64Non-finite, or farther than 1e6 m from the positions’ frame origin.
outside_region_points: u64§coordinate_spacing_metres: f64Spacing of adjacent f32 values at the largest accepted coordinate. Positions far from their frame origin cannot resolve finer than this.
voxel_size_metres: f64Effective voxel edge after any coarsening (the quantised lattice step).
coarsenings: u32§voxels: u64§voxels_with_normals: u64§seed_voxels: u64§seed_curvature: f64The curvature gate the seeds passed: maxSeedCurvature, or, when noise
lifts even flat voxels above it, the curvature of the flattest 5 %.
regions_grown: u64§regions_merged: u64Coplanar adjacent regions joined into one.
curved_regions_rejected: u64Regions refused because their normals turn faster than maxBendPerMetre.
small_regions_rejected: u64Regions refused for an area under minPlaneAreaSquareMetres.
planar_voxels: u64§cylinder_groups: u64Smoothly connected non-planar voxel groups large enough to try.
cylinders_rejected_as_spheres: u64Candidates whose inliers fit a sphere at least as well.
Groups whose best RANSAC candidate fit under minCylinderInlierFraction
of the group (or no pair defined a candidate at all).
cylinder_refits_failed: u64Candidates whose least-squares refit kept too few inliers or degenerated.
cylinders_rejected_for_radius: u64Refits outside the radius range; every group when the range is empty
(an unset minimum, two voxels, above maxCylinderRadiusMetres).
cylinders_rejected_as_sparse: u64Candidates whose inliers cover under 40 % of the patch their length and arc claim: loose fits through scattered voxels, not a surface.
cylinders_rejected_as_facets: u64Candidates whose normals do not behave as a round surface’s: they point more than 11 degrees (RMS over 5 degree bins) away from the radial direction, or turn under 0.6 radians per radian of position. Flat facets meeting at an angle (a pier, a chamfered corner) and clutter in a wall corner.
cylinders_rejected_as_pierced: u64Candidates whose inside is crossed by a scanned plane over more than half their length: the walls of an inside corner cutting through the circle a rounded crease fits, not a solid column or pipe.
cylinders_rejected_for_uneven_arc: u64Candidates where fewer than half the axial slices agree with the widest slice’s arc: fragments at different heights (clutter in a wall corner), not one round surface.
cylinders_joined_across_gaps: u64Coaxial pieces of one radius joined across a band without points.
cylinders_rejected_as_duplicates: u64The same surface found twice (across groups or tries); the better supported one is kept.
cylinders_rejected_for_arc: u64Candidates covering less than minCylinderArcDegrees.
cylinders_rejected_for_length: u64Candidates shorter than minCylinderLengthMetres.
plane_rings: u64Rings of adjacent vertical planes around a common axis, examined as wide round or polygonal columns.
plane_rings_rejected_as_irregular: u64Rings that were neither round nor a regular polygon of six or more similar faces turning at least 120 degrees in all: they stay planes.
plane_rings_rejected_as_hollow: u64Rings with scanned surface inside their footprint (a bay or a niche seen from the room, whose floor runs inside): not a solid column.
planes_absorbed_into_cylinders: u64Planes removed from planes because they lie on a reported cylinder
or are the faces of a faceted column: a surface is reported once.
Trait Implementations§
Source§impl Clone for ScanSegmentationStats
impl Clone for ScanSegmentationStats
Source§fn clone(&self) -> ScanSegmentationStats
fn clone(&self) -> ScanSegmentationStats
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScanSegmentationStats
impl Debug for ScanSegmentationStats
Source§impl Default for ScanSegmentationStats
impl Default for ScanSegmentationStats
Source§fn default() -> ScanSegmentationStats
fn default() -> ScanSegmentationStats
Source§impl<'de> Deserialize<'de> for ScanSegmentationStats
impl<'de> Deserialize<'de> for ScanSegmentationStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ScanSegmentationStats
impl PartialEq for ScanSegmentationStats
Source§impl Serialize for ScanSegmentationStats
impl Serialize for ScanSegmentationStats
impl StructuralPartialEq for ScanSegmentationStats
Auto Trait Implementations§
impl Freeze for ScanSegmentationStats
impl RefUnwindSafe for ScanSegmentationStats
impl Send for ScanSegmentationStats
impl Sync for ScanSegmentationStats
impl Unpin for ScanSegmentationStats
impl UnwindSafe for ScanSegmentationStats
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.