Difference between revisions of "2017 Winter Project Week/Support for volumetric meshes"

From NAMIC Wiki
Jump to: navigation, search
Line 2: Line 2:
 
<gallery>
 
<gallery>
 
Image:PW-Winter2017.png|link=2017_Winter_Project_Week#Projects|[[2017_Winter_Project_Week#Projects|Projects List]]
 
Image:PW-Winter2017.png|link=2017_Winter_Project_Week#Projects|[[2017_Winter_Project_Week#Projects|Projects List]]
 +
</gallery>
 +
 +
==Previous works==
 +
<gallery>
 
File:volumetricMeshSlicer3.png | FEMesh in Slicer 3
 
File:volumetricMeshSlicer3.png | FEMesh in Slicer 3
File:CleaverExtension.jpeg | Cleaver Extension
+
File:CleaverExtension.jpeg | Cleaver Extensio
<!-- Use the "Upload file" link on the left and then add a line to this list like "File:MyAlgorithmScreenshot.png" -->
+
</gallery>
 +
 
 +
==Results==
 +
<gallery>
 +
File:Models_VolumetricMesh3.png | Volumetric Mesh
 +
File:Models_VolumetricMesh1.gif | Volumetric Mesh (gif)
 +
File:Models_VolumetricMesh2.gif | Models module display widget (gif)
 
</gallery>
 
</gallery>
  
Line 41: Line 51:
 
* qMRMLModelDisplayNodeWidget updated to simplify scalar range mode selection, adapt number of decimals and single step for manual selection of the range based on the current values.
 
* qMRMLModelDisplayNodeWidget updated to simplify scalar range mode selection, adapt number of decimals and single step for manual selection of the range based on the current values.
 
* Progress made to threshold displayed mesh by scalar values.
 
* Progress made to threshold displayed mesh by scalar values.
 +
* WIP branch on github: https://github.com/Slicer/Slicer/compare/master...agirault:volumetric-mesh-support
 
|
 
|
 
<!-- Next steps/Future work-->
 
<!-- Next steps/Future work-->

Revision as of 16:07, 13 January 2017

Home < 2017 Winter Project Week < Support for volumetric meshes

Previous works

Results

Key Investigators

  • Alexis Girault (Kitware, Inc.)
  • Curtis Lisle (KnowledgeVis, LLC)
  • Steve Pieper (Isomics, Inc.)

Project Description

Objective Approach and Plan Progress/Results Next steps/Future work

From top priority to possible future work:

  • Being able to visualize, load and save volumetric meshes
  • Improving clipped visualization of models (surface models or volumetric meshes) and facilitate the display of the point data (active scalars).
  • Being able to create volumetric meshes from label maps (or segmentation?) and possibly edit them
  • Initial discussions needed with Curtis and Steve based on existing work: IA FEMesh from Slicer 3, BodyCentricCubicMesh and MeshCompression modules, and the CleaverExtension. Some parts of the IA FEMesh module were prototyped in early Slicer 4 (Curtis).
  • Probably investigate the creation of a MRML node similar to Models (possibly create a hierarchy between both?) that would wrap a vtkUnstructuredGrid in order to visualize, load and save the meshes.
  • Investigate best way to adapt previous Slicer-based volumetric work that allowed for creation and edition (bullet point 1) to work with the new architecture put in place within Slicer 4 (bullet point 2).
  • Can Read & Write Unstructured Grid mesh (vtk or vtu)
  • Fix bug in vtk reader to retrieve all point data and cell data.
  • vtkMRMLModelNode now holds a "mesh", either a polydata (surface mesh) or an unstructured grid (volumetric mesh)
  • vtkMRMLDisplayNode had a major clean up to consolidate scalar range options (scalarRangeFlag and autoScalarRange). Other clean up made to retrieve the look-up table for specific nodes only holding color transfer functions (ex: vtkMRMLProceduralColorNode).
  • DisplayableManager updated for 3D to allow cutting through volumetric mesh.
  • SliceDisplableManager updated for 2D Slices to be able to use same display properties than 3D view.
  • qMRMLModelDisplayNodeWidget updated to simplify scalar range mode selection, adapt number of decimals and single step for manual selection of the range based on the current values.
  • Progress made to threshold displayed mesh by scalar values.
  • WIP branch on github: https://github.com/Slicer/Slicer/compare/master...agirault:volumetric-mesh-support
  • Finalize threshold display option.
  • Clean up and consolidate qSlicerModelsModuleWidget (display properties, representations, wireframe, clipping... just move options around to make it more usable)
  • Add clipping option to smoothen the cut (using vtkClipDataSet vs vtkExtractGeometry)
  • Add support to pass through CLI (SlicerCLILogic)
  • Display information about the model type (surface or volumetric) for the user to be able to distinct it in the module widget.
  • Test with more cases, like fiber bundles etc... (changes could have a lot of impacts because there were changes to vtkMRMLDisplayNode and vtkMRMLModelNode. Make sure the updated API stays backward compatible).

Background and References