def ListLinePlot(points): if isinstance(points, np.ndarray): points = points.tolist() if depth(points) == 2: Graphics2D([Line(np.transpose(np.array([map(float, range(len(points))), points])))]) if depth(points) == 3 and len(points[1]) == 2: Graphics2D([Line(tofloat(points))]) if depth(points) == 3 and len(points[1]) == 3: Graphics3D([Line(tofloat(points))])
def __isintlist(arg): if depth(arg) > 1: return max([__isintlist(i) for i in arg]) else: if isinstance(arg, int): return 0 else: return 1
def _createpoint(self, pointnumbers): if depth(pointnumbers) >= 3: for p in pointnumbers: self._createpoint(p) else: self.verts.InsertNextCell(len(pointnumbers)) for p in pointnumbers: self.verts.InsertCellPoint(p)
def _createline(self, pointnumbers): if depth(pointnumbers) >= 3: for p in pointnumbers: self._createline(p) else: for i in range(len(pointnumbers) - 1): line = vtk.vtkLine() line.GetPointIds().SetId(0, pointnumbers[i]) line.GetPointIds().SetId(1, pointnumbers[i + 1]) self.lines.InsertNextCell(line) i = i + 1
def _createpolygon(self, pointnumbers): if depth(pointnumbers) >= 3: for p in pointnumbers: self._createpolygon(p) else: polygon = vtk.vtkPolygon() polygon.GetPointIds().SetNumberOfIds(len(pointnumbers)) i = 0 for p in pointnumbers: polygon.GetPointIds().SetId(i, p) i += 1 self.polygons.InsertNextCell(polygon)
def addcoordinates(self, coordinates, add="", start=""): if isinstance(start, str): startval = len(coordinates) - 1 additionalcoordinates = self.pointnumbers else: startval = start additionalcoordinates = add for i in range(len(additionalcoordinates)): if depth(additionalcoordinates[i]) > 2: self.addcoordinates(coordinates, add=additionalcoordinates[i], start=startval) else: startval += 1 if len(coordinates) == 0: coordinates = [additionalcoordinates[i] * 1] else: coordinates = np.append(coordinates, [additionalcoordinates[i]], axis=0) additionalcoordinates[i, 0] = startval if isinstance(start, str): self.pointnumbers = additionalcoordinates.transpose()[0,] return coordinates else: return additionalcoordinates