Difference between revisions of "2010 NAMIC Project week: Programmatic use of Volume Rendering module"
From NAMIC Wiki
Line 2: | Line 2: | ||
<gallery> | <gallery> | ||
Image:PW-MIT2010.png|[[2010_Summer_Project_Week#Projects|Projects List]] | Image:PW-MIT2010.png|[[2010_Summer_Project_Week#Projects|Projects List]] | ||
− | |||
− | |||
</gallery> | </gallery> | ||
Revision as of 20:04, 16 June 2010
Home < 2010 NAMIC Project week: Programmatic use of Volume Rendering moduleKey Investigators
- BWH: Andriy Fedorov
- NCI: Yanling Liu
- Isomics: Alex Yarmarkovich
Objective
A number of modules in Slicer use volume rendering. However, none of them is using this functionality from Volume Rendering module in Slicer.
The objective of this project is to:
- provide example code (Tcl and/or C++) that allows to use volume rendering programmatically
- confirm that all the needed functionality available from volume rendering GUI is available from Tcl/C++ interfaces
- convert the existing modules that use VTK volume rendering to use the volume rendering module functionality
Approach, Plan
We will go through the basic functionality needed to add volume rendering to the code:
- create volume rendering scene
- visibility on/off
- initialization of the opacity and color transfer maps
- switching between the volume rendering techniques and automatic identification of the techniques available on a given machine
Our hope is that by the end of the week this page will be self-contained for adding volume rendering to any GUI Slicer module.
Progress
Delivery
The following Tcl code provides the guidelines for implementation:
# Initialization set scene $::slicer3::MRMLScene set scenario [vtkMRMLVolumeRenderingScenarioNode New] set property [vtkMRMLVolumePropertyNode New] set parameters [vtkMRMLVolumeRenderingParametersNode New] $scene AddNode $property $scene AddNode $parameters $parameters SetAndObserveVolumeNodeID "vtkMRMLScalarVolumeNode1" $parameters SetAndObserveVolumePropertyNodeID [$property GetID] $scenario SetParametersNodeID [$parameters GetID] $scene AddNode $scenario # on/off set vtGUI $::slicer3::VolumeRenderingGUI set vrLogic [$vrGUI GetLogic] $vrLogic SetVolumeVisibility 0 # initialize opacity mapping # initialize color mapping # switch between rendering technique # detect the available rendering techniques
Delivery Mechanism
This work will be delivered to the NA-MIC Kit as a (please select the appropriate options by noting YES against them below)
- ITK Module
- Slicer Module
- Built-in
- Extension -- commandline
- Extension -- loadable
- Other (Please specify)