Edit this page

NA-MIC Project Weeks

Back to Projects List

Interactive rhombicuboctahedron volume orientation marker

Key Investigators

Project Description

Make an orientation marker for OHIF whose 26 surfaces (6 faces, 8 corners and 12 edges) can be clicked to reorient the volume in 3D/VRT viewport.

Image

Objective

Enhanced usability of 3D viewport.
Provide volume orientation control when the rotate tool is rotating the clipping planes.

Approach and Plan

Seek advice on implementation (VTK, cornerstone,….)

Progress and Next Steps

Orientation Controller Tool with VTK Widget Approach

Summary

Adds an interactive orientation controller for 3D volume viewports using a VTK.js widget. Provides a clickable 26-faced polyhedron (rhombicuboctahedron) for reorienting the camera and visualizing orientation.

Description

The OrientationController tool displays an interactive orientation marker in volume3d viewports. Users can click faces to reorient the camera and see the current orientation.

VTK Widget Approach

Uses a VTK.js-based widget architecture:

Architecture Overview

  1. vtkOrientationControllerWidget (packages/tools/src/utilities/vtkjs/OrientationControllerWidget/)
    • Core widget managing VTK actors and interaction
    • Creates and manages vtkActor instances for the polyhedron
    • Handles mouse picking via vtkCellPicker
    • Manages actor lifecycle (add/remove from viewports)
    • Handles positioning and sizing relative to viewport corners
  2. AnnotatedRhombicuboctahedronActor (packages/tools/src/utilities/vtkjs/AnnotatedRhombicuboctahedronActor/)
    • Generates the 26-faced polyhedron geometry
    • Creates VTK actors with textured faces and labels
    • Supports main faces (6), edge faces (12), and corner faces (8)
    • Applies anatomical labels (L/R, A/P, S/I) using LPS convention
  3. OrientationController Tool (packages/tools/src/tools/OrientationController.ts)
    • Cornerstone3D tool extending BaseTool
    • Wraps the VTK widget for integration
    • Manages tool lifecycle (enable/disable)
    • Handles configuration updates and viewport synchronization

Test in OHIF

Illustrations

image

No response

Background and References

Acknowledgements

This project is supported by Frei Universitat Berlin

No response