pub struct StlConversionReport {Show 30 fields
pub backend: ConversionBackend,
pub backend_reason: String,
pub fallback_cause: Option<String>,
pub input_vertices: usize,
pub input_triangles: usize,
pub recognized_regions: usize,
pub recognized_triangles: usize,
pub unresolved_triangles: usize,
pub recognition_skipped: Option<String>,
pub source_closed_manifold: bool,
pub analytic_used_repaired_mesh: bool,
pub requested_distance_tolerance: f64,
pub coordinate_precision_tolerance: f64,
pub effective_distance_tolerance: f64,
pub region_type_counts: BTreeMap<String, usize>,
pub regions: Vec<ConversionRegionReport>,
pub topology_refit: Option<ConversionRegionReport>,
pub hybrid_rebuild: Option<HybridConversionReport>,
pub hybrid_demotions: Vec<HybridDemotion>,
pub components: Vec<ComponentConversionReport>,
pub exported_step_bytes: usize,
pub exported_advanced_faces: usize,
pub faceted_faces_before_merge: Option<usize>,
pub faceted_faces_after_merge: Option<usize>,
pub roundtrip_solids: usize,
pub manifold_audit_issues: Vec<String>,
pub timings: ConversionTimings,
pub recognition_work: RecognitionWorkReport,
pub whole_carrier_scan: WholeCarrierScanReport,
pub messages: Vec<String>,
}Expand description
Detailed conversion outcome suitable for terminal or JSON reporting.
Counts are TOTALS over every body and regions is their concatenation. The
fields that can only describe one body — backend, topology_refit, the
recognition tolerances — are the FIRST body’s; components is the per-body
record, and backend_reason names every body when there is more than one.
Fields§
§backend: ConversionBackendTopology construction path used.
backend_reason: StringExplanation of why the backend was selected.
fallback_cause: Option<String>Why an analytic backend was unavailable, for faceted output.
input_vertices: usizeNumber of vertices in the recognition mesh.
input_triangles: usizeNumber of triangles in the input.
recognized_regions: usizeNumber of accepted analytic regions.
recognized_triangles: usizeNumber of triangles assigned to analytic regions.
unresolved_triangles: usizeNumber of non-degenerate triangles left unresolved.
recognition_skipped: Option<String>Why RANSAC recognition did not run; None when it ran. The region
counts above are zero when this is set.
source_closed_manifold: boolWhether indexed input topology is a consistently wound closed manifold.
analytic_used_repaired_mesh: boolWhether ANY body’s analytic lanes ran on a repaired mesh because the source was not a closed two-manifold. Which mesh they were given, not whether one of them succeeded.
requested_distance_tolerance: f64Absolute recognition distance requested by the caller.
coordinate_precision_tolerance: f64Minimum distance imposed by the coordinate encoding.
effective_distance_tolerance: f64Absolute distance actually supplied to recognition.
region_type_counts: BTreeMap<String, usize>Accepted region count by analytic family name.
regions: Vec<ConversionRegionReport>Per-region carrier and quality diagnostics.
topology_refit: Option<ConversionRegionReport>Topology-informed production refit used by a direct backend, when the initially selected carrier was an observational limiting family.
hybrid_rebuild: Option<HybridConversionReport>Detailed accounting when the mixed analytic builder was used. With several bodies this sums every body that took that backend.
hybrid_demotions: Vec<HybridDemotion>Lane V row 1: every body’s demotion records, in document order.
components: Vec<ComponentConversionReport>One record per body, in document order — the authoritative per-body account when the input held several closed shells. Always populated; a single-body conversion has exactly one entry.
exported_step_bytes: usizeSerialized STEP document size.
exported_advanced_faces: usizeNumber of serialized ADVANCED_FACE entities.
faceted_faces_before_merge: Option<usize>Face count immediately after faceted repair, when that path was used.
faceted_faces_after_merge: Option<usize>Face count after the safe coplanar merge attempt, when faceted repair
was used. This equals faceted_faces_before_merge if no merge was
possible or the validated merge was unavailable.
roundtrip_solids: usizeNumber of solids recovered by round-trip STEP import.
manifold_audit_issues: Vec<String>Serialized manifold audit issues; empty on every successful result.
timings: ConversionTimingsStage and total wall-clock measurements.
recognition_work: RecognitionWorkReportCounted RANSAC recognition work, summed over every body.
whole_carrier_scan: WholeCarrierScanReportRow 11’s local scan on whole carriers (lane J row 13), summed.
messages: Vec<String>Useful chronological terminal messages.
Trait Implementations§
Source§impl Clone for StlConversionReport
impl Clone for StlConversionReport
Source§fn clone(&self) -> StlConversionReport
fn clone(&self) -> StlConversionReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StlConversionReport
impl Debug for StlConversionReport
Source§impl<'de> Deserialize<'de> for StlConversionReport
impl<'de> Deserialize<'de> for StlConversionReport
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<StlConversionReport, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<StlConversionReport, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for StlConversionReport
impl Serialize for StlConversionReport
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Forget for StlConversionReport
impl Freeze for StlConversionReport
impl Move for StlConversionReport
impl RefUnwindSafe for StlConversionReport
impl Send for StlConversionReport
impl Sync for StlConversionReport
impl Unpin for StlConversionReport
impl UnsafeUnpin for StlConversionReport
impl UnwindSafe for StlConversionReport
Blanket Implementations§
Source§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.