Skip to main content

interference_report

Function interference_report 

Source
pub fn interference_report(
    reader: &Reader<'_>,
    scope: &Scope,
) -> GeopResult<InterferenceReport>
Expand description

Which solids of the part reader reads — its own, and those of the parts placed in it, where they are — overlap, and by how much, and which only touch.

A pair whose boxes are definitely apart is apart; the pairs whose boxes could meet are found by sweeping the boxes along x (candidate_pairs), not by comparing every pair. Any other pair is intersected, as copies in a part of their own: a solid left is their overlap, measured by its volume. Nothing left, the two touch if the least distance between their faces could be zero (see could_touch), and are apart otherwise.

A pair is checked in the frame of its first solid, the second moved relative to it; a pair of the same two shapes at the same relative pose — every screw in its nut — is checked once ([Checked]).

Only the pairs scope asks about are looked at. Stopped part way (see geop_core_program::watch), it says what it found and how far it got.