Hi,
When I use the following code in my Slicer Extension (Slicer 4.11.20210226), I am unable to get a volume render in the 3D view (a custom vtkMRMLViewNode).
node = slicer.util.getNode('<nodename>') # a vtkMRMLScalarVolumeNode
volRenLogic = slicer.modules.volumerendering.logic()
displayNode = volRenLogic.CreateDefaultVolumeRenderingNodes(node)
displayNode.SetVisibility(True)
But when I copy paste the same to the python console, it works! Upon checking the volume rendering module, I noticed that my extension code does not set the eye icon to visible, but copy-pasting the code in the python console does that. In my extension, I also use the following displayNode functions to verify if the visibility was set properly and their output is all 1.
print (' ------ [myUtil.set3DBackground()]: ', displayNode.GetVisibility(), displayNode.GetVisibility2D(), displayNode.GetVisibility3D())
What may I be missing here?
Note: Prior to the volume rendering, my extension updates the 3D array that makes up the vtkMRMLScalarVolumeNode
being rendered.