Is conceivable that glTF export functionality of Open Anatomy can support Markups?
Embedding models/segmentations in 3Dviewer.net is great, but occasionally one needs annotations (landmarks, labels etc) as well. Are there any alternative solutions for that?
They could be exported as static geometry. Maybe the easiest and most general would be to have an option in Slicer to convert Markups to Models and then they would export automatically to glTF.
Ä° tried markups to models extension, but unfortunately text labels are not converted. Also essentially all you can do curves or lines, which can be acceptable for callouts, but lack of labels is a concern.
Can you do labels well in that 3D viewer? We could export polygon text but I believe they won’t orient towards the camera (“billboard” mode) like they do in Slicer.
It would be doable with vtkjs. I haven’t seen it done exactly, but it should be pretty straightforward… Now that OHIF-v3 has really nice vtkjs-based slice rendering it could be a good time to consider what it would take to build on it make a web viewer that has more Slicer-like functionality.
The important trick (for me at least) is being able to run this without requiring a dedicated website. I really love 3Dviewer.net’s passthrough URL functionality. For example I cannot maintain a publicly accessible website, but I can post data somewhere on the cloud with a sharable URL…
It looks promising, but when I tried to load MRHead.nrrd I didn’t get anything, and I couldn’t figure out how to turn on 3D rendering… Not sure if it is a browser thing (firefox).
3dviewer.net supports picking: if you click on a part then its name is highlighted in the mesh tree. Therefore, additional labels may not be necessary.
If you want to add labeled points then the OpenAnatomy exporter could be very easily enhanced to export each markup point as a separate small sphere. If you click on the small sphere then you can see its label in the mesh tree.
I don’t think there is a function to export each markup point to a separate sphere model node, but it should be easy to write a short script for it (using a vtkSphereSource, similarly to this example).