def METHOD_NAME(verts, edges=None, faces=None, face_data=None, mode=0, epsilon=1e-5):
    """
    Crete delaunay triangulation from given mesh, can cut by given faces and closed edge loops in mode=1
    :param verts: list of Sv vertices
    :param edges: list of (int, int)
    :param faces: list of list int
    :param face_data: any data related with given faces
    :param mode: 0 or 1, when 1 it does not consider mesh outside given faces and closed edges loops
    :param epsilon: int > 0; For nearness tests; should not be zero
    :return: list of Sv vertices, edges, faces, filtered related with faces data if given
    or indexes of old given faces per new face
    """
    if edges is None:
        edges = []
    if faces is None:
        faces = []
    bl_verts = [Vector(co[:2]) for co in verts]
    new_verts, new_edges, new_faces, orig_v, orig_e, orig_f = bl_delaunay(bl_verts, edges, faces, mode, epsilon)
    if face_data:
        face_data_out = [face_data[li[0] if li else -1] for li in orig_f]
    else:
        face_data_out = [li[0] if li else -1 for li in orig_f]
    return [v.to_3d()[:] for v in new_verts], new_edges, new_faces, face_data_out