Skip to content
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

Make ad-hoc meshes compatible with ND segmentations #7394

Merged
merged 53 commits into from
Dec 13, 2023

Conversation

frcroth
Copy link
Member

@frcroth frcroth commented Oct 17, 2023

URL of deployed dev instance (used for testing):

  • https://___.webknossos.xyz

@dieknolle3333 I think backend should be completed, though I have not tested it yet.

Steps to test:

  • open an annotation for a ND dataset
  • create some segments
  • load meshes ad hoc
  • make sure all actions for single meshes, groups and multi-selects are working
  • change nd-parameter(s) and make sure it's still working.
  • when moving around the nth dimension, all loaded meshes should be shown.
  • when removing a mesh in one nd-position, it should be gone everywhere.

TODOs:

  • show only meshes of current additionalCoordinates
  • fix color changing
  • fix remove meshes
  • fix update meshes
  • fix context menu for single mesh in segment view
  • fix visibility toggle
  • fix segment multiselect
  • fix segment context menu in viewport
  • implement saga with while-true-loop that saves the previous additional coordinates
  • make sure segment view adjusts mesh actions
  • move getAdditionalCoordinatesString to method, e.g. in flycam_accessor
  • find a nicer way to access store in mesh saga
  • make sure its working for meshes without additional params
  • fix yaml.lock
  • fix case where segment in not present in current additional coordianate. see case where I brush new segment and then erase all pixels.
  • fix download in group menus
  • investiagte whether getMeshesForAdditionalCoordinates can be used in other places
  • fix that some meshes arent shown, e.g. after changing coordinates
  • only remove mesh in current add coord

Issues:


(Please delete unneeded items, merge only when none are left open)

Copy link
Member

@philippotto philippotto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great refactoring 🎉 The code looks way more concise now :) I left a couple of comments, but mostly only small stuff and some questions for clarifications. The finish line is visible 🏁 😃

frontend/javascripts/oxalis/api/api_latest.ts Outdated Show resolved Hide resolved
frontend/javascripts/oxalis/api/api_latest.ts Outdated Show resolved Hide resolved
frontend/javascripts/oxalis/api/api_latest.ts Outdated Show resolved Hide resolved
frontend/javascripts/oxalis/constants.ts Outdated Show resolved Hide resolved
frontend/javascripts/oxalis/store.ts Outdated Show resolved Hide resolved
frontend/javascripts/oxalis/model/sagas/mesh_saga.ts Outdated Show resolved Hide resolved
@dieknolle3333
Copy link
Contributor

one last thing... the meshes are always requested for the same position, even if the additional coordinates change. I think sometimes when creating annotation, this can lead to a bug. If I create an annotation and create segments in multiple dimensions, and I load a mesh for segment A in dimension 1, I will have to click on the segment in dimension 2 before being able to load the mesh in that dimension. However, this occurs only in the beginning of creating the dataset and I wasn't able to reproduce it afterwards. It seems to be a separate bug that has to do with the segment's position, so I feel like it's a separate issue.

@philippotto
Copy link
Member

Excellent work! The code looks very good now and testing went well, too :) 🕺 Let's ship it! Kudos for pulling this through the finish line :)

It seems to be a separate bug that has to do with the segment's position, so I feel like it's a separate issue.

Let's iron it out later then :)

Copy link
Member

@philippotto philippotto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry 🙈 I found at least one error when reloading a pre-computed mesh:

image

@dieknolle3333
Copy link
Contributor

Good catch, thanks! This didn't occur in my test dataset (test-agglomerate-file), but with L4 I was able to reproduce it.
I think it was only a very small bug and I hope to have fixed it now.

@dieknolle3333 dieknolle3333 force-pushed the adhoc-mesh-additional-coordinates branch from 4f4755c to 7d92806 Compare December 13, 2023 13:12
Copy link
Member

@philippotto philippotto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for fixing this! 😃 I pushed a tiny commit, because I noticed that two methods had an implicit any return type. Feel free to merge now 💪

@dieknolle3333 dieknolle3333 enabled auto-merge (squash) December 13, 2023 13:59
@dieknolle3333 dieknolle3333 merged commit ae6d9ab into master Dec 13, 2023
2 checks passed
@dieknolle3333 dieknolle3333 deleted the adhoc-mesh-additional-coordinates branch December 13, 2023 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support ad-hoc meshing for ND segmentations and volume annotations
4 participants