pub struct ProcessingResult {
pub meshes: Vec<MeshData>,
pub instances: Vec<InstanceRecord>,
pub mesh_coordinate_space: MeshCoordinateSpace,
pub frame: MeshFrame,
pub site_transform: Option<Vec<f64>>,
pub building_transform: Option<Vec<f64>>,
pub metadata: ModelMetadata,
pub stats: ProcessingStats,
}Expand description
Result of processing an IFC file.
Fields§
§meshes: Vec<MeshData>§instances: Vec<InstanceRecord>#1623 Phase 2 don’t-bake output: per-occurrence instance records emitted when
StreamingOptions.enable_instancing is set. Each non-template occurrence of a
repeated single-solid IfcRepresentationMap skipped its full materialize; the
template MeshData stays in meshes (keyed by InstanceRecord.template_express_id)
and each occurrence here places it by a template-relative transform. Always
empty when instancing is off, so exporters/determinism see the flat output.
mesh_coordinate_space: MeshCoordinateSpaceThe frame the mesh vertices are expressed in, as its wire tag.
Always frame.coordinate_space(): the constructor below is the only
writer of either field, and issue_4706_symbolic_shares_the_mesh_frame
asserts they agree on a live parse.
frame: MeshFrameThe frame itself: the tag above PLUS the translation that was subtracted and the site rotation that was removed.
A second consumer of the same bytes that has to land in the same frame
reads it here rather than re-deriving the three-tier selection from
site_transform and the metadata’s origin shift. The server’s symbolic
stream is that consumer (#4706): it hands this to
extract_symbolic_data_with_provenance_in_frame.
site_transform: Option<Vec<f64>>IfcSite ObjectPlacement as column-major 4x4 matrix (in meters).
building_transform: Option<Vec<f64>>IfcBuilding ObjectPlacement as column-major 4x4 matrix (in meters).
metadata: ModelMetadata§stats: ProcessingStatsAuto Trait Implementations§
impl Freeze for ProcessingResult
impl RefUnwindSafe for ProcessingResult
impl Send for ProcessingResult
impl Sync for ProcessingResult
impl Unpin for ProcessingResult
impl UnsafeUnpin for ProcessingResult
impl UnwindSafe for ProcessingResult
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.