Skip to main content

intersecting_pairs

Function intersecting_pairs 

Source
pub fn intersecting_pairs(
    mesh_a: &Mesh,
    bvh_a: &Bvh,
    mesh_b: &Mesh,
    bvh_b: &Bvh,
    xf: &Rigid,
    out: &mut Vec<(TriangleId, TriangleId)>,
) -> Result<usize>
Expand description

Appends to out every pair (a, b) of an alive triangle a of A and an alive triangle b of B that intersect or touch, with B placed in A’s space by xf, and returns how many were appended. The appended pairs are sorted by (a, b); elements already in out are kept and stay in front.

The test is exact, as for intersects. Passing the same mesh twice means two coincident copies: with Rigid::IDENTITY every (t, t) is a pair, along with every pair of neighbouring triangles.

§Errors

As for intersects, and QueryError::OutOfMemory when out cannot grow. On any error out keeps its original length.