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
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))