pub struct ScanProposalOptions {Show 15 fields
pub scan_to_model: [f64; 16],
pub schema: ProposalSchema,
pub classification_angle_degrees: f64,
pub pairing_angle_degrees: f64,
pub min_wall_thickness_metres: f64,
pub max_wall_thickness_metres: f64,
pub default_wall_thickness_metres: f64,
pub min_wall_overlap_fraction: f64,
pub min_wall_length_metres: f64,
pub min_wall_height_metres: f64,
pub min_slab_area_square_metres: f64,
pub default_slab_thickness_metres: f64,
pub max_slab_thickness_metres: f64,
pub level_snap_metres: f64,
pub interior_point: Option<[f64; 3]>,
}Fields§
§scan_to_model: [f64; 16]Row-major 4x4 similarity (rotation, uniform scale, translation) from the frame the segmentation report is in to the IFC model frame (Z up, metres). Default identity: the report is already in it.
schema: ProposalSchemaDefault IFC4. Non-vertical cylinders become IfcFlowSegment in
IFC2X3 (no IfcPipeSegment there) and IfcPipeSegment otherwise.
classification_angle_degrees: f64Horizontal / vertical tolerance in the model frame. Default 10 degrees.
pairing_angle_degrees: f64Two wall faces pair when parallel within this. Default 5 degrees.
min_wall_thickness_metres: f64Paired faces make one wall when at least this far apart (a smaller gap is refused). Default 0.05 m.
max_wall_thickness_metres: f64… and at most this far apart. Default 0.6 m.
default_wall_thickness_metres: f64Thickness of a wall seen from one side only. Default 0.2 m.
min_wall_overlap_fraction: f64Faces must overlap along the wall by at least this share of the shorter face to pair. Default 0.5.
min_wall_length_metres: f64Vertical faces shorter (horizontally) are not walls. Default 0.5 m.
min_wall_height_metres: f64Vertical faces lower than this are not walls. Default 1 m.
min_slab_area_square_metres: f64Horizontal planes smaller than this are not slabs. Default 1 m^2.
default_slab_thickness_metres: f64Thickness of a slab seen from one side only. Default 0.2 m.
max_slab_thickness_metres: f64A ceiling and the floor above pair when this close (and at least
minWallThicknessMetres apart). Default 0.6 m.
level_snap_metres: f64Wall and column ends within this of a floor or ceiling extend to it; half of it decides which side of a horizontal plane walls stand on. Default 0.3 m.
interior_point: Option<[f64; 3]>A point inside the scanned space (model frame). Places single wall faces whose normal does not face the scanner, and decides floor or ceiling when no wall touches a horizontal plane. Default: the area-weighted mean of the plane centroids.
Trait Implementations§
Source§impl Clone for ScanProposalOptions
impl Clone for ScanProposalOptions
Source§fn clone(&self) -> ScanProposalOptions
fn clone(&self) -> ScanProposalOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScanProposalOptions
impl Debug for ScanProposalOptions
Source§impl Default for ScanProposalOptions
impl Default for ScanProposalOptions
Source§impl<'de> Deserialize<'de> for ScanProposalOptionswhere
ScanProposalOptions: Default,
impl<'de> Deserialize<'de> for ScanProposalOptionswhere
ScanProposalOptions: Default,
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 ScanProposalOptions
impl PartialEq for ScanProposalOptions
Source§impl Serialize for ScanProposalOptions
impl Serialize for ScanProposalOptions
impl StructuralPartialEq for ScanProposalOptions
Auto Trait Implementations§
impl Freeze for ScanProposalOptions
impl RefUnwindSafe for ScanProposalOptions
impl Send for ScanProposalOptions
impl Sync for ScanProposalOptions
impl Unpin for ScanProposalOptions
impl UnwindSafe for ScanProposalOptions
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.