173 self.actor = vtkActor() 174 self.actor.GetProperty().SetOpacity(0.25) 175 self.actor.GetProperty().SetColor(1, 0, 0) 176 self.planes.renderer.AddActor(self.actor) 177 178 orderedDict = OrderedDict(sorted(self.reslicers[self.contourOrientation].contours.items())) 179 contourList = [] 180 for slice, contour in orderedDict.items(): 181 print(slice) 182 contourList.append(contour) 183 184 numberOfContours = len(self.reslicers[self.contourOrientation].contours) 185 appendPolyDataList = [] 186 for i in range(0, numberOfContours - 1): 187 appendPolyData = vtkAppendPolyData() 188 appendPolyDataList.append(appendPolyData) 189 appendPolyDataList[i].AddInputData(contourList[i].GetContourRepresentation().GetContourRepresentationAsPolyData()) 190 appendPolyDataList[i].AddInputData(contourList[i + 1].GetContourRepresentation().GetContourRepresentationAsPolyData()) 191 appendPolyDataList[i].Update() 192 193 booleanOperation = vtkBooleanOperationPolyDataFilter() 194 booleanOperation1 = vtkBooleanOperationPolyDataFilter() 195 booleanOperation.SetOperationToUnion() 196 booleanOperation1.SetOperationToUnion() 197 198 for i in range(0, len(appendPolyDataList)): 199 if i == 0: 200 booleanOperation.SetInputConnection(0, appendPolyDataList[i].GetOutputPort()) 201 elif i == 1: 202 booleanOperation.SetInputConnection(1, appendPolyDataList[i].GetOutputPort()) 203 elif i == 2: 204 booleanOperation1.SetInputConnection(0, booleanOperation.GetOutputPort()) 205 booleanOperation1.SetInputConnection(1, appendPolyDataList[i].GetOutputPort()) 206 else: 207 booleanOperation1.RemoveAllInputs() 208 booleanOperation1.SetInputConnection(0, booleanOperation1.GetOutputPort()) 209 booleanOperation1.SetInputConnection(1, appendPolyDataList[i].GetOutputPort()) 210 211 212 213 214 delaunay = vtkDelaunay3D() 215 delaunay.SetInputConnection(booleanOperation1.GetOutputPort(0)) 216 mapper = vtkPolyDataMapper() 217 mapper.SetInputConnection(delaunay.GetOutputPort()) 218 self.actor.SetMapper(mapper) 219 self.planes.GetRenderWindow().Render()