-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve skeleton proofreading and fix some shortcuts on MacOS #7678
Conversation
…; adapt status bar accordingly, too
…rove-skeleton-proofreading
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice improvements! Code looks great 👍
Notes from testing:
- Ctrl + Leftclick to delete meshes doesn't work (I suggested the fix during my review, I just want to remember to retest this)
- From the internal feature request that spawned this PR, number (1) refers to easy skeleton merging and splitting using keyboard shortcuts similar to proofreading. Would it be possible to reuse the shortcuts used in proofreading mode or would this be a breaking change?
- The keyboard shortcut overview is no longer accurate. For example, the arbitrary mode section doesn't show that nodes can be deleted or edges can be removed/created.
- In flight/oblique mode, the active node is not highlighted making it hard to know what's going to happen if delete is pressed or an edge is created.
- Someone with a Mac should test the Mac-related fixes in this PR
frontend/javascripts/oxalis/controller/combinations/skeleton_handlers.ts
Outdated
Show resolved
Hide resolved
frontend/javascripts/oxalis/controller/combinations/skeleton_handlers.ts
Outdated
Show resolved
Hide resolved
frontend/javascripts/oxalis/controller/viewmodes/arbitrary_controller.tsx
Outdated
Show resolved
Hide resolved
// camera.far = state.userConfiguration.clippingDistanceArbitrary; | ||
camera.near = ARBITRARY_CAM_DISTANCE - state.userConfiguration.clippingDistanceArbitrary; | ||
} else { | ||
camera.far = state.userConfiguration.clippingDistance; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this a bug before? If so, the comment can be removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I dug into this for a bit, but I'm still not really sure what is going on. The far/near clipping still doesn't seem to work as expected when selecting nodes. This is also a problem in orthogonal mode (not new). It seemed like regardless of what I did, I could always select nodes even when they weren't visible and I did stuff like setting near=far=0.
I noticed that frustumCulled
is set to false for the skeleton geometry (this is relatively new), which seemed like a likely culprit. However, even setting that to true, didn't make a difference.
Unless you have another idea, I'd ignore this for now :S
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your further investigations!
It seemed like regardless of what I did, I could always select nodes even when they weren't visible and I did stuff like setting near=far=0.
One more thing that just came to my mind is that I think we enlarge the nodes in the picking shader a bit to make it easier to click them - maybe this is done in z as well 🤔
However, we don't need to investigate this further as part of this PR. Did you find an existing issue or could you create one so we remember to have another look at this in the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One more thing that just came to my mind is that I think we enlarge the nodes in the picking shader a bit to make it easier to click them - maybe this is done in z as well 🤔
Interesting idea! However, here it is written that gl_PointSize "contains size of rasterized points, in pixels". So, I would assume that it only impacts the size in 2D as rasterization is explicitly mentioned.
Did you find an existing issue or could you create one so we remember to have another look at this in the future.
I just created #7725 :)
I think, this won't be possible without breaking changes. CTRL + Leftclick is used for moving nodes in classic mode and Shift + leftclick is used for selecting nodes. Regardless of classic mode, there is ctrl + leftclick to create a node without focusing it. in that case, one would click somewhere where no existing node is, but I think, it's still a collision with the split operation. |
@valentin-pinkau could you test the two mac-related items from the test plan? :) |
Yes, both issues are fixed!
However, it would be great to show the mac user to use CMD click to split two segments. |
Good point, done! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly LGTM, but two things to consider :)
- The current active tool seems to remain active when switching to flight or oblique mode. So when the brush is active before switching, the mouse pointer is wrong or when the proofreading tool is active before, skeletons cannot be modified. This is, although the tools are not visible and cannot be switched, there. This doesn't necessarily need to be fixed in this PR as the bug likely existed before, but users might hit it more frequently now that skeleton modifications are allowed in flight mode.
- The casing of Shift and Ctrl in the context menu shortcuts is mixed now. Would be nice to align that.
…rove-skeleton-proofreading
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, so many bug fixes and improvements in one PR - great work 🌈
…rove-skeleton-proofreading
URL of deployed dev instance (used for testing):
Steps to test:
Issues:
(Please delete unneeded items, merge only when none are left open)