예제 #1
0
  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
예제 #2
0
 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())
예제 #3
0
 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())