<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Documentation%2F4.4%2FModules%2FVolumeRendering</id>
	<title>Documentation/4.4/Modules/VolumeRendering - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Documentation%2F4.4%2FModules%2FVolumeRendering"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.4/Modules/VolumeRendering&amp;action=history"/>
	<updated>2026-04-07T05:56:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.4/Modules/VolumeRendering&amp;diff=61970&amp;oldid=prev</id>
		<title>Unknown user: Text replacement - &quot;slicerWiki/index.php&quot; to &quot;wiki&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.4/Modules/VolumeRendering&amp;diff=61970&amp;oldid=prev"/>
		<updated>2019-11-21T17:33:39Z</updated>

		<summary type="html">&lt;p&gt;Text replacement - &amp;quot;slicerWiki/index.php&amp;quot; to &amp;quot;wiki&amp;quot;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:33, 21 November 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot; &gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tutorial about [http://www.slicer.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;slicerWiki/index.php&lt;/del&gt;/Slicer3:Volume_Rendering_Tutorials using the volume rendering module].  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tutorial about [http://www.slicer.org/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;wiki&lt;/ins&gt;/Slicer3:Volume_Rendering_Tutorials using the volume rendering module].  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Labelmap rendering===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Labelmap rendering===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Unknown user</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Documentation/4.4/Modules/VolumeRendering&amp;diff=40508&amp;oldid=prev</id>
		<title>UpdateBot: Nightly -&gt; 4.4</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Documentation/4.4/Modules/VolumeRendering&amp;diff=40508&amp;oldid=prev"/>
		<updated>2014-12-25T06:54:54Z</updated>

		<summary type="html">&lt;p&gt;Nightly -&amp;gt; 4.4&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation/versioncheck}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-header}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-start|{{documentation/modulename}} }}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-acknowledgements}}&lt;br /&gt;
: '''Contact:''' Julien Finet, &amp;lt;email&amp;gt;julien.finet@kitware.com&amp;lt;/email&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-row}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-logo-gallery&lt;br /&gt;
|{{collaborator|logo|kitware}}|{{collaborator|longname|kitware}}&lt;br /&gt;
|{{collaborator|logo|isomics}}|{{collaborator|longname|isomics}}&lt;br /&gt;
|{{collaborator|logo|spl}}|{{collaborator|longname|spl}}&lt;br /&gt;
|{{collaborator|logo|namic}}|{{collaborator|longname|namic}}&lt;br /&gt;
}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-introduction-end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Module Description}}&lt;br /&gt;
{{documentation/{{documentation/version}}/module-description}}&lt;br /&gt;
Only UNSIGNED CHAR images are supported for now. You can convert your images into UCHAR by using the [[Documentation/{{documentation/version}}/Modules/CastScalarVolume|Cast Scalar Volume]] module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Use Cases}}&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
Image:Tumor-Volume-Rendering-PostGad-2011.png|Tumor post pad &amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(preset: MR-Default)&amp;lt;/small&amp;gt;&lt;br /&gt;
Image:Modules-VolumeRendering-LabelMap.png|Segmented (labelmap) knee&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(interpolation: nearest neighbor, shading: off)&amp;lt;/small&amp;gt;&lt;br /&gt;
Image:QSlicerVolumeRendering-default.png|Default view of the module.&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Inputs and Advanced... are hidden by default&amp;lt;/small&amp;gt;&lt;br /&gt;
Image:VolumeRenderingSettings.png|Volume Rendering settings&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;''Edit -&amp;gt; Application Settings -&amp;gt; Volume Rendering settings''&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Tutorials}}&lt;br /&gt;
&lt;br /&gt;
Tutorial about [http://www.slicer.org/slicerWiki/index.php/Slicer3:Volume_Rendering_Tutorials using the volume rendering module]. &lt;br /&gt;
&lt;br /&gt;
===Labelmap rendering===&lt;br /&gt;
[[File:Modules-VolumeRendering-LabelMap.png|right|500px]]&lt;br /&gt;
A labelmap is a volume, and as such it can be visualized using the Volume Rendering method. It can be an alternative from [[Documentation/{{documentation/version}}/Modules/ModelMaker|creating surface models]] from labelmap.&lt;br /&gt;
# First you need to load your labelmap.&lt;br /&gt;
## Make sure you check the &amp;quot;Labelmap&amp;quot; check box at load time.&lt;br /&gt;
## Make sure the labelmap is a Unsigned Char image, not Unsigned/Signed Short, Int or Long. If needed, you can [[Documentation/{{documentation/version}}/Modules/CastScalarVolume| cast]] the labelmap to UCHAR.&lt;br /&gt;
# Open the Volume Rendering module&lt;br /&gt;
## As usual, click on the eye to start the Volume Rendering. &lt;br /&gt;
# To turn off shading:&lt;br /&gt;
## go to Advanced../Volume Properties/Advanced group box and uncheck the &amp;quot;Shade&amp;quot; checkbox&lt;br /&gt;
# To turn on/off a specific label:&lt;br /&gt;
## Go to the Advanced.../Volume Properties/Scalar Opacity Mapping group box&lt;br /&gt;
## Toggle down the '&amp;gt;&amp;gt;' button to show the Opacity controls. &lt;br /&gt;
## Browse each label with the &amp;quot;Point:&amp;quot; spinbox. When the spinbox shows the current label value, &lt;br /&gt;
## Set the Opacity spinbox value to 0.0/1.0 to hide/show the label.&lt;br /&gt;
&lt;br /&gt;
===Render 2 volumes in 2 views===&lt;br /&gt;
[[File:DualVR.png|right|500px]]&lt;br /&gt;
# [[Documentation/{{documentation/version}}/SlicerApplication/MainApplicationGUI#Layouts|Change layout]] into &amp;quot;Dual 3D&amp;quot;&lt;br /&gt;
# [[Documentation/{{documentation/version}}/SlicerApplication/LoadingData|Load]] your 2 volumes&lt;br /&gt;
# [[Documentation/{{documentation/version}}/SlicerApplication/MainApplicationGUI#Module_Selection_.26_Navigation|Open]] Volume Rendering module&lt;br /&gt;
# For the first volume:&lt;br /&gt;
## Open the &amp;quot;Inputs&amp;quot; section&lt;br /&gt;
## Uncheck &amp;quot;View2&amp;quot; -&amp;gt; only &amp;quot;View1&amp;quot; is checked&lt;br /&gt;
## Don't click the &amp;quot;eye&amp;quot; icon yet.&lt;br /&gt;
# Select the 2nd volume&lt;br /&gt;
## Check &amp;quot;View2&amp;quot;&lt;br /&gt;
## Uncheck &amp;quot;View1&amp;quot; -&amp;gt; only &amp;quot;View2&amp;quot; is checked&lt;br /&gt;
## Click the eye icon for the VR to show up in View2&lt;br /&gt;
# Select the 1st volume&lt;br /&gt;
## Click the eye icon for the VR to show up in View1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Panels and their use}}&lt;br /&gt;
[[File:VolumeRenderingPanel.png|right|]]&lt;br /&gt;
{{documentation/{{documentation/version}}/module-parametersdescription}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Similar Modules}}&lt;br /&gt;
[[Documentation/{{documentation/version}}/Modules/Volumes|Volumes]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|References}}&lt;br /&gt;
Publications related to this module go here. Links to pdfs would be useful.&lt;br /&gt;
For extensions: link to the source code repository and additional documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-section|Information for Developers}}&lt;br /&gt;
===Limitations===&lt;br /&gt;
*To date, only 1 volume can be visible at a time. This happens because the current volume rendering displayable node is hidden when changing to a different volume node.&lt;br /&gt;
*Only UNSIGNED CHAR images are supported for now. You can convert your images into UCHAR by using the [[Documentation/{{documentation/version}}/Modules/CastScalarVolume|Cast Scalar Volume]] module.&lt;br /&gt;
&lt;br /&gt;
===Key [[Documentation/{{documentation/version}}/Developers/MRML|nodes]] and classes===&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLVolumeRenderingDisplayNode.html vtkMRMLVolumeRenderingDisplayNode] controls the volume rendering properties. Each volume rendering technique has its own subclass.&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic] contains utility functions&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLScalarVolumeNode.html vtkMRMLScalarVolumeNode] contains the volume itself&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLVolumePropertyNode.html vtkMRMLVolumePropertyNode] points to the transfer functions&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode] controls the clipping planes&lt;br /&gt;
* [http://slicer.org/doc/html/classvtkMRMLVolumeRenderingDisplayableManager.html vtkMRMLVolumeRenderingDisplayableManager] adds the volume renderings into the views&lt;br /&gt;
&lt;br /&gt;
===How Tos===&lt;br /&gt;
*How to programmatically volume render your volume node?&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|C++&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|Python&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
 qSlicerAbstractCoreModule* volumeRenderingModule =&lt;br /&gt;
   qSlicerCoreApplication::application()-&amp;gt;moduleManager()-&amp;gt;module(&amp;quot;VolumeRendering&amp;quot;);&lt;br /&gt;
 vtkSlicerVolumeRenderingLogic* volumeRenderingLogic = &lt;br /&gt;
   volumeRenderingModule ? vtkSlicerVolumeRenderingLogic::SafeDownCast(volumeRenderingModule-&amp;gt;logic()) : 0;&lt;br /&gt;
 vtkMRMLVolumeNode* volumeNode = mrmlScene-&amp;gt;GetNodeByID('vtkMRMLScalarVolumeNode1');&lt;br /&gt;
 if (volumeRenderingLogic)&lt;br /&gt;
   {&lt;br /&gt;
   vtkMRMLVolumeRenderingDisplayNode* displayNode =&lt;br /&gt;
     volumeRenderingLogic-&amp;gt;CreateVolumeRenderingDisplayNode();&lt;br /&gt;
   mrmlScene-&amp;gt;AddNode(displayNode);&lt;br /&gt;
   displayNode-&amp;gt;Delete();&lt;br /&gt;
   volumeRenderingLogic-&amp;gt;UpdateDisplayNodeFromVolumeNode(displayNode, volumeNode);&lt;br /&gt;
   volumeNode-&amp;gt;AddAndObserveDisplayNodeID(displayNode-&amp;gt;GetID());&lt;br /&gt;
   }&lt;br /&gt;
See [[Documentation/{{documentation/version}}/Developers/Tutorials/CreateLoadableModule#Dependency_between_modules|here]] for more about volume dependency.&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; logic = slicer.modules.volumerendering.logic()&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; volumeNode = slicer.mrmlScene.GetNodeByID('vtkMRMLScalarVolumeNode1')&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; displayNode = logic.CreateVolumeRenderingDisplayNode()&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; slicer.mrmlScene.AddNode(displayNode)&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; displayNode.UnRegister(logic)&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; logic.UpdateDisplayNodeFromVolumeNode(displayNode, volumeNode)&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; volumeNode.AddAndObserveDisplayNodeID(displayNode.GetID())&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*How to programmatically apply a custom color/opacity transfer function?&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|C++&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|Python&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
 vtkColorTransferFunction* colors = ...&lt;br /&gt;
 vtkPiecewiseFunction* opacities = ...&lt;br /&gt;
 vtkMRMLVolumeRenderingDisplayNode* displayNode = ...&lt;br /&gt;
 vtkMRMLVolumePropertyNode* propertyNode = displayNode-&amp;gt;GetVolumePropertyNode();&lt;br /&gt;
 propertyNode-&amp;gt;SetColor(colorTransferFunction);&lt;br /&gt;
 propertyNode-&amp;gt;SetScalarOpacity(opacities);&lt;br /&gt;
 // optionally set the gradients opacities with SetGradientOpacity&lt;br /&gt;
The logic has utility functions to help you create those transfer functions:&lt;br /&gt;
 volumeRenderingLogic-&amp;gt;[http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html#ab8dbda38ad81b39b445b01e1bf8c7a86 SetWindowLevelToVolumeProp](...)&lt;br /&gt;
 volumeRenderingLogic-&amp;gt;[http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html#a1dcbe614493f3cbb9aa50c68a64764ca SetThresholdToVolumeProp](...)&lt;br /&gt;
 volumeRenderingLogic-&amp;gt;[http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html#a359314889c2b386fd4c3ffe5414522da SetLabelMapToVolumeProp](...)&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; propertyNode = displayNode.GetVolumePropertyNode()&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*How to programmatically limit volume rendering to a subset of the volume?&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|C++&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|Python&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
 [http://slicer.org/doc/html/classvtkMRMLAnnotationROINode.html vtkMRMLAnnotationROINode]* roiNode =...&lt;br /&gt;
 vtkMRMLVolumeRenderingDisplayNode* displayNode = ...&lt;br /&gt;
 displayNode-&amp;gt;SetAndObserveROINodeID(roiNode-&amp;gt;GetID());&lt;br /&gt;
 displayNode-&amp;gt;SetCroppingEnabled(1);&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; displayNode.SetAndObserveROINodeID(roiNode.GetID())&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; displayNode.CroppingEnabled = 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*How to register a new Volume Rendering mapper?&lt;br /&gt;
You need to derive from [http://slicer.org/doc/html/classvtkMRMLVolumeRenderingDisplayNode.html vtkMRMLVolumeRenderingDisplayNode] and register your class within [http://slicer.org/doc/html/classvtkSlicerVolumeRenderingLogic.html vtkSlicerVolumeRenderingLogic].&lt;br /&gt;
&lt;br /&gt;
{|width = &amp;quot;100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|C++&lt;br /&gt;
! style=&amp;quot;border-bottom: 1px solid darkgrey;font-size: 75%;&amp;quot;|Python&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
 void qSlicerMyABCVolumeRenderingModule::setup()&lt;br /&gt;
 {&lt;br /&gt;
   vtkMRMLThreeDViewDisplayableManagerFactory::GetInstance()-&amp;gt;&lt;br /&gt;
     RegisterDisplayableManager(&amp;quot;vtkMRMLMyABCVolumeRenderingDisplayableManager&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
   this-&amp;gt;Superclass::setup();&lt;br /&gt;
 &lt;br /&gt;
   qSlicerAbstractCoreModule* volumeRenderingModule =&lt;br /&gt;
     qSlicerCoreApplication::application()-&amp;gt;moduleManager()-&amp;gt;module(&amp;quot;VolumeRendering&amp;quot;);&lt;br /&gt;
   if (volumeRenderingModule)&lt;br /&gt;
     {&lt;br /&gt;
     vtkNew&amp;lt;vtkMRMLMyABCVolumeRenderingDisplayNode&amp;gt; displayNode;&lt;br /&gt;
     vtkSlicerVolumeRenderingLogic* volumeRenderingLogic =&lt;br /&gt;
       vtkSlicerVolumeRenderingLogic::SafeDownCast(volumeRenderingModule-&amp;gt;logic());&lt;br /&gt;
     volumeRenderingLogic-&amp;gt;RegisterRenderingMethod(&lt;br /&gt;
       &amp;quot;My ABC Volume Rendering&amp;quot;, displayNode-&amp;gt;GetClassName());&lt;br /&gt;
     }&lt;br /&gt;
   else&lt;br /&gt;
     {&lt;br /&gt;
     qWarning() &amp;lt;&amp;lt; &amp;quot;Volume Rendering module is not found&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
If you want to expose control widgets for your volume rendering method, then register your widget with [http://slicer.org/doc/html/classqSlicerVolumeRenderingModuleWidget.html#acd9cdb60f1fd260f3ebf74428bb7c45b addRenderingMethodWidget()]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;br /&gt;
{{documentation/{{documentation/version}}/module-footer}}&lt;br /&gt;
&amp;lt;!-- ---------------------------- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>UpdateBot</name></author>
		
	</entry>
</feed>