def METHOD_NAME(self, create_polyhedron, crops=None, **kwargs):
    """
    Create polyhedron using an externel function from this object,
    which means converting it from a flat mesh to a 3d mesh state.
    """
    remaining_faces = self.faces
    for crop, prep in crops or ():
        if prep.intersects(self.geom):
            crop_faces = set(chain(*crop.faces))
            crop_id = tuple(crop.crop_ids)[0]
            self.add_faces[crop_id] = create_polyhedron(tuple((faces & crop_faces)
                                                              for faces in self.faces), **kwargs)
            remaining_faces = tuple((faces - crop_faces) for faces in self.faces)
    self.faces = create_polyhedron(remaining_faces, **kwargs)