SlicerRT importer imports the original contours without any changes and stores it in planar contours representation. If you create closed surface representation then the original contours are still exactly preserved at slice positions but a surface is created between them by triangulation. Conversion from planar contours to ribbon representation was broken in Slicer-4.11-20200930 version but it is fixed in recent Slicer Preview Releases.
Andras, I did not do anything myself to create a closed surface representation - it is created automatically when I load RTSTRUCT (this behavior is identical both in stable and latest releases). Because the surface representation is created and shown by default, I was not sure what is being shown in the 2d viewers, and the discretization of the 3d surface was very coarse, which made me suspicious. Thanks for the clarification.
This is expected - you only see the contour in-plane if it is exactly in the slice view’s plane. This is exact match may be hard to achieve, that is why we added the ribbon representation, which is much better visible in slice views.
These features are somewhat hidden, but both planar contours and ribbon model are useful mainly for diagnostic purposes (when closed surface representation does not look good then you can check the original data).
Seems like I can’t render RTSTRUCT in the 2D views as planar contour either (see video below).
As Andras mentioned above it is due to the exact plane situation but shouldn’t it change the plane when holding shift and dragging on the other views? and basically just hit it? I tried zoom A LOT in the other views so that I can control the shift right click drag but still can’t, I’m wondering how much precision is needed?
As you see below I have zoomed A LOT and the shift mouse drag is changing in the 1/100 of the z
I understand the Ribbon is the solution, but I’m more interested in the rendering of contours for now.
You need the exact position match of the slice plane position (with a tolerance of something like 1e-8mm), which is practically impossible to achieve it by manual positioning. Therefore, you will not see the intersection in the contour plane, only the dots in orthogonal views.
The ribbon representation has an intersection with the slice plane, that’s why we added it. If you want to see the contour representation in slice views then you can export the contours to a model and apply a tube filter with a small radius.
Note that we consider the contour and ribbon representations to be only useful for debugging of the smooth surface generation algorithm. It allows us to see if the input contours that we get are messed up in some way (some contours are missing, duplicated, don’t match the image, etc.).