Difference between revisions of "Documentation/Nightly/Developers/FAQ/MRML"
From Slicer Wiki
(One intermediate revision by the same user not shown) | |||
Line 57: | Line 57: | ||
Source: https://github.com/fedorov/ChangeTrackerPy/blob/master/Wizard/Helper.py#L82 | Source: https://github.com/fedorov/ChangeTrackerPy/blob/master/Wizard/Helper.py#L82 | ||
+ | |||
+ | == How to know the min/max offset of a slice view ? == | ||
+ | <pre> | ||
+ | vtkMRMLSliceNode* redSliceNode = vtkMRMLSliceNode::SafeDownCast( this->GetMRMLScene()->GetNodeByID( "vtkMRMLSliceNodeRed" )); | ||
+ | vtkMRMLSliceLogic* sliceLogic = this->GetMRMLApplicationLogic()->GetSliceLogic( redSliceNode ); | ||
+ | |||
+ | double sliceBounds[6] = {0, -1, 0, -1, 0, -1}; | ||
+ | sliceLogic->GetLowestVolumeSliceBounds(sliceBounds); | ||
+ | double min = sliceBounds[4]; | ||
+ | double max = sliceBounds[5]; | ||
+ | </pre> | ||
+ | |||
+ | Source: https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Widgets/qMRMLSliceControllerWidget.cxx#L1267-L1276 |
Latest revision as of 22:14, 22 September 2017
Home < Documentation < Nightly < Developers < FAQ < MRML
For the latest Slicer documentation, visit the read-the-docs. |
Contents
MRML
How to add a MRML node into the scene ?
- Generic pattern
vtkNew<vtkMRML???Node> nodeToAdd; ... mrmlScene->AddNode(nodeToAdd.GetPointer());
- Add a polydata to the scene
vtkNew<vtkMRMLModelNode> modelNode; modelNode->SetPolyData(polyData); mrmlScene->AddNode(modelNode.GetPointer());
- Load a polyData from file
vtkSlicerModelsLogic* modelsLogic = ...; //modelsLogic->SetMRMLScene(mrmlScene); modelsLogic->AddModel(polyDataFileName);
What to do if you get 'No LookupTable was set but number of components in input doesn't match OutputFormat' when loading a MRML scene ?
If you get the following error messages:
ERROR: In /path/to/VTK/Imaging/vtkImageMapToColors.cxx, line 153 vtkImageMapToColors (0x268f190): RequestInformation: No LookupTable was set but number of components in input doesn't match OutputFormat, therefore input can't be passed through! ERROR: In /path/to/VTK/Imaging/vtkImageExtractComponents.cxx, line 239 vtkImageExtractComponents (0x26947e0): Execute: Component 1 is not in input. ERROR: In /path/to/VTK/Imaging/vtkImageExtractComponents.cxx, line 239 vtkImageExtractComponents (0x26947e0): Execute: Component 1 is not in input. [...]
Make sure the colorNodeRef
attribute is set on each VolumeDisplay
node.
How to change the volumes in the 2D views ?
appLogic = slicer.app.applicationLogic() selectionNode = appLogic.GetSelectionNode() selectionNode.SetReferenceActiveVolumeID(bg) selectionNode.SetReferenceSecondaryVolumeID(fg) appLogic.PropagateVolumeSelection()
Source: https://github.com/fedorov/ChangeTrackerPy/blob/master/Wizard/Helper.py#L82
How to know the min/max offset of a slice view ?
vtkMRMLSliceNode* redSliceNode = vtkMRMLSliceNode::SafeDownCast( this->GetMRMLScene()->GetNodeByID( "vtkMRMLSliceNodeRed" )); vtkMRMLSliceLogic* sliceLogic = this->GetMRMLApplicationLogic()->GetSliceLogic( redSliceNode ); double sliceBounds[6] = {0, -1, 0, -1, 0, -1}; sliceLogic->GetLowestVolumeSliceBounds(sliceBounds); double min = sliceBounds[4]; double max = sliceBounds[5];