Fiducial projection color for unselected/selected

In preview version, when 2D projection is turned on; unselecting one fiducial changes the color of all fiducials in slice view (2D projection). Compare preview and stable:


Projected fiducials color depends on the base color (if fiducial color is enabled and all points are selected then the selected color, if there are unselected points then the unselected color; otherwise chosen projection color) and whether the point is in front or behind the slice (base color or the inverse of the base color). State of individual points is not taken into account when determining the projected point color.

Could you describe your use case? What do you use point selection state for?

Ah, I see what’s happening. It is a completely different functionality.
In the stable version, the projection color was the same as 3D rendering color (unless fiducial color is selected). So when you unselected a fiducial, it was turning to unselected color in both 3D rendering and slice views but the selected fiducials were staying the original selected color.
My use case is simply unselecting a point and locating that point on the specific slice using projections. I guess I can use “Show Slice Intersections” button.
Using the same colors from the 3D rendering for behind/on/in front of the current slide distinction is what threw me off. And the location of landmarks and slice view randomly turning all of them to the unselected color seemed like a bug - because I could see the 3D rendering of the unselected point turning blue as in Stable version but all of the projections also turning blue didn’t make sense. They were just all behind or in front of the current slice…

I agree that the markup point projection coloring behavior is not clear and consistent. We’ll improve it before the stable release.

Note that if you click on a markups point then it is shown in all slice views (so it becomes visible even without projection enabled).

Do you use the point selection state for anything (the checkbox in the markups list)?

Note that if you click on a markups point then it is shown in all slice views (so it becomes visible even without projection enabled).

I didn’t notice this. It is very useful. But it only works if you know which point you are interested in 3D view, right? It doesn’t work from the list?

My lab follows some templates (basically a predetermined list of landmarks in a specific order) when landmarking CTs and we have Python scripts that name the Fiducials in this given order. So most of the time, I want to pick a Fiducial from the list (not knowing where it would be either in 3D or slice views), and locate it in all views. I was using Jump Slices and unselect functions together to do this.

On another note, we would love to have a mechanism to load template lists (this is a functionality other commercial tools provide, e.g. 3DMd) and fill the list but this is a big change from the current functionality. Also, it would require an “empty landmark” concept. For our current pipeline, I ask annotators to add a fiducial at 0,0,0 by using the + button and handle it later in the analysis.

We already have an “empty landmark” concept implemented (each landmark has a state: undefined, preview, and defined), for the exact use case that you described. It will allow you to predefine landmark names and properties and then place them. We just need to implement a few more things before it becomes usable (add GUI for unsetting point positions; change placement logic to place undefined points before adding new points; save placement state to file).