Open Lestropie opened 9 years ago
Yeah, I agree. I've also wanted to have access to axial slices as viewed "from the top". Curse those radiological conventions. :imp:
It can end up being/appearing quite tricky to users though; I think we have to be careful with how we present (the logic behind) such an option to the users. Now that I start thinking about it, it's actually not even trivial from an implementation point of view... necessarily... I think. :confused: Obviously, you do not want to simply "flip" the depth ordering of things, cause that's equivalent to flipping (as in mirroring) the 3D brain. So you need to choose another dimension to "flip" as well, so as to undo any mirroring. For the traditional set of "major axis oriented" axial, coronal and sagittal points of view, there's each time 2 alternative ways to do this, of which 1 clearly makes the most sense from an intuitive point of view. E.g. for an axial slice, the "flip" means looking from the top (rather than the bottom), requiring a flip of front/back or left/right on screen. Left/right makes the most sense here (I think). For a coronal one, it's top/down or left/right - again left/right makes sense. For a sagittal one, it's a choice between top/down and front/back - front/back is the most sensible. But... what about arbitrary oblique directions/slices? Joining the previous sensible choices into a generalised strategy seems to require a discrete jump in behaviour at (combinations of) 45 degree angles... no? We're basically after a definition of rotating the observer point of view (or, equivalently, the object we're looking at) 180 degrees around in 3D space, but there's still an extra degree of freedom in there. As in flying from the north pole to the south pole, with the free choice of meridian arc.
I might be over-thinking things here a bit (without having fully thought them through to begin with)... :grin:
I agree with @thijsdhollander that anything that might change the convention is to be treated with extreme caution - this stuff is being used for neurosurgical planning, etc., we simply cannot introduce any ambiguity in the projection.
That said, it's already possible to flip the projection upside-down, which gives you neurological convention in the axial plane... But at least that requires very explicit manipulation by the user - and will not actually mirror the image.
But that doesn't mean we can't do something like what you suggest, it just depends on how you see this being used. I think the simplest and probably most sensible idea is simply to invert the direction of the depth test, and have a button that will activate this while the button (or its keyboard shortcut) is held down. So if all you're after is a quick peak at what lies beneath, you can just press the button and check. No chance of confusion since this is a very transient operation. And the features you were trying to look at are in precisely the same place as before, so you don't have to get your bearings again to find the feature you were trying to get a better look at (which I think would an issue if you try to avoid the mirroring by inducing a 180° rotation, as per Thijs's suggestion). But like I said, it depends on what you envisage doing with this...
Ok, based on #283, it seems you genuinely want an easy way to view the data as neurological. Bearing in mind all the caveats that have already been mentioned above, maybe one option would be to offer further shortcuts to set the view as desired, without affecting the inherent geometry of the object. I'm thinking of for example using shift-A to switch to a reverse axial view, i.e. projected from the top rather than the bottom, and similarly for shift-C and shift-S. Would that work...?
There's one very minor issues with this: I think it would probably trigger a load of the full volume into the 3D texture (what happens when you start tilting the slice) - but then that's probably what most users will be doing anyway. At least that's the simplest approach implementation-wise. Otherwise you could expand the logic that sets the projection when locked to axes, you would just need to add the 3 extra cases. Actually, you'd probably need this anyway, come to think of it, otherwise the shortcuts won't work as expected... In any case, it can be done, it's a matter of whether it does what you want.
to offer further shortcuts to set the view as desired, without affecting the inherent geometry of the object. I'm thinking of for example using shift-A to switch to a reverse axial view, i.e. projected from the top rather than the bottom, and similarly for shift-C and shift-S.
I think that actually makes the most sense, if it's indeed with the intention of making these views available.
This might sound really silly, but the way I currently do this in practice -given what is at my disposal in mrview-, is to e.g. go to axial view, open up the screen capture tool, enter "180" in the rotate section for the Y-axis, and hit play. Which makes me wonder: would some fields to numerically specify the camera position be useful, e.g. in the view options tool? Or even a "camera" (sub)tool? If for some magical reason, a user would want to (consistently) reproduce the same camera angle on a certain "scene" in different sessions, all they can currently do (I think) is to (ab)use the screen capture tool.
would some fields to numerically specify the camera position be useful, e.g. in the view options tool?
Yep, I reckon this one's ripe for a new issue...
@jdtournier Do we really need the release milestone on this one? Personally I'm happy for this to wait, it's a fair can of worms and I don't think it's worth delaying for.
Yeah, you're right. It's gone...
When plotting 3D elements, the direction of the camera affects the depth masking and therefore the elements that are visible vs. not visible. It would be nice to have a simple toggle to reverse the direction of this projection. Expansion of this functionality to OrthoView mode would also be good.