Open philippotto opened 2 years ago
"Create tracing" when viewing DS, simply picks visible segmentation layer as a base
- [ ] also provide dropdown / modal as in dashboard to configure how the annotation looks maybe default to new layer? <-- should be carefully considered
I think there should be one volume annotation layer per segmentation layer, so that each segmentation layer is editable.
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.
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.
Follow up for https://github.com/scalableminds/webknossos/pull/5683.
Bugs & Weirdness:
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 https://github.com/scalableminds/webknossos/pull/5738 is merged~ <-- it's still a bit tricky)