def generatePaths(self, layers): color1 = 0 #random.random() color2 = 0.5 color3 = 1 modelPlotter = vtkLinePlotter() supportPlotter = vtkLinePlotter() basePlotter = vtkLinePlotter() base = False support = False for layer in layers: # layer for path in layer.getModelPaths(): # path vectors = path.read() for i in range(len(vectors) - 1): # vector vec1 = [0, 0, 0] vec2 = [0, 0, 0] vec1[0] = vectors[i].x vec1[1] = vectors[i].y vec1[2] = vectors[i].z vec2[0] = vectors[i + 1].x vec2[1] = vectors[i + 1].y vec2[2] = vectors[i + 1].z modelPlotter.PlotLine(vec1, vec2, color1) for path in layer.getSupportPaths(): # path vectors = path.read() for i in range(len(vectors) - 1): # vector vec1 = [0, 0, 0] vec2 = [0, 0, 0] vec1[0] = vectors[i].x vec1[1] = vectors[i].y vec1[2] = vectors[i].z vec2[0] = vectors[i + 1].x vec2[1] = vectors[i + 1].y vec2[2] = vectors[i + 1].z supportPlotter.PlotLine(vec1, vec2, color2) support = True for path in layer.getBasePaths(): # path vectors = path.read() for i in range(len(vectors) - 1): # vector vec1 = [0, 0, 0] vec2 = [0, 0, 0] vec1[0] = vectors[i].x vec1[1] = vectors[i].y vec1[2] = vectors[i].z vec2[0] = vectors[i + 1].x vec2[1] = vectors[i + 1].y vec2[2] = vectors[i + 1].z basePlotter.PlotLine(vec1, vec2, color3) base = True polydata, actor = modelPlotter.CreateActor() self._slice_vtkpolydata = polydata self._slice_actor = actor if support: polydata, actor = supportPlotter.CreateActor() self._support_vtkpolydata = polydata self._support_actor = actor if base: polydata, actor = basePlotter.CreateActor() self._base_vtkpolydata = polydata self._base_actor = actor
def dibuixa(polygon, z=0, color=0.5): plot = vtkLinePlotter() contour = polygon.exterior.xy x = contour[0] y = contour[1] for i in range(len(x) - 1): vec1 = [0, 0, z] vec2 = [0, 0, z] vec1[0] = x[i] vec1[1] = y[i] vec2[0] = x[i + 1] vec2[1] = y[i + 1] plot.PlotLine(vec1, vec2, color) # color += 1.0/len(points) holes = polygon.interiors if len(holes) > 0: for hole in holes: x = hole.xy[0] y = hole.xy[1] for i in range(len(x) - 1): vec1 = [0, 0, z] vec2 = [0, 0, z] vec1[0] = x[i] vec1[1] = y[i] vec2[0] = x[i + 1] vec2[1] = y[i + 1] plot.PlotLine(vec1, vec2, color) polydata, actor = plot.CreateActor() return actor
def plot3d(x, y, z=0): plot = vtkLinePlotter() color = 0 for i in range(len(x) - 1): vec1 = [0, 0, z] vec2 = [0, 0, z] vec1[0] = x[i] vec1[1] = y[i] vec2[0] = x[i + 1] vec2[1] = y[i + 1] plot.PlotLine(vec1, vec2, color) color += 1.0 / len(x) polydata, actor = plot.CreateActor() return actor