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

Feat/smooth action #500

Merged
merged 125 commits into from
Oct 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
b7812b8
fix: IDService temporary id range
cmhulbert Aug 15, 2023
fc0a691
feat: don't use (and remove) random array access
cmhulbert Aug 15, 2023
e56b071
fix: return after repaint without interval
cmhulbert Aug 15, 2023
bffcf2d
feat(wip): smooth action
cmhulbert Aug 15, 2023
0cbf8b5
feat: initial working implementation of smoothAction
cmhulbert Aug 15, 2023
978e9b5
fix: don't duplicate highest res scale for new label sources
cmhulbert Aug 15, 2023
1504adc
perf: apply mask
cmhulbert Aug 16, 2023
2abc5db
feat: progress bar for smooth action, cancel after apply
cmhulbert Aug 16, 2023
b53f920
feat: add blocking, parallel applyMask
cmhulbert Aug 17, 2023
c1a0693
perf: cleanup, use FastGauss
cmhulbert Aug 17, 2023
f7657fe
fix: mesh export working again
cmhulbert Aug 19, 2023
31c57c7
fix: improve parallel mask apply
cmhulbert Aug 21, 2023
7b78e53
refactor: prefer job over scope
cmhulbert Aug 21, 2023
48795e9
perf: improve label aggregation
cmhulbert Aug 21, 2023
6920b70
fix: cleanup executor services when done
cmhulbert Aug 21, 2023
5d358c6
feat: add RAI converters
cmhulbert Aug 21, 2023
d05126f
ci: don't even attempt to sign macOS pacakges for now
cmhulbert Aug 22, 2023
e4ab671
chore: cleanup
cmhulbert Aug 22, 2023
215ff58
fix: don't depend on `/`
cmhulbert Aug 22, 2023
4301beb
fix: trailling whitespace is not always valid for dataset names
cmhulbert Aug 23, 2023
9bad502
feat: improve mesh export to obj, include material
cmhulbert Aug 23, 2023
d6a75f6
fix: canvas was ignored during smoothing
cmhulbert Aug 23, 2023
41e927b
fix: load from old h5 source metadata format
cmhulbert Aug 23, 2023
a264b67
fix: only explicitly exit process if necessary (midi was used)
cmhulbert Aug 24, 2023
e33bed0
feat: alert exception, but don't return error code
cmhulbert Aug 24, 2023
9f13444
build: remove SNAPSHOT deps
cmhulbert Aug 24, 2023
8af2294
feat: undo headless tests, they recently stopped working on CI (only …
cmhulbert Aug 24, 2023
53e7262
fix(test): compile error
cmhulbert Aug 24, 2023
360083b
feat!: remove inflate
cmhulbert Aug 24, 2023
f3484d8
feat: change mesh setting defaults
cmhulbert Aug 24, 2023
98e7140
feat: change screen scale defaults
cmhulbert Aug 24, 2023
7f5d988
refactor!: rename methods
cmhulbert Aug 25, 2023
5981ef9
feat: ensure N5Readers are valid, and N5Writers are writable before c…
cmhulbert Aug 25, 2023
74e1fab
feat: better handle unavailable containers
cmhulbert Aug 25, 2023
c6a6f47
feat: support source state removal by exception handling
cmhulbert Aug 25, 2023
a6f50a7
feat: select all by default
cmhulbert Aug 25, 2023
b177fc3
fix: don't queue unnecessarily until paintable
cmhulbert Aug 25, 2023
b6eac3d
Merge pull request #502 from cmhulbert/feat/smoothAction
cmhulbert Aug 25, 2023
ca9dfc6
feat: add 1.0 back to default scales
cmhulbert Aug 29, 2023
9329876
feat: cache by default
cmhulbert Aug 29, 2023
d6bf6df
feat: streamline n5 container caching, and separate open vs. create w…
cmhulbert Aug 29, 2023
9914301
feat: prompt for location if dataset not found
cmhulbert Aug 29, 2023
4b692d2
feat!: use readers only unless writers are necessary
cmhulbert Aug 31, 2023
bc0da63
fix: test and opening on windows
cmhulbert Aug 31, 2023
606731c
fix: don't use platform paths for groups
cmhulbert Sep 1, 2023
84e364b
Merge pull request #504 from cmhulbert/feat/smoothAction
cmhulbert Sep 1, 2023
d5c6360
chore: bump n5 dependencies
cmhulbert Sep 1, 2023
14575dc
chore: debug log for opening reader/writer
cmhulbert Sep 1, 2023
901f1f7
fix: mask RAI not being extended
cmhulbert Sep 1, 2023
39b7c0e
fix: handle interruption of connected components during SAM
cmhulbert Sep 1, 2023
fcb4f94
feat!: return button type of commit dialog
cmhulbert Sep 1, 2023
13e111a
feat: support skip commit prompt when closing project, without closin…
cmhulbert Sep 1, 2023
a76e384
chore: cleanup unused
cmhulbert Sep 11, 2023
b809081
fix: don't change state text while updating UI text
cmhulbert Sep 11, 2023
4e77781
fix: properly set max
cmhulbert Sep 11, 2023
a8dc2fa
fix: don't animate backwards
cmhulbert Sep 11, 2023
0d4b084
fix: don't paint if renderer is null
cmhulbert Sep 11, 2023
ba64380
perf: label-multiset performance updates and bug fix bump
cmhulbert Sep 11, 2023
9c6fa0e
fix: don't synchronize now that LabelMultisetType.copy() is thread safe
cmhulbert Sep 11, 2023
25cec36
perf: limit threads for rendering
cmhulbert Sep 12, 2023
89a1adc
perf: store value of properties for quicker access
cmhulbert Sep 12, 2023
ed2ca94
refactor!: use TaskExecutor instead of numThreads and ExecutorService
cmhulbert Sep 12, 2023
7f3f45d
perf: dont use default executor, and only run single threaded
cmhulbert Sep 12, 2023
a2a6044
fix: limit render threads
cmhulbert Sep 12, 2023
130bca8
Revert "fix: limit render threads"
cmhulbert Sep 12, 2023
b9622c2
feat: name render threads
cmhulbert Sep 13, 2023
d44b790
refactor!: change double buffer logic
cmhulbert Sep 13, 2023
3d0f1a2
perf: clearMask and clearUntouchedTargetPixels multithread and use re…
cmhulbert Sep 13, 2023
20f461b
fix: accidentally used numBuffers instead of screenScales
cmhulbert Sep 13, 2023
5674594
fix: copy and update map instead of modification, for thread safety
cmhulbert Sep 18, 2023
c8798a4
fix: multithreading requires thread-safe argbCache access
cmhulbert Sep 18, 2023
1f54a5c
fix: multithreading requires thread-safe visitedBlocks access
cmhulbert Sep 18, 2023
36dae7a
perf: don't get all three if unnecessary
cmhulbert Sep 18, 2023
de72936
fix: default size 0,0
cmhulbert Sep 18, 2023
4cfa67a
fix: don't trigger change when adding a listener
cmhulbert Sep 18, 2023
6d78e7c
fix: don't trigger update on construction
cmhulbert Sep 18, 2023
e60107d
perf: don't set to all Opaque in the overlay renderer
cmhulbert Sep 18, 2023
faeb475
perf: get all fragments and compare, instead of lookup each time
cmhulbert Sep 18, 2023
be3c637
perf: predicate against Long instead of type; can reuse result, inste…
cmhulbert Sep 18, 2023
255de7e
refator: don't use default service, always just use one thread
cmhulbert Sep 18, 2023
3886c9c
refactor: extract `blocksForLabel` to be used elsewhere
cmhulbert Sep 18, 2023
cbac7e6
refactor!: double buffer logic
cmhulbert Sep 18, 2023
c793e47
doc: remove incorrect label merge key binding information
cmhulbert Sep 19, 2023
6d1b2e1
perf: limit max framerate for paint requests
cmhulbert Sep 19, 2023
03eb093
perf: set priority for refresh and work threads
cmhulbert Sep 19, 2023
aa0dd71
fix: mark appropriate threads as daemon
cmhulbert Sep 19, 2023
f1f75a6
feat: background Black prior to any sources loaded
cmhulbert Sep 19, 2023
73dd2bb
fix: overlay canvas size 0 before set
cmhulbert Sep 19, 2023
da0c0e1
fix: floodfill not released when done
cmhulbert Sep 20, 2023
183e20c
cleanup!: remove unused class
cmhulbert Sep 21, 2023
c9558a7
fix: flood fill in shape interpolation
cmhulbert Sep 21, 2023
087e50e
fix: for now, don't trigger refreshes often during floodfill.
cmhulbert Sep 22, 2023
06d9316
fix: fill2d tool triggers now working properly with midi controls
cmhulbert Sep 22, 2023
9549596
fix: compilation error
cmhulbert Sep 22, 2023
5c7d4ed
fix: stay in fill2d after fill during SI; don't allow "select label" …
cmhulbert Sep 25, 2023
2013ba2
fix: OK button disable bindng
cmhulbert Sep 26, 2023
2a9e693
chore(dep): bump saalfx to snapshot
cmhulbert Sep 27, 2023
2471dec
feat: use AnimationTimer instead of listener for renderer
cmhulbert Sep 27, 2023
cb7596b
feat: expose JvmOverloads
cmhulbert Sep 27, 2023
272cfbb
feat!: update floodfill for AnimationTimers, refresh intervals, task …
cmhulbert Sep 27, 2023
84320a4
feat(doc): re-enable mouse controls for merge/detach
cmhulbert Sep 28, 2023
fcac86e
build(dep): bump saalfx to 0.8.0
cmhulbert Sep 28, 2023
44b3d8b
feat: reduce the amount of dimming on disable viewer panels
cmhulbert Sep 28, 2023
06d6137
feat: extract wrappedSource layer logic to ViewerMask
cmhulbert Sep 28, 2023
d57d605
feat!: improvements to floodfill
cmhulbert Sep 28, 2023
bb6dbf5
perf!: paint thread requests on an animation timer
cmhulbert Sep 29, 2023
39d3bcb
feat: sam service/model configuration
cmhulbert Oct 4, 2023
be0763c
feat: logging config updates, use ProjectDirectories
cmhulbert Oct 5, 2023
1783ccd
feat!: use ProjectDirectories for cache dir. Configurable cache and t…
cmhulbert Oct 5, 2023
3d4858f
build(dep): bump saalfx to snapshot
cmhulbert Oct 5, 2023
1ce3bca
chore: remove unused imports
cmhulbert Oct 5, 2023
3641635
feat: improve manually specifying active segments,fragments,last sele…
cmhulbert Oct 5, 2023
fd4e80e
build(dep): bump saalfx
cmhulbert Oct 6, 2023
4f8f296
feat: split on any non-digit character
cmhulbert Oct 6, 2023
171ff9d
build: restructure, depend on libblosc1 for deb package
cmhulbert Oct 6, 2023
1ff4d24
build: bump version to 1.0.0-SNAPSHOT, remove version mangling for pa…
cmhulbert Oct 6, 2023
7cdba9d
fix: synchronize on image so it isn't modified while updating
cmhulbert Oct 6, 2023
1b5f20d
ci: add self-host m1 runner
cmhulbert Oct 6, 2023
8b8afaa
fix: rendering issue with screen refresh padding
cmhulbert Oct 6, 2023
2e2e9cb
perf: no need to constantly create new affine objects
cmhulbert Oct 12, 2023
b20331a
perf: reuse LabelMultisetEntry reference
cmhulbert Oct 12, 2023
16e03c9
fix: don't select Label.INVALID when string is invalid
cmhulbert Oct 13, 2023
c58fa43
perf!: parallel mask downsampling
cmhulbert Oct 13, 2023
9053385
refactor: entrySetWithRef as Entry<Label>
cmhulbert Oct 13, 2023
87aa016
feat: warn users of scale levels that may be too small.
cmhulbert Oct 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 3 additions & 47 deletions .github/workflows/maven-build-all-installer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest, macos-latest, macOS-ARM64]
runs-on: ${{ matrix.os }}
env:
RELEASE_INSTALLERS: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
Expand Down Expand Up @@ -50,58 +50,14 @@ jobs:
java-package: jdk+fx
cache: 'maven'
- name: "Build with Maven"
if: matrix.os != 'macos-latest'
if: matrix.os != 'macos-latest' && matrix.os != 'macOS-ARM64'
run: mvn -B clean install -DskipTests -Pbuild-installer --file pom.xml
- name: "Build with Maven (macOS No Signing)"
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
if: ${{ env.MACOS_CERTIFICATE == null && matrix.os == 'macos-latest' }}
if: ${{ env.MACOS_CERTIFICATE == null && (matrix.os == 'macos-latest' || matrix.os == 'macOS-ARM64') }}
run: mvn -B clean install -DskipTests -Pbuild-installer --file pom.xml
- name: "Build with Maven (macOS Signed)"
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
if: ${{ env.MACOS_CERTIFICATE != null && matrix.os == 'macos-latest' }}
run: |
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
security create-keychain -p temppass build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p temppass build.keychain
security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k temppass build.keychain
export IDENTITY=$(security find-identity -v)
echo $(security find-identity -v)
mvn -B clean install -DskipTests -Pbuild-installer -Pmacos-sign --file pom.xml
- name: "Codesign DMG"
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
if: ${{ env.MACOS_CERTIFICATE != null && matrix.os == 'macos-latest' }}
run: |
export DMG_PATH=$(ls ./target/*.dmg)
/usr/bin/codesign --deep --force -s ${{ env.DEV_IDENTITY}} $DMG_PATH -v
echo DMG_PATH=$DMG_PATH >> $GITHUB_ENV
echo ${{ env.DMG_PATH }}
- name: "Notarize DMG"
env:
APP_EMAIL: ${{ secrets.APP_EMAIL }}
APP_PASS: ${{ secrets.APP_PASS }}
if: ${{ env.APP_EMAIL != null && matrix.os == 'macos-latest' }}
uses: devbotsxyz/xcode-notarize@v1
with:
product-path: ${{ env.DMG_PATH }}
primary-bundle-id: ${{ env.PRIMARY_BUNDLE_ID }}
appstore-connect-username: ${{ secrets.APP_EMAIL }}
appstore-connect-password: ${{ secrets.APP_PASS }}
- name: "Staple DMG"
env:
APP_EMAIL: ${{ secrets.APP_EMAIL }}
APP_PASS: ${{ secrets.APP_PASS }}
if: ${{ env.APP_EMAIL != null && matrix.os == 'macos-latest' }}
uses: devbotsxyz/xcode-staple@v1
with:
product-path: ${{ env.DMG_PATH }}
- name: Update Automatic Release
uses: marvinpinto/action-automatic-releases@latest
if: ${{ env.RELEASE_INSTALLERS }}
Expand Down
59 changes: 13 additions & 46 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<groupId>org.janelia.saalfeldlab</groupId>
<artifactId>paintera</artifactId>
<version>0.34.2-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>

<name>Paintera</name>
<description>New Era Painting and annotation tool</description>
Expand Down Expand Up @@ -53,7 +53,7 @@
<javadoc.skip>true</javadoc.skip>
<maven.javadoc.skip>${javadoc.skip}</maven.javadoc.skip>

<saalfx.version>0.7.0</saalfx.version>
<saalfx.version>1.0.0</saalfx.version>

<janino.version>3.0.7</janino.version>
<logback.version>1.4.0</logback.version>
Expand All @@ -75,11 +75,11 @@
<macos.sign />
<macos.sign.identity />

<n5.version>3.0.0</n5.version>
<n5.version>3.0.2</n5.version>
<n5-hdf5.version>2.0.0</n5-hdf5.version>
<n5-google-cloud.version>4.0.0</n5-google-cloud.version>
<n5-aws-s3.version>4.0.1</n5-aws-s3.version>
<n5-zarr.version>1.0.0</n5-zarr.version>
<n5-zarr.version>1.0.1</n5-zarr.version>
<n5-imglib2.version>7.0.0</n5-imglib2.version>
<n5-universe.version>1.1.0</n5-universe.version>

Expand All @@ -88,7 +88,11 @@


<dependencies>

<dependency>
<groupId>dev.dirs</groupId>
<artifactId>directories</artifactId>
<version>26</version>
</dependency>
<dependency>
<groupId>com.microsoft.onnxruntime</groupId>
<artifactId>onnxruntime</artifactId>
Expand Down Expand Up @@ -180,7 +184,7 @@
<dependency>
<groupId>net.imglib2</groupId>
<artifactId>imglib2-label-multisets</artifactId>
<version>0.11.5</version>
<version>0.12.0</version>
</dependency>
<dependency>
<groupId>sc.fiji</groupId>
Expand Down Expand Up @@ -226,12 +230,12 @@
<dependency>
<groupId>org.janelia.saalfeldlab</groupId>
<artifactId>label-utilities</artifactId>
<version>0.5.2-SNAPSHOT</version>
<version>0.5.1</version>
</dependency>
<dependency>
<groupId>org.janelia.saalfeldlab</groupId>
<artifactId>label-utilities-n5</artifactId>
<version>0.3.3-SNAPSHOT</version>
<version>0.3.2</version>
</dependency>
<dependency>
<groupId>org.controlsfx</groupId>
Expand Down Expand Up @@ -983,42 +987,6 @@
<id>build-installer</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>prepare-package</phase>
<id>normalize-app-version1</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>app._normalVersion</name>
<value>${project.version}</value>
<regex>\.([0-9]+)-SNAPSHOT</regex>
<replacement>.000$1</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
<execution>
<phase>prepare-package</phase>
<id>normalize-app-version2</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>app.normalVersion</name>
<!--suppress UnresolvedMavenProperty -->
<value>${app._normalVersion}</value>
<regex>^0\.</regex>
<replacement>99.</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- https://github.com/wiverson/jtoolprovider-plugin -->
<groupId>io.github.wiverson</groupId>
Expand Down Expand Up @@ -1061,14 +1029,13 @@
</goals>
<configuration>
<!--suppress UnresolvedMavenProperty -->
<appVersion>${app.normalVersion}</appVersion>
<mainJar>${project.build.finalName}.jar</mainJar>
<toolName>jpackage</toolName>
<writeOutputToLog>true</writeOutputToLog>
<writeErrorsToLog>true</writeErrorsToLog>
<failOnError>true</failOnError>
<removeDirectories>${project.build.directory}/installer-work</removeDirectories>
<args>@${project.build.directory}/packaging/${os.detected.name}-jpackage.txt</args>
<args>@${project.build.directory}/packaging/${os.detected.name}/jpackage.txt</args>
</configuration>
</execution>
</executions>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/bdv/fx/viewer/OverlayPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public class OverlayPane<A> extends StackPane {
*/
final protected CopyOnWriteArrayList<OverlayRendererGeneric<GraphicsContext>> overlayRenderers;

private final CanvasPane canvasPane = new CanvasPane(1, 1);
private final CanvasPane canvasPane = new CanvasPane(0, 0);

private final ObservableList<Node> children = FXCollections.unmodifiableObservableList(super.getChildren());

Expand Down
Loading
Loading