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

Performance improvements and new features #35

Merged

Conversation

scottwittenburg
Copy link
Collaborator

@scottwittenburg scottwittenburg commented Oct 16, 2020

  • flatten sessionTree data structure
  • compute array range when images are loaded into memory (supporting improved performance)
  • make sure single arrows don't skip past last (or first) time step to next (or previous() scan
  • make sure single arrow buttons (and left/right arrow keys) don't skip any time steps
  • press+hold single arrow buttons (and press+hold left/right arrow keys) scan as fast as possible through time steps
  • redesign window level controls
  • support loading original csv format as well as new json format
  • migrate vue-utilities code into this repo as it seems now defunct

This set of changes requires changes in vtk.js (here) and vue-utilties (here).

The vtk.js change was merged into master and the vue-utilities code was moved into this repo.

By making the vtk.js rendering synchronous when changing timesteps,
this change ensures the user moves through timesteps as fast as their
machine can handle, and that each time step finishes rendering before
moving to the next.  Also, the two mechanisms by which time step
scanning is achieved (left/right arrow keys and single arrow press+hold)
now use the same underlying functionality and thus behave the same.
Copy link
Member

@dzenanz dzenanz left a comment

Choose a reason for hiding this comment

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

LGTM

client/src/components/WindowControl.vue Outdated Show resolved Hide resolved
Copy link
Member

@dzenanz dzenanz left a comment

Choose a reason for hiding this comment

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

Looks good on a glance.

This provides support for the previously used csv file format, as
well as the new json format.  If a csv file is provided, it is
converted to the json format before loading.
By using a setTimeout in WindowControl currentDataset watcher, we
fix the problem with the user-defined slices getting reset (in the
VtkViewer) between datasets, when we are in userDefinedValues mode
in the WindowControl component.
@scottwittenburg scottwittenburg changed the title WIP: Performance improvements and new features Performance improvements and new features Nov 11, 2020
@scottwittenburg
Copy link
Collaborator Author

As we discussed last week, I'm just going to merge this now.

@scottwittenburg scottwittenburg merged commit d63111d into OpenImaging:master Dec 7, 2020
@scottwittenburg scottwittenburg deleted the flatten-session-tree branch January 6, 2021 17:17
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.

2 participants