Skip to content

Commit

Permalink
77 image annotation support (#84)
Browse files Browse the repository at this point in the history
Co-authored-by: Sean <sean.phillips@jhuapl.edu>
Co-authored-by: samypr100 <3933065+samypr100@users.noreply.github.com>
  • Loading branch information
3 people authored Dec 14, 2024
1 parent 07773d3 commit b2ed7fa
Show file tree
Hide file tree
Showing 83 changed files with 3,430 additions and 324 deletions.
24 changes: 15 additions & 9 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,13 @@ jobs:
java-version: ${{ matrix.jdk-version }}
distribution: 'temurin'

- name: Gradle Build Jar
uses: gradle/actions/setup-gradle@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
add-job-summary: 'on-failure'
arguments: clean assemble -Penv=prod-jar

- name: Gradle Build Jar
run: ./gradlew clean assemble -Penv=prod-jar

- name: Upload Jar
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -111,11 +113,13 @@ jobs:
java-version: ${{ matrix.jdk-version }}
distribution: 'temurin'

- name: Gradle Build JLink Zip
uses: gradle/actions/setup-gradle@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
add-job-summary: 'on-failure'
arguments: clean jlink -Penv=prod-jlink

- name: Gradle Build JLink Zip
run: ./gradlew clean jlink -Penv=prod-jlink

- name: Upload JLink Zip
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -173,11 +177,13 @@ jobs:
java-version: ${{ matrix.jdk-version }}
distribution: 'temurin'

- name: Gradle Build JPackage
uses: gradle/actions/setup-gradle@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
add-job-summary: 'on-failure'
arguments: clean jpackage -Penv=prod-jlink

- name: Gradle Build JPackage
run: ./gradlew clean jpackage -Penv=prod-jlink

- name: Upload JPackage
uses: actions/upload-artifact@v4
Expand Down
24 changes: 12 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ plugins {
id 'com.github.ben-manes.versions' version '0.51.0'
id 'net.nemerosa.versioning' version '3.1.0'
id 'org.openjfx.javafxplugin' version '0.1.0'
id 'org.gradlex.extra-java-module-info' version '1.8'
id 'org.beryx.jlink' version '3.0.1'
id 'org.gradlex.extra-java-module-info' version '1.9'
id 'org.beryx.jlink' version '3.1.1'
}

ext {
Expand Down Expand Up @@ -51,26 +51,26 @@ dependencies {
implementation(group: 'org.fxyz3d', name: 'fxyz3d', version: '0.6.0') {
exclude group: 'org.openjfx'
}
implementation(group: 'eu.hansolo.fx', name: 'charts', version: '21.0.19') {
implementation(group: 'eu.hansolo.fx', name: 'charts', version: '21.0.21') {
exclude group: 'org.openjfx'
exclude group: 'ch.qos.logback'
}
implementation group: 'com.github.quickhull3d', name: 'quickhull3d', version: '1.0.0'
implementation group: 'org.apache.commons', name: 'commons-math3', version: '3.6.1'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.15.0'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0'
implementation group: 'org.zeromq', name: 'jeromq', version: '0.6.0'
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.17.2'
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.17.2'
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.18.2'
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.18.2'
implementation group: 'com.github.sarxos', name: 'webcam-capture', version: '0.3.12'
implementation group: 'org.jflac', name: 'jflac-codec', version: '1.5.2'

// Enforce slf4j-api version across dependencies
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.15'
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.5.8'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.16'
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.5.12'

testImplementation 'org.junit.jupiter:junit-jupiter:5.10.3'
testImplementation 'org.junit.platform:junit-platform-suite:1.10.3'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.10.3'
testImplementation 'org.junit.jupiter:junit-jupiter:5.11.3'
testImplementation 'org.junit.platform:junit-platform-suite:1.11.3'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.3'
}

// Make sure every single dependency is modularized.
Expand Down Expand Up @@ -149,7 +149,7 @@ idea {
}

tasks.named('wrapper', Wrapper) {
gradleVersion = '8.10.1'
gradleVersion = '8.11.1'
distributionType = Wrapper.DistributionType.BIN
}

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ org.gradle.java.installations.auto-detect=true

# Project Build Properties
env=dev
javafx.version=21.0.4
javafx.version=21.0.5
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
1 change: 0 additions & 1 deletion nb-configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,5 @@ That way multiple projects can share the same settings (useful for formatting ru
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-javascript2-requirejs.enabled>true</org-netbeans-modules-javascript2-requirejs.enabled>
<netbeans.hint.jdkPlatform>JDK_21</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>
21 changes: 10 additions & 11 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>21</java.version>
<javafx.version>21.0.4</javafx.version>
<javafx.static.version>21-ea+11.2</javafx.static.version>
<javafx.version>21.0.5</javafx.version>
<maven.min.version>3.6.3</maven.min.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
Expand All @@ -30,27 +29,27 @@
<maven.compiler.plugin.version>3.13.0</maven.compiler.plugin.version>
<maven.enforcer.plugin.version>3.5.0</maven.enforcer.plugin.version>
<maven.assembly.plugin.version>3.6.0</maven.assembly.plugin.version>
<maven.surefire.plugin.version>3.3.1</maven.surefire.plugin.version>
<maven.surefire.plugin.version>3.5.2</maven.surefire.plugin.version>
<maven.site.plugin.version>4.0.0-M16</maven.site.plugin.version>
<javafx.maven.plugin.version>0.0.8</javafx.maven.plugin.version>
<codehaus.flatten.plugin.version>1.6.0</codehaus.flatten.plugin.version>
<codehaus.build.helper.maven.plugin.version>3.6.0</codehaus.build.helper.maven.plugin.version>
<git.commit.maven.plugin.version>9.0.1</git.commit.maven.plugin.version>
<org.owasp.dependency-check-maven.plugin.version>10.0.3</org.owasp.dependency-check-maven.plugin.version>
<junit.jupiter.version>5.10.3</junit.jupiter.version>
<junit.jupiter.platform.version>1.10.3</junit.jupiter.platform.version>
<org.owasp.dependency-check-maven.plugin.version>10.0.4</org.owasp.dependency-check-maven.plugin.version>
<junit.jupiter.version>5.11.3</junit.jupiter.version>
<junit.jupiter.platform.version>1.11.3</junit.jupiter.platform.version>
<litfx.controls.version>0.1.3</litfx.controls.version>
<fxyz3d.version>0.6.0</fxyz3d.version>
<hansolo.charts.version>21.0.17</hansolo.charts.version>
<hansolo.charts.version>21.0.21</hansolo.charts.version>
<quickhull3d.version>1.0.0</quickhull3d.version>
<apache.commons.math3.version>3.6.1</apache.commons.math3.version>
<apache.commons.lang3.version>3.15.0</apache.commons.lang3.version>
<apache.commons.lang3.version>3.17.0</apache.commons.lang3.version>
<zeromq.jeromq.version>0.6.0</zeromq.jeromq.version>
<jackson.version>2.17.2</jackson.version>
<jackson.version>2.18.2</jackson.version>
<sarxos.webcam.capture.version>0.3.12</sarxos.webcam.capture.version>
<org.jflac.jflac-codec.version>1.5.2</org.jflac.jflac-codec.version>
<slf4j.version>2.0.15</slf4j.version>
<logback.version>1.5.8</logback.version>
<slf4j.version>2.0.16</slf4j.version>
<logback.version>1.5.12</logback.version>
<mainClassName>edu.jhuapl.trinity.TrinityMain</mainClassName>
<!-- Values for build.properties -->
<trinity.title>Trinity</trinity.title>
Expand Down
32 changes: 31 additions & 1 deletion src/main/java/edu/jhuapl/trinity/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
import edu.jhuapl.trinity.javafx.javafx3d.Manifold3D;
import edu.jhuapl.trinity.javafx.javafx3d.Projections3DPane;
import edu.jhuapl.trinity.javafx.javafx3d.RetroWavePane;
import edu.jhuapl.trinity.messages.CommandTask;
import edu.jhuapl.trinity.messages.MessageProcessor;
import edu.jhuapl.trinity.messages.ZeroMQFeedManager;
import edu.jhuapl.trinity.messages.ZeroMQSubscriberConfig;
Expand Down Expand Up @@ -100,6 +101,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;

public class App extends Application {
private static final Logger LOG = LoggerFactory.getLogger(App.class);
Expand Down Expand Up @@ -226,6 +228,8 @@ public void start(Stage stage) throws IOException {
hyperspace3DPane = new Hyperspace3DPane(scene);
hyperspace3DPane.setVisible(false); //start off hidden

navigatorPane = new NavigatorPane(scene, pathPane);

LOG.info("Registering Event Handlers...");
//animatedConsoleText.animate("Registering Event Handlers...");
scene.addEventHandler(FeatureVectorEvent.REQUEST_FEATURE_COLLECTION, event -> {
Expand Down Expand Up @@ -317,6 +321,32 @@ else if (null != projections3DPane.latestUmap)
}
event.consume();
});
//some helpful handling for the main view
centerStack.addEventHandler(DragEvent.DRAG_OVER, event -> {
if (ResourceUtils.canDragOver(event)) {
event.acceptTransferModes(TransferMode.COPY);
} else {
event.consume();
}
});
centerStack.addEventHandler(DragEvent.DRAG_DROPPED, e -> {
String dropType = ResourceUtils.detectDropType(e);
if (!dropType.contentEquals("UNKNOWN")) {
if (ResourceUtils.promptUserOnCommand(dropType)) {
try {
switch (dropType) {
case "Hyperspace" -> CommandTask.execute(scene, "VIEW_HYPERSPACE", 0);
case "Hypersurface" -> CommandTask.execute(scene, "VIEW_HYPERSURFACE", 0);
case "Projections" -> CommandTask.execute(scene, "VIEW_PROJECTIONS", 0);
}
} catch (InterruptedException ex) {
LOG.error(null, ex);
}
}
}
ResourceUtils.onDragDropped(e, scene);
});
////////////////////////

hyperspace3DPane.addEventHandler(DragEvent.DRAG_OVER, event -> {
if (ResourceUtils.canDragOver(event)) {
Expand Down Expand Up @@ -422,7 +452,7 @@ else if (null != projections3DPane.latestUmap)
retroWavePane.setVisible(true);
centerStack.getChildren().add(retroWavePane);
} catch (Exception ex) {

LOG.error(null, ex);
}
}
if (namedParameters.containsKey("display4k")) {
Expand Down
38 changes: 38 additions & 0 deletions src/main/java/edu/jhuapl/trinity/data/CocoAnnotation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/* Copyright (C) 2021 - 2024 Sean Phillips */
package edu.jhuapl.trinity.data;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

/**
* @author sean phillips
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class CocoAnnotation {
public static final String TYPESTRING = "coco_annotation";
private String content;

public CocoAnnotation() {
}

public static boolean isCocoAnnotation(String messageBody) {
return messageBody.contains("messageType")
&& messageBody.contains(TYPESTRING);
}

/**
* @return the content
*/
public String getContent() {
return content;
}

/**
* @param content the content to set
*/
public void setContent(String content) {
this.content = content;
}

}
Loading

0 comments on commit b2ed7fa

Please sign in to comment.