Example #1
0
 def clip(self, plane) -> 'Mesh':
     from capytaine.meshes.clipper import clip
     clipped_self = clip(self, plane=plane)
     self.vertices = clipped_self.vertices
     self.faces = clipped_self.faces
     self._clipping_data = clipped_self._clipping_data
     return self
Example #2
0
def test_clipper_indices(size):
    """Test clipped_mesh_faces_ids."""
    mesh = Rectangle(size=(size, size),
                     resolution=(size, size),
                     center=(0, 0, 0)).mesh.merged()
    clipped_mesh = clip(mesh, plane=Plane(point=(0, 0, 0), normal=(0, 0, 1)))
    faces_ids = clipped_mesh._clipping_data['faces_ids']

    assert clipped_mesh.nb_faces == len(faces_ids)
    assert all(
        norm(clipped_mesh.faces_centers[i] - mesh.faces_centers[face_id]) < 0.3
        for i, face_id in enumerate(faces_ids))