MeshManager
interface was removed and replaced with the AdaptiveResolutionMeshManager
. Source-specific mesh menagers simply wrap around and translate and forward requests to the AdaptiveResolutionMeshManager
. This simplifies the code a lot and reduces code duplication. In the course of this refactoring, cancellation of tasks does not need to be controlled at the level of iteration of a tight loop, which makes the Interruptible
and similar interfaces obsolete. Use the LabeLBlockLookup
directly instead, which may be cached, anyways. (#377)Merge pull request #267 from saalfeldlab/adaptive-mesh-resolution
[FEATURE] Adaptive level of detail for meshes in 3D view.
Merge pull request #382 from saalfeldlab/orthoslices-transparency
[FEATURE] New settings for changing transparency and shading of the orthoslices in the 3D viewer
Merge pull request #377 from saalfeldlab/3d-visualize-masks
[FEATURE] Add 3d mesh visualization for thresholded sources. By default, 3d meshes are disabled for thresholded sources but they can be enabled with the checkbox at the Meshes section in the thresholded source preferences. In order to unify 3d mesh generation, the label-centric MeshManager
interface was removed and replaced with the AdaptiveResolutionMeshManager
. Source-specific mesh menagers simply wrap around and translate and forward requests to the AdaptiveResolutionMeshManager
. This simplifies the code a lot and reduces code duplication. In the course of this refactoring, cancellation of tasks does not need to be controlled at the level of iteration of a tight loop, which makes the Interruptible
and similar interfaces obsolete. Use the LabeLBlockLookup
directly instead, which may be cached, anyways.
[BUGFIX] Committing canvas failed for new n5 label block lookup backends (#374). Initialize lookup properly when committing to fix this issue.
Previous release: 0.21.0
ConnectomicsLabelState
. (#372)Merge pull request #326 from saalfeldlab/use-saalfx
[FEATURE] Remove from Paintera repository classes that were extracted into saalfx.
Merge pull request #351 from saalfeldlab/fix-maximize-viewer
[BUGFIX] Maximizing the current viewer would instead split-maximize the current viewer and 3D viewer (#350). Fix by bumping the saalfx dependency. Thanks @igorpisarev
Merge pull request #352 from saalfeldlab/bump-saalfx
bump to saalfx-0.1.2
Merge pull request #355 from saalfeldlab/fix-brush-resize
[BUGFIX] Always change brush radius by multiplication and remove upper bound for brush radius [FEATURE] Expose brush radius and scale factor in UI
Merge pull request #359 from constantinpape/master
[BUGFIX] Replace paintera-conversion-helper with paintera-convert in README, thanks to @constantinpape
Merge pull request #343 from saalfeldlab/relative-data-location
[FEATURE] Add support for data sets relative to project directory. Previously, if data sets within the project directory were imported into Paintera, the project would become corrupted after moving or copying the project directory into a different location (#207). #343 introduced new classes that separate the data backend from the functionality, thus making it easier to implement support for relative data location. Now, only the data set---and not the container---is stored in the Paintera project if the dataset is relative to/within the Paintera project and the Paintera project can be moved/copy into any location and still be functional. In order to conserve previous work, users are asked if they would like to convert their existing projects on start-up. After conversion, previous versions of Paitnera will not be able to open this project anymore. Eventually, old-style projects will not be supported anymore.
Merge pull request #364 from saalfeldlab/fix-javadoc
[BUGFIX] add <javadoc.skip> property
Merge pull request #366 from saalfeldlab/fix-incorrect-n5-backend-factory
[BUGFIX] Use correct condition for single-scale/multi-scale n5 backend for label data, thanks @igorpisarev for reporting
Merge pull request #368 from saalfeldlab/fix-select-all
Fix key binding for 'select all' action
Merge pull request #369 from saalfeldlab/fix-null-bookmark-note
[BUGFIX] Fix creating bookmark node after deserialization when its note is null (thanks to @igorpisarev)
Merge pull request #372 from saalfeldlab/relative-data-location-locked-segments
[BUGFIX] Move locked segments into state rather than backend to make locked segments work again with new ConnectomicsLabelState
.
Merge pull request #367 from saalfeldlab/disable-bounding-box-polygon
Add option to disable multi-box overlay
Merge pull request #378 from saalfeldlab/fix-connectomics-label-state-display-status
[BUGFIX] Fix display status of ConnectomicsLabelState (#370) thanks to @igorpisarev
Merge pull request #381 from saalfeldlab/add-jcenter-bintray-https
[BUGFIX] Explicitly add https repo for jcenter.bintray in changelog creation script
Previous release: 0.20.1
Invalidate
interface instead and remove Paintera's InvalidateAll
and Invalidate
interfaces (#316)Merge pull request #316 from saalfeldlab/remove-global-cache
[BUGFIX] clean-up masked source resources (#309)
[FEATURE] Update imglib2-cache dependency to use Invalidate
interface instead and remove Paintera's InvalidateAll
and Invalidate
interfaces
[FEATURE] Remove global cache and rely on imglib2-caches only
Merge pull request #339 from saalfeldlab/improve-max-id-error-message
[BUGFIX] Error message was confusing when paintera failed to deserialize project (#338). Print more helpful error message instead.
Merge pull request #341 from saalfeldlab/ignore-preference-nodes-if-null
[BUGFIX] Filter-not-null label state preference pane nodes
Adding a state pane for label sources would fail if no masked source was provided because MaskedSourceNode.node
would return null
and VBox
cannot have null
children.
Merge pull request #340 from saalfeldlab/fix-337
[BUGFIX] Mesh resources would not be freed when not being used anymore (#337). A anonymous/lambda listener was the culprit. Explicilty naming and unbinding after use solved the problem.
Fixes #337
Before this commit, a listener would be added to the isManagedProperty
of the meshSettings
to update the MeshGenerator
with appropriate global or individual MeshSettings
. For some reason, this kept the internal JavaFX classes NGMeshView
and MeshView
alive, prohibiting clean-up of their resources, and, as a result, leaking memory. This commit fixes this issue by adding a meshSettingsProperty
to the MeshGenerator
that the caller can unbind
to remove the listener that holds on to the MeshManager
's resources.
Set manager mesh settings to null and simplify removeAll
Revert back to unbinding mesh settings on separate thread
After @igorpisarev pointed out (and I confirmed) that unbinding is slow for a large number of selected meshes (e.g. select all on CREMI A), I had to revert the previous changes. I added a new single threaded executor to avoid creating new threads each time and inverted the call chain to avoid code duplication.
Previous release: 0.20.0
src/main/java
to kapt to ensure that kotlin annotations will be considered, as well (#334)Merge pull request #333 from saalfeldlab/fix-331
[BUGFIX] Unable to start Paintera in Windows (#331) because Windows paths contain backslash, which are interpreted as modifiers in regex. Use string replacement instead of regex, instead.
Merge pull request #334 from saalfeldlab/fix-kotlin-annotations
Add src/main/java to kapt
Merge pull request #335 from saalfeldlab/fix-325
[BUGFIX] Remove ?raw=true option from images in README.md to fix #325
Previous release: 0.19.3
SourceState
responsible for providing a Node
for the preference pane (#304)SourceState
responsible to provide key bindings (#304)KeyCombination
and show in help message (#245) (#304)README.md
on button click in help message (#304)SourceInfo
not part of Properties2
, #256) (#304)README.md
(into src/main/resources
) was not available in the packaged jars (#323). Instead, copy README.md
and img
into target/classes
and also convert README.md
into target/classes/README.html
at runtime. Images are still not displayed for readme from jar files but that can be resolved in a separate issue. (#324)Merge pull request #304 from saalfeldlab/make-project-directory-mutable
[FEATURE] Make project directory mutable and add "Save As" button (#190)
[FEATURE] Add menu bar on top
[FEATURE] Toggle visibility of status bar at bottom
[FEATURE] Add help message
[FEATURE] Make SourceState
responsible for providing a Node
for the preference pane
[FEATURE] Make SourceState
responsible to provide key bindings
[FEATURE] Manage key-only actions through KeyCombination
and show in help message (#245)
[FEATURE] Render README.md
on button click in help message
[FEATURE] Make general Paintera shortcuts available in menu bar
[FEATURE] Add option to ignore lock file
[FEATURE] Make Paintera version accessible in UI
[BUGFIX] de-couple properties/settings from sources (SourceInfo
not part of Properties2
, #256)
Merge pull request #318 from saalfeldlab/scijava-repl
[FEATURE] Add SciJava repl (requested in #138) for scripting in running paintera
Merge pull request #324 from saalfeldlab/copy-readme-instead-of-symlink
[BUGFIX] The sym-linked README.md
(into src/main/resources
) was not available in the packaged jars (#323). Instead, copy README.md
and img
into target/classes
and also convert README.md
into target/classes/README.html
at runtime. Images are still not displayed for readme from jar files but that can be resolved in a separate issue.
Merge pull request #320 from saalfeldlab/fontawesome
[FEATURE] Use fontawesome icons for symbols such as close or refresh icons. This is more robust and less work than creating new icons with paths.
Merge pull request #322 from saalfeldlab/bookmark-node-markdown
[FEATURE] Add markdown support for bookmark notes
Merge pull request #328 from saalfeldlab/fix-temp-project-327
[BUGFIX] Using temporary project directories would crash the deprecated Paintera main class with a NullPointerException (#327)
Merge pull request #330 from saalfeldlab/fix-add-datasets-cli-329
[BUGFIX] Datasets specified on the CLI would not be added to the viewer in the updated Paintera2 main class (#329). The fix was simple, the responsible method would just not be called
Previous release: 0.19.2
Merge pull request #312 from saalfeldlab/fix-307
Consider min of source interval when centering at a source
Previous release: 0.19.1
Merge pull request #305 from saalfeldlab/fix-294
Exclude all special value labels when committing canvas