Source code for tyssue.collisions.intersection

import numpy as np

try:
    from .cpp import c_collisions
except ImportError:
    print(
        "collision solver could not be imported "
        "You may need to install CGAL and re-install tyssue"
    )
    c_collisions = None


[docs]def self_intersections(sheet): """Checks for self collisions for the sheet Parameters ---------- sheet : a :class:`Sheet` object This object must have a `triangular_mesh` method returning a valid triangular mesh. Returns ------- edge_pairs: np.ndarray of indices Array of shape (n_intersections, 2) with the indices of the pairs of intersecting edges """ faces, vertices = sheet.triangular_mesh(sheet.coords, return_mask=False) mesh = c_collisions.sheet_to_surface_mesh(faces, vertices) if not c_collisions.does_self_intersect(mesh): return np.empty((0, 2), dtype=int) return np.array(c_collisions.self_intersections(mesh), dtype=int)