import vtk

def MergePolyData(polydata1, polydata2):
    """
    Create a new vtkPolyData consisting on two polydatas' merge.
    """
    append = vtk.vtkAppendPolyData()
    append.AddInput(polydata1)
    append.AddInput(polydata2)
    append.Update()

    result = vtk.vtkPolyData()
    result.DeepCopy(append.GetOutput())

    return result

def IntersectPolyData(polydata1, polydata2):
    """
    Create a new vtkPolyData containing two polydatas' intersection.
    """
    # TODO:
    # develop something here to compute intersection

    result = vtk.vtkPolyData()
    result.DeepCopy(intersection.GetOutput())

    return result

def SubtractPolyData(polydata1, polydata2):
    """
    Create a new vtkPolyData, based on polydata1, removing intersections with polydata2.
    """
    # TODO:
    # develop something here to compute the difference between polydata1 and its 
    # intersection with polydata2

    result = vtk.vtkPolyData()
    result.DeepCopy(difference.GetOutput())

    return result

