# Currently assuming that this is the region numbers that were produced by coloring!
        # TODO: If necessary, get from array to be more robust.
        region_ids = (0, 1)

        # Extract each surface in turn to find the smallest one
        subsurfaces = {}
        for k in region_ids:
            connectivityFilter = vtk.vtkPolyDataConnectivityFilter()
            connectivityFilter.SetInputData(self.ColoredSurface)
            connectivityFilter.SetExtractionModeToSpecifiedRegions()
            connectivityFilter.AddSpecifiedRegion(k)
            connectivityFilter.ColorRegionsOff()
            connectivityFilter.SetScalarConnectivity(0)
            connectivityFilter.Update()
            subsurfaces[k] = connectivityFilter.GetOutput()

        # The inner surface has smaller bounds
        if bnorm(subsurfaces[region_ids[0]]) < bnorm(subsurfaces[region_ids[1]]):
            self.InnerRegionId = region_ids[0]
            self.OuterRegionId = region_ids[1]
        else:
            self.InnerRegionId = region_ids[1]
            self.OuterRegionId = region_ids[0]
        self.InnerSurface = subsurfaces[self.InnerRegionId]
        self.OuterSurface = subsurfaces[self.OuterRegionId]

if __name__ == '__main__':
    main = pypes.pypeMain()
    main.Arguments = sys.argv
    main.Execute()
    def Execute(self):

        if self.Centerlines == None:
            self.PrintError('Error: No input centerlines.')

        centerlineBranchGeometry = vtkvmtk.vtkvmtkCenterlineBranchGeometry()
        centerlineBranchGeometry.SetInputData(self.Centerlines)
        centerlineBranchGeometry.SetRadiusArrayName(self.RadiusArrayName)
        centerlineBranchGeometry.SetGroupIdsArrayName(self.GroupIdsArrayName)
        centerlineBranchGeometry.SetBlankingArrayName(self.BlankingArrayName)
        centerlineBranchGeometry.SetLengthArrayName(self.LengthArrayName)
        centerlineBranchGeometry.SetCurvatureArrayName(self.CurvatureArrayName)
        centerlineBranchGeometry.SetTorsionArrayName(self.TorsionArrayName)
        centerlineBranchGeometry.SetTortuosityArrayName(
            self.TortuosityArrayName)
        centerlineBranchGeometry.SetLineSmoothing(self.LineSmoothing)
        centerlineBranchGeometry.SetNumberOfSmoothingIterations(
            self.NumberOfSmoothingIterations)
        centerlineBranchGeometry.SetSmoothingFactor(self.SmoothingFactor)

        centerlineBranchGeometry.Update()

        self.GeometryData = centerlineBranchGeometry.GetOutput()


if __name__ == '__main__':

    main = pypes.pypeMain()
    main.Arguments = sys.argv
    main.Execute()