Difference between revisions of "2010 NAMIC Project week: Programmatic use of Volume Rendering module"

From NAMIC Wiki
Jump to: navigation, search
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]]
Image:genuFAp.jpg|Scatter plot of the original FA data through the genu of the corpus callosum of a normal brain.
 
Image:genuFA.jpg|Regression of FA data; solid line represents the mean and dotted lines the standard deviation.
 
 
</gallery>
 
</gallery>
  

Revision as of 20:04, 16 June 2010

Home < 2010 NAMIC Project week: Programmatic use of Volume Rendering module

Key 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)

  1. ITK Module
  2. Slicer Module
    1. Built-in
    2. Extension -- commandline
    3. Extension -- loadable
  3. Other (Please specify)

References