-
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
[Follow up]: Multiple segmentation layers #5695
Comments
I think there should be one volume annotation layer per segmentation layer, so that each segmentation layer is editable. |
I'd rather converge on a lazy-create approach, since the existence of a volume + fallback layer means that twice as many buckets are requested for that layer when viewing it. If the ad-hoc "add volume layer" functionality is smooth (i.e., does not require a reload), both approaches should/could feel very similar for the user. |
Alternatively, we could create zero volume annotations and add an "edit" button to segmentation layers within an annotation. |
Yes, this sounds like a good idea. However, it's a bit more work (e.g., brush tools should be shown even though no volume layer exists yet; adding a layer should not require a reload etc.). I'll integrate this in the issue description, but I'd still solve the low hanging fruit first by adding a dropdown to the the "Create Annotation" button. |
Hi @philippotto @normanrz, is it currently possible to view multiple segmentation layers at once (#5760)? If not, what do you see as the major blockers? You have listed several items above, but just wanted to clarify since the issue was last updated a couple of years ago. Thank you. |
Hi @kabilar,
No, this is not possible currently.
The listed items above are not strictly related to #5760. So, none of these are blockers for it. However, the last checkpoint points out that only one segmentation mapping may be active currently. So, two segmentation layers with an enabled mapping cannot be rendered out of the box. This restriction would either needed to be lifted or properly respected when implementing the multi-segmentation-rendering issue. |
Thank you @philippotto. A couple of naive questions, as we would like to build out this feature on our fork. Happy to work with you to incorporate this upstream.
What is a segmentation mapping?
What would it take to properly respect this mapping? |
Hi @philippotto @fm3 @normanrz --- just wanted to follow up per @kabilar 's message there I'm noticing a handful of application logic in Thanks again for the time and consideration! |
From the top of my head, here are a few pointers:
|
Follow up for #5683.
Bugs & Weirdness:
- [ ] also provide dropdown / modal as in dashboard to configure how the annotation looks
segmentationPatternOpacity
is shared across all segmentation layersRefactoring:
currentMeshFileByLayer
,availableMeshFilesByLayer
,isosurfacesByLayer
together in storegetSegmentationLayerWithMappingSupport
is used to listen on the layer for which the mapping should be bound on the GPU, but that function is messy, since it has to guess which layer is about to get used for a mapping. Currently, we cannot useisMappingEnabled
since that is set to true at the very last stage of the mapping activation. We probably need another state (isBeingActivated) or something similar to avoid the guessing part. After refactoring test the following: open a dataset with two segmentation layers (both should have JSON mappings) and enable one mapping. Without the guessing logic, this simple step doesn't work right now.More Features:
isEnabled
in store is decoupled from the UI button. We need to ensure thatgetSegmentationLayerWithMappingSupport
already returns the correct value quite early (maybe this is easier once Allow to share a tracing with activated mapping and loaded agglomerate skeletons via link #5738 is merged<-- it's still a bit tricky)The text was updated successfully, but these errors were encountered: