def METHOD_NAME(self):
    from vmtk import vmtkscripts
    if self.Surface == None:
        self.PrintError('Error: no Surface.')
    if not self.vmtkRenderer:
        self.vmtkRenderer = vmtkrenderer.vmtkRenderer()
        self.vmtkRenderer.Initialize()
        self.OwnRenderer = 1
    self.vmtkRenderer.RegisterScript(self)
    triangleFilter = vtk.vtkTriangleFilter()
    triangleFilter.SetInputData(self.Surface)
    triangleFilter.Update()
    self.Surface = triangleFilter.GetOutput()
    self.tagviewer = vmtkscripts.vmtkSurfaceViewer()
    self.tagviewer.Surface = self.Surface
    self.tagviewer.vmtkRenderer = self.vmtkRenderer
    self.tagviewer.Representation = 'edges'
    self.tagviewer.Opacity = self.Opacity
    self.tagviewer.METHOD_NAME()
    self.ContourWidget = vtk.vtkContourWidget()
    self.ContourWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor)
    rep = vtk.vtkOrientedGlyphContourRepresentation.SafeDownCast(self.ContourWidget.GetRepresentation())
    rep.GetLinesProperty().SetColor(1, 0, 0)
    rep.GetLinesProperty().SetLineWidth(4.0)
    pointPlacer = vtk.vtkPolygonalSurfacePointPlacer()
    pointPlacer.AddProp(self.tagviewer.Actor)
    pointPlacer.GetPolys().AddItem(self.Surface)
    rep.SetPointPlacer(pointPlacer)
    self.Interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator()
    self.Interpolator.GetPolys().AddItem(self.Surface)
    rep.SetLineInterpolator(self.Interpolator)
    self.InputInfo("Building loop ...\n")
    self.vmtkRenderer.AddKeyBinding('space','Generate loop',self.LoopCallback)
    self.vmtkRenderer.AddKeyBinding('d','Delete contour',self.DeleteContourCallback)
    self.vmtkRenderer.AddKeyBinding('i','Start/stop contour drawing',self.InteractCallback)
    self.Display()
    if self.OwnRenderer:
        self.vmtkRenderer.Deallocate()