Releases: aces/brainbrowser
Releases · aces/brainbrowser
v2.2.0
- 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 usingrequire
. (@PaulMougel)clamp
andflip
options for color-mapping now properties ofcolor_map
objects. (@tsherif)
- Events now pass an
- 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 totrue
inloadModel*
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
v2.1.0
- 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
v2.0.0
- 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
- 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
v1.5.3
Post-cleanup
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.