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

Fix neuron mesh generation (from rebased branch) #85

Merged
merged 2 commits into from
Feb 12, 2018
Merged

Fix neuron mesh generation (from rebased branch) #85

merged 2 commits into from
Feb 12, 2018

Conversation

hanslovsky
Copy link
Contributor

This is a summary of all the commits in #65 to avoid clutter in the commit history. The most important contribution is the replacement of the "flood fill" mesh generation by a mesh cache:

  • render neurons based on selected ids, not based on mouse click location
  • render neurons at all available mipmap scales
  • segment mesh is set of meshes of contained fragments
  • allows to track progress more intuitively
  • three cache cascades (one cache per mipmap level):
    • block -> unique labels
    • id -> containing blocks
    • id, block -> mesh
  • improve sources tab
    • split responsibility for displaying properties as nodes
    • be less ad-hoc, keep relevant state in separate classes
    • fix width glitches for mesh scale level sliders (hacky, for now)

I will not delete the original fix-neuron-mesh-generation
branch
(for now) to keep the history.
Commit 1a8f926 is a summary of these commits in the
fix-neuron-mesh-generation
branch
:

  • 1ed6288 First cell cached mesh version!
  • 4f943ab Remove System.out and commented code.
  • 23971dd Remove more obsolete System.out logging
  • 420809c Use meshes cache for integer labels also
  • e214adc Run mesh generation in separate thread and multi-threaded
  • 7d3d140 Remove obsolete line of code.
  • cb9a4b6 Use only one stream and selected ids per source
  • 78470db Introduce event-driven mesh rendering.
  • 44fe3eb Invert normals
  • 18eb6be Add specular reflections to meshes.
  • aec4104 Explicitly set draw mode.
  • a1aa615 Synchronized on meshes.
  • cbc08dc Fix notification bug in SelectedIds
  • d4e755a Add manual selection of ids via text field
  • cf6d3d1 Add warning when blocklist cannot be found.
  • 8c6ea33 Improve threading and naming of threads.
  • 172aa9b Test to see if positinos cache works
  • a5a2246 Run rendering in separate thread. ToDo: Make a single thread exectuor so every neuron only ever allocates one single thread
  • 19ca24d Add first concept of cache loader cascades necessary for mesh generation
  • 4aa728d Preliminary: Use new three-level cache for neuron retrieval.
  • cbe9200 Do not remove neurons that are still selected.
  • a095ba1 Improve naming and package structure
  • c67a7c5 Identify meshes by fragment id, not segment id.
  • 38377e8 Add convenience method to extract scale factors from source.
  • 172619b Add some JavaDoc
  • cd44808 Populate transform at scale level for correct scale factors.
  • b3c3def Add more logging and set appropriate logging levels.
  • 8e7f444 Set appropriate logging level
  • 40722c6 Generate cascades of caches rather than CacheLoaders
  • 577bf23 Add mock mesh simplification
  • 93e0cf9 Add mesh simplification controls to UI
  • cabff9c Add per id controls for mesh scale and simplification
  • ba4f1b9 Remove obsolete slider for mock mesh simplifications
  • aac04e0 Set number of decimal places to zero for integer slider/field
  • 394e672 Remove obsolete class
  • f5a5f42 Add progress tracker for mesh rendering
  • 98b727b Fall back to version 8.40.14
  • 38e54b3 Change behavior on non-finite values for status bar
  • 6a2dd6f Do not bind to progress directly
  • 33da7f4 Add convenience conversions between ARGBType and javafx Color
  • e727b4e Add convenience methods for adding RandomAccessibleInterval
  • 0c4c260 Throw exception when no volatile type matches
  • 4b891a6 Fix bug
  • 4b9fb43 Clean-up: Remove unused methods.
  • 69dd161 Add logging
  • 8b46eb1 Optimize merge fragments
  • 368f5c6 Don't auto-populate fragment segment assignment
  • 7c7fa67 Update SourceTabs

 - render neurons based on selected ids, not based on mouse click location
 - segment mesh is set of meshes of contained fragments
 - allows to track progress more intuitively
 - three cache cascades (one cache per mipmap level):
   - block     -> unique labels
   - id        -> containing blocks
   - id, block -> mesh
 - improve sources tab
   - split responsibility for displaying properties as nodes
   - be less ad-hoc, keep relevant state in separate classes
   - fix width glitches for mesh scale level sliders (hacky, for now)

This commit is a summary of these commits in the
[fix-neuron-mesh-generation
branch](https://github.com/hanslovsky/bigcat/tree/fix-neuron-mesh-generation):

 - 1ed6288 First cell cached mesh version!
 - 4f943ab Remove System.out and commented code.
 - 23971dd Remove more obsolete System.out logging
 - 420809c Use meshes cache for integer labels also
 - e214adc Run mesh generation in separate thread and multi-threaded
 - 7d3d140 Remove obsolete line of code.
 - cb9a4b6 Use only one stream and selected ids per source
 - 78470db Introduce event-driven mesh rendering.
 - 44fe3eb Invert normals
 - 18eb6be Add specular reflections to meshes.
 - aec4104 Explicitly set draw mode.
 - a1aa615 Synchronized on meshes.
 - cbc08dc Fix notification bug in SelectedIds
 - d4e755a Add manual selection of ids via text field
 - cf6d3d1 Add warning when blocklist cannot be found.
 - 8c6ea33 Improve threading and naming of threads.
 - 172aa9b Test to see if positinos cache works
 - a5a2246 Run rendering in separate thread. ToDo: Make a single thread exectuor so every neuron only ever allocates one single thread
 - 19ca24d Add first concept of cache loader cascades necessary for mesh generation
 - 4aa728d Preliminary: Use new three-level cache for neuron retrieval.
 - cbe9200 Do not remove neurons that are still selected.
 - a095ba1 Improve naming and package structure
 - c67a7c5 Identify meshes by fragment id, not segment id.
 - 38377e8 Add convenience method to extract scale factors from source.
 - 172619b Add some JavaDoc
 - cd44808 Populate transform at scale level for correct scale factors.
 - b3c3def Add more logging and set appropriate logging levels.
 - 8e7f444 Set appropriate logging level
 - 40722c6 Generate cascades of caches rather than CacheLoaders
 - 577bf23 Add mock mesh simplification
 - 93e0cf9 Add mesh simplification controls to UI
 - cabff9c Add per id controls for mesh scale and simplification
 - ba4f1b9 Remove obsolete slider for mock mesh simplifications
 - aac04e0 Set number of decimal places to zero for integer slider/field
 - 394e672 Remove obsolete class
 - f5a5f42 Add progress tracker for mesh rendering
 - 98b727b Fall back to version 8.40.14
 - 38e54b3 Change behavior on non-finite values for status bar
 - 6a2dd6f Do not bind to progress directly
 - 33da7f4 Add convenience conversions between ARGBType and javafx Color
 - e727b4e Add convenience methods for adding RandomAccessibleInterval
 - 0c4c260 Throw exception when no volatile type matches
 - 4b891a6 Fix bug
 - 4b9fb43 Clean-up: Remove unused methods.
 - 69dd161 Add logging
 - 8b46eb1 Optimize merge fragments
 - 368f5c6 Don't auto-populate fragment segment assignment
 - 7c7fa67 Update SourceTabs
This compiled in eclipse, but not on the cmd line with maven.
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.

1 participant