# How do I construct a surface bordered by two perimeters?

Below is a script that constructs a square perimeter with a triangle perimeter inside

I would like to construct a surface between the triangle and the square. Is there a way to do this without e.g. manually constructing vtkQuads or vtkTriangles?

``````import vtk

# Square points and lines
points = [
[0, 0, 0],
[1, 0, 0],
[1, 1, 0],
[0, 1, 0],
]
lines = [
[0, 1],
[1, 2],
[2, 3],
[3, 0],
]

# Inner triangle points and lines
points += [
[0.25, 0.25, 0],
[0.75, 0.25, 0],
[0.5, 0.75, 0],
]
lines += [
[4, 5],
[5, 6],
[6, 4],
]

num_points = len(points)
num_lines = len(lines)

# Create a cell array out of these points
edges = vtk.vtkCellArray()
for i in range(num_lines):
line = vtk.vtkLine()
line.GetPointIds().SetId(0, lines[i][0])
line.GetPointIds().SetId(1, lines[i][1])
edges.InsertNextCell(line)

# Create a polydata object
square = vtk.vtkPolyData()
square.SetPoints(vtk.vtkPoints())
square.SetLines(edges)

# Add the points to the dataset
for i in range(num_points):
square.GetPoints().InsertPoint(i, points[i])

# Create a mapper
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(square)

actor = vtk.vtkActor()
actor.SetMapper(mapper)

renderer = vtk.vtkRenderer()