Difference between revisions of "2017 Winter Project Week/Support for volumetric meshes"
From NAMIC Wiki
(6 intermediate revisions by the same user not shown) | |||
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 | + | File:CleaverExtension.jpeg | Cleaver Extensio |
− | < | + | </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 11: | Line 21: | ||
* Alexis Girault (Kitware, Inc.) | * Alexis Girault (Kitware, Inc.) | ||
* Curtis Lisle (KnowledgeVis, LLC) | * Curtis Lisle (KnowledgeVis, LLC) | ||
− | * Steve | + | * Steve Pieper (Isomics, Inc.) |
==Project Description== | ==Project Description== | ||
{| class="wikitable" | {| class="wikitable" | ||
− | ! style="text-align: left; width: | + | ! style="text-align: left; width:20%" | Objective |
− | ! style="text-align: left; width: | + | ! style="text-align: left; width:20%" | Approach and Plan |
− | ! style="text-align: left; width: | + | ! style="text-align: left; width:20%" | Progress/Results |
+ | ! style="text-align: left; width:20%" | Next steps/Future work | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
| | | | ||
Line 27: | Line 38: | ||
| | | | ||
<!-- Approach and Plan bullet points --> | <!-- Approach and Plan bullet points --> | ||
− | * Initial discussions needed with Curtis and Steve based on existing work: IA FEMesh from Slicer 3, BodyCentricCubicMesh and MeshCompression modules, and the CleaverExtension. | + | * 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. | * 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). | * 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). | ||
| | | | ||
− | <!-- Progress and | + | <!-- Progress/Results --> |
− | * | + | * 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 magnitude of the current values. | ||
+ | * Threshold displayed mesh by scalar values. | ||
+ | * Display information about the model type (surface or volumetric) for the user to be able to distinct it in the module widget. | ||
+ | * WIP branch on github: https://github.com/Slicer/Slicer/compare/master...agirault:volumetric-mesh-support | ||
+ | | | ||
+ | <!-- Next steps/Future work--> | ||
+ | * 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) | ||
+ | * 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). | ||
|} | |} | ||
Latest revision as of 15:36, 16 January 2017
Home < 2017 Winter Project Week < Support for volumetric meshesPrevious 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:
|
|
|
|
Background and References
- IA_FEMesh (Slicer 3) : https://www.slicer.org/wiki/Modules:IA_FEMesh-Documentation-3.6
- BodyCentricCubicMesh module : https://www.slicer.org/wiki/Documentation/Nightly/Modules/BodyCentricCubicMesh
- MeshCompression module : https://www.slicer.org/wiki/Documentation/Nightly/Modules/MeshCompression
- CleaverExtenstion : https://www.slicer.org/wiki/Documentation/Nightly/Extensions/CleaverExtension
- vtkUnstructuredGrid : http://www.vtk.org/doc/nightly/html/classvtkUnstructuredGrid.html