Skip to content

Releases: aces/brainbrowser

v2.2.0

24 Nov 20:11
Compare
Choose a tag to compare
  • General changes
    • Events now pass an event object to handlers. (@tsherif)
    • All color-mapping in both apps now handled by color_map objects. (@tsherif)
    • start() methods in both apps can take DOM elements directly instead of just the IDs. (@cesine, @tsherif)
    • minc2volume-viewer.js can be loaded as a module using require. (@PaulMougel)
    • clamp and flip options for color-mapping now properties of color_map objects. (@tsherif)
  • Surface Viewer
    • three.js r66 now bundled with the Surface Viewer. (@tsherif)
    • Added support for Freesurfer binary surface and intensity data files. (@tsherif)
    • Surfaces can now be ignored by picking by setting pick_ignore option to true in loadModel* methods. (@tsherif)
    • Blending code cleanup, now supports more than two datasets. (@tsherif)
    • JSON worker can input per-shape colors. (@tsherif)
    • Optimized Freesurfer ASC parsing. (@tsherif)
    • Custom information on meshes moved into three.js userData property. (@tsherif)
    • No longer handle window.onresize events directly. (@tsherif)
  • Volume Viewer
    • Volume slicing code rewritten. (@tsherif)
    • Choose which axes to display. (@AldoMarzullo)
    • Bightness and contrast levels can be adjusted. (@tsherif)
    • Smart volume.display object. (@tsherif)
    • Mouse and touch events propagate. (@PaulMougel)
    • Removed rotateArray90* methods. (@tsherif)

v2.1.1

14 Oct 18:34
Compare
Choose a tag to compare
  • Surface Viewer
    • Optimized mniobj.worker.js so it would work in Chrome 38. (@tsherif)

v2.1.0

10 Sep 18:24
Compare
Choose a tag to compare
  • General changes
    • Render loops in both apps optimized to only draw when something changes. (@tsherif)
    • New event model allows any object to have an event model, and for objects to propagate events to each other. (@tsherif)
    • New method color_map.colorFromValue() returns the color for a given intensity value. (@tsherif)
    • New function utils.createDataURL() converts any input to a data URL. (@tsherif)
    • minc2volume-viewer.js now uses streams. (@PaulMougel)
    • minc2volume-viewer.py added. (@pipitone)
    • Removed example server. Now recommending nano-server be used for development. (@tsherif)
  • Surface Viewer
    • New method viewer.setIntensity() allows intensity values to be adjusted at runtime. (@tsherif)
    • Wireframe geometry now only created after the first time it's requested. (@tsherif)
    • Zooming is now done by setting the property viewer.zoom. (@PaulMougel)
    • New viewer.updated property can be set to true to force a redraw of the scene. (@tsherif)
    • New draw event triggered each time the scene is rendered. (@tsherif)
    • New updateintensitydata event triggered each time intensity data is updated. (@tsherif)
    • New zoom event triggered when the viewer's zoom level changes. (@PaulMougel)
    • Event rangechange renamed to changeintensityrange. (@tsherif)
  • Volume Viewer
    • Updating slices now done by individual panels, mainly using panel.updateVolumePosition() and panel.updateSlice(). (@tsherif)
    • Optimizations to color mapping, blending, nearest neighbour. (@tsherif)
    • New method volume.getIntensityValue() returns the intensity value at given coordinates. (@tsherif)
    • New panel.updated property can be set to true to force a panel to redraw. (@tsherif)
    • panel.cursor property removed. Cursor position now inferred from volume position. (@tsherif)
    • New draw event triggered when a panel is redrawn. (@PaulMougel)
    • New cursorupdate event triggered when a cursor moves. (@PaulMougel)
    • New zoom event triggered when the zoom level on a panel changes. (@PaulMougel)
    • New volumeloaded event triggered when a new volume is loaded. (@PaulMougel)

v2.0.1

14 Jul 20:07
Compare
Choose a tag to compare
  • General changes
    • Fixed bug in mouse tracking.
  • Volume Viewer
    • Fixed bug in distance measurements on Windows.

v2.0.0

20 Jun 19:29
Compare
Choose a tag to compare
  • General changes
    • Touch controls for both apps.
    • Simplified configuration through BrainBrowser.config object.
    • General-purpose tree storage mechanism through BrainBrowser.createTreeStore().
    • Node example server for development.
  • Surface Viewer
    • Annotation mechanism can associate arbitrary data with a model vertex.
    • Models can be parsed from JSON.
    • Mouse and touch positions now tracked in viewer.mouse and viewer.touches, respectively.
    • Parsed model data now managed by viewer.model_data object.
    • setTransparency() and setWireframe() no longer require a shape name (both default to applying to entire model).
    • Included workers now automatically configured (only the worker_dir property needs to be set manually).
  • Volume Viewer
    • Mouse and touch positions on each panel now tracked in panel.mouse and panel.touches, respectively.
    • Distance measurements (ctrl-click).
    • Voxel-world coordinate conversions correctly take direction cosines into account.
    • Time position for functional data can now be controlled with the keyboard (forward: space, back: shift-space).
    • Keyboard movement now occurs per-voxel.
    • minc2volume-viewer.js now extracts direction cosines.

v1.6.0

06 May 21:16
Compare
Choose a tag to compare
  • General changes
    • Event model moved into BrainBrowser.events.
    • Network and file loading code moved into BrainBrowser.loader.
    • Error events are triggered more broadly in both applications.
  • Surface Viewer
    • Utilities now in BrainBrowser.SurfaceViewer.utils.
    • viewer.getVertexInfo renamed to viewer.getVertex and now only returns vertex.
  • Volume Viewer
    • minc2volume-viewer.js has been created to simplify the creation of header and raw data files required by the Volume Viewer.
    • Can now load data from local files using the following methods:
      • viewer.loadVolumes()
      • viewer.loadVolume()
      • viewer.loadVolumeColorMapFromFile()
      • viewer.loadDefaultColorMapFromFile()
    • viewer.loadVolumes() now only loads volumes:
      • It no longer loads color maps (now done by various viewer.loadColorMapFromXXX methods).
      • It no longer sets panel size (now done by viewer.setPanelSize()).
      • It no longer starts rendering (now done by viewer.render()).
    • Volumes and other data can now be loaded and removed dynamically using the following methods:
      • viewer.loadVolumes()
      • viewer.loadVolume()
      • viewer.clearVolumes()
      • viewer.loadVolumeColorMapFromURL()
      • viewer.loadDefaultColorMapFromURL()
      • viewer.loadVolumeColorMapFromFile()
      • viewer.loadDefaultColorMapFromFile()
    • Panel size can be adjusted dynamically using viewer.setPanelSize().
    • New events:
      • error
      • volumesloaded
      • rendering
      • volumeuiloaded
    • ready event is now deprecated.

v1.5.4

08 Apr 17:09
Compare
Choose a tag to compare
  • Surface Viewer
    • Fixed race condition in worker preloading.

v1.5.3

14 Mar 22:25
Compare
Choose a tag to compare
  • Surface Viewer
    • Improved picking.
    • Now requires three.js r66.
  • Volume Viewer
    • display renamed to panel.
    • Added methods reset() and followCursor() to panel API.

Post-cleanup

12 Mar 16:34
Compare
Choose a tag to compare

Please note that this commit marks the cleanup of the BrainBrowser repo using the BFG Repo-Cleaner.

History prior to this commit should be considered as being for documentation purposes only. It has been modified, and the codebase's usability at prior commits cannot be guaranteed.