def merge_models(self, modelA, modelB, modelC): scene = slicer.mrmlScene # Create model node mergedModel = slicer.vtkMRMLModelNode() mergedModel.SetScene(scene) mergedModel.SetName(modelName) dnode = slicer.vtkMRMLModelDisplayNode() snode = slicer.vtkMRMLModelStorageNode() mergedModel.SetAndObserveDisplayNodeID(dnode.GetID()) mergedModel.SetAndObserveStorageNodeID(snode.GetID()) scene.AddNode(dnode) scene.AddNode(snode) scene.AddNode(mergedModel) # Get transformed poly data from input models modelA_polydata = self.getTransformedPolyDataFromModel(self.modelA) modelB_polydata = self.getTransformedPolyDataFromModel(self.modelB) modelC_polydata = self.getTransformedPolyDataFromModel(self.modelC) # Append poly data appendFilter = vtk.vtkAppendPolyData() appendFilter.AddInputData(modelA_polydata) appendFilter.AddInputData(modelB_polydata) appendFilter.AddInputData(modelC_polydata) appendFilter.Update(); # Output mergedModel.SetAndObservePolyData(appendFilter.GetOutput()); mergedModel.SetAndObserveDisplayNodeID(dnode.GetID()); return mergedModel
def initializeModelNode(node): displayNode = slicer.vtkMRMLModelDisplayNode() storageNode = slicer.vtkMRMLModelStorageNode() displayNode.SetScene(slicer.mrmlScene) storageNode.SetScene(slicer.mrmlScene) slicer.mrmlScene.AddNode(displayNode) slicer.mrmlScene.AddNode(storageNode) node.SetAndObserveDisplayNodeID(displayNode.GetID()) node.SetAndObserveStorageNodeID(storageNode.GetID())
def initializeModelNode(node): displayNode = slicer.vtkMRMLModelDisplayNode() storageNode = slicer.vtkMRMLModelStorageNode() displayNode.SetScene(slicer.mrmlScene) storageNode.SetScene(slicer.mrmlScene) slicer.mrmlScene.AddNode(displayNode) slicer.mrmlScene.AddNode(storageNode) node.SetAndObserveDisplayNodeID(displayNode.GetID()) node.SetAndObserveStorageNodeID(storageNode.GetID())