Skip to content

Commit

Permalink
Update to Java 3D 1.7.2
Browse files Browse the repository at this point in the history
And account for backwards-incompatible API changes.

And bump the major version from 4 to 5, because the Java 3D package
prefix changed from org.scijava to org.jogamp, meaning any API
signatures involving Java 3D classes will be binary-incompatible.
  • Loading branch information
ctrueden committed Sep 28, 2024
1 parent 5696ce5 commit 903bb6b
Show file tree
Hide file tree
Showing 89 changed files with 557 additions and 521 deletions.
2 changes: 1 addition & 1 deletion customnode/TestDynamicLineMesh.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from customnode import *;

from java.util import ArrayList;
from org.scijava.vecmath import *;
from org.jogamp.vecmath import *;

univ = Image3DUniverse();
univ.show();
Expand Down
20 changes: 14 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<groupId>sc.fiji</groupId>
<artifactId>3D_Viewer</artifactId>
<version>4.0.6-SNAPSHOT</version>
<version>5.0.0-SNAPSHOT</version>

<name>3D Viewer</name>
<description>3D Viewer for visualizing image stacks three-dimensionally.</description>
Expand Down Expand Up @@ -130,6 +130,11 @@

<!-- NB: Deploy releases to the SciJava Maven repository. -->
<releaseProfiles>sign,deploy-to-scijava</releaseProfiles>

<jogamp-java3d.version>1.7.2</jogamp-java3d.version>
<org.jogamp.java3d.java3d-core.version>${jogamp-java3d.version}</org.jogamp.java3d.java3d-core.version>
<org.jogamp.java3d.java3d-utils.version>${jogamp-java3d.version}</org.jogamp.java3d.java3d-utils.version>
<org.jogamp.java3d.vecmath.version>${jogamp-java3d.version}</org.jogamp.java3d.vecmath.version>
</properties>

<repositories>
Expand Down Expand Up @@ -160,16 +165,19 @@

<!-- Java 3D dependencies -->
<dependency>
<groupId>org.scijava</groupId>
<artifactId>j3dcore</artifactId>
<groupId>org.jogamp.java3d</groupId>
<artifactId>java3d-core</artifactId>
<version>${org.jogamp.java3d.java3d-core.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<artifactId>j3dutils</artifactId>
<groupId>org.jogamp.java3d</groupId>
<artifactId>java3d-utils</artifactId>
<version>${org.jogamp.java3d.java3d-utils.version}</version>
</dependency>
<dependency>
<groupId>org.scijava</groupId>
<groupId>org.jogamp.java3d</groupId>
<artifactId>vecmath</artifactId>
<version>${org.jogamp.java3d.vecmath.version}</version>
</dependency>
</dependencies>
</project>
2 changes: 1 addition & 1 deletion src/main/java/customnode/Box.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

package customnode;

import org.scijava.vecmath.Point3f;
import org.jogamp.vecmath.Point3f;

public class Box extends Primitive {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/customnode/Cone.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@

package customnode;

import org.scijava.vecmath.Matrix4f;
import org.scijava.vecmath.Point3f;
import org.jogamp.vecmath.Matrix4f;
import org.jogamp.vecmath.Point3f;

public class Cone extends Primitive {

Expand Down
22 changes: 11 additions & 11 deletions src/main/java/customnode/CustomIndexedTriangleMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@

import java.util.List;

import org.scijava.java3d.Appearance;
import org.scijava.java3d.ColoringAttributes;
import org.scijava.java3d.Geometry;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.IndexedTriangleArray;
import org.scijava.java3d.Material;
import org.scijava.java3d.PolygonAttributes;
import org.scijava.java3d.TransparencyAttributes;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.scijava.vecmath.Vector3f;
import org.jogamp.java3d.Appearance;
import org.jogamp.java3d.ColoringAttributes;
import org.jogamp.java3d.Geometry;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.IndexedTriangleArray;
import org.jogamp.java3d.Material;
import org.jogamp.java3d.PolygonAttributes;
import org.jogamp.java3d.TransparencyAttributes;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;
import org.jogamp.vecmath.Vector3f;

import ij.ImagePlus;
import ij.measure.Calibration;
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/customnode/CustomLineMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@
import java.util.Arrays;
import java.util.List;

import org.scijava.java3d.Appearance;
import org.scijava.java3d.ColoringAttributes;
import org.scijava.java3d.Geometry;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.LineArray;
import org.scijava.java3d.LineAttributes;
import org.scijava.java3d.LineStripArray;
import org.scijava.java3d.Material;
import org.scijava.java3d.PolygonAttributes;
import org.scijava.java3d.TransparencyAttributes;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.jogamp.java3d.Appearance;
import org.jogamp.java3d.ColoringAttributes;
import org.jogamp.java3d.Geometry;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.LineArray;
import org.jogamp.java3d.LineAttributes;
import org.jogamp.java3d.LineStripArray;
import org.jogamp.java3d.Material;
import org.jogamp.java3d.PolygonAttributes;
import org.jogamp.java3d.TransparencyAttributes;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;

public class CustomLineMesh extends CustomMesh {

Expand Down
24 changes: 12 additions & 12 deletions src/main/java/customnode/CustomMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,18 @@
import java.util.HashMap;
import java.util.List;

import org.scijava.java3d.Appearance;
import org.scijava.java3d.ColoringAttributes;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.GeometryStripArray;
import org.scijava.java3d.Material;
import org.scijava.java3d.PolygonAttributes;
import org.scijava.java3d.Shape3D;
import org.scijava.java3d.TransparencyAttributes;
import org.scijava.java3d.utils.geometry.GeometryInfo;
import org.scijava.java3d.utils.geometry.NormalGenerator;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.jogamp.java3d.Appearance;
import org.jogamp.java3d.ColoringAttributes;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.GeometryStripArray;
import org.jogamp.java3d.Material;
import org.jogamp.java3d.PolygonAttributes;
import org.jogamp.java3d.Shape3D;
import org.jogamp.java3d.TransparencyAttributes;
import org.jogamp.java3d.utils.geometry.GeometryInfo;
import org.jogamp.java3d.utils.geometry.NormalGenerator;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;

import ij.ImagePlus;
import ij.measure.Calibration;
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/customnode/CustomMeshNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@

package customnode;

import org.scijava.java3d.View;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.scijava.vecmath.Tuple3d;
import org.jogamp.java3d.View;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;
import org.jogamp.vecmath.Tuple3d;

import ij3d.ContentNode;

Expand Down
12 changes: 6 additions & 6 deletions src/main/java/customnode/CustomMultiMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
import java.util.HashMap;
import java.util.List;

import org.scijava.java3d.BranchGroup;
import org.scijava.java3d.Group;
import org.scijava.java3d.View;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.scijava.vecmath.Tuple3d;
import org.jogamp.java3d.BranchGroup;
import org.jogamp.java3d.Group;
import org.jogamp.java3d.View;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;
import org.jogamp.vecmath.Tuple3d;

public class CustomMultiMesh extends CustomMeshNode {

Expand Down
22 changes: 11 additions & 11 deletions src/main/java/customnode/CustomPointMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@
import java.util.Arrays;
import java.util.List;

import org.scijava.java3d.Appearance;
import org.scijava.java3d.ColoringAttributes;
import org.scijava.java3d.Geometry;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.Material;
import org.scijava.java3d.PointArray;
import org.scijava.java3d.PointAttributes;
import org.scijava.java3d.PolygonAttributes;
import org.scijava.java3d.TransparencyAttributes;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.jogamp.java3d.Appearance;
import org.jogamp.java3d.ColoringAttributes;
import org.jogamp.java3d.Geometry;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.Material;
import org.jogamp.java3d.PointArray;
import org.jogamp.java3d.PointAttributes;
import org.jogamp.java3d.PolygonAttributes;
import org.jogamp.java3d.TransparencyAttributes;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;

public class CustomPointMesh extends CustomMesh {

Expand Down
14 changes: 7 additions & 7 deletions src/main/java/customnode/CustomQuadMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
import java.util.Arrays;
import java.util.List;

import org.scijava.java3d.Geometry;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.QuadArray;
import org.scijava.java3d.utils.geometry.GeometryInfo;
import org.scijava.java3d.utils.geometry.NormalGenerator;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point3f;
import org.jogamp.java3d.Geometry;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.QuadArray;
import org.jogamp.java3d.utils.geometry.GeometryInfo;
import org.jogamp.java3d.utils.geometry.NormalGenerator;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point3f;

public class CustomQuadMesh extends CustomTriangleMesh {

Expand Down
26 changes: 13 additions & 13 deletions src/main/java/customnode/CustomTransparentTriangleMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,19 @@
import java.util.Arrays;
import java.util.List;

import org.scijava.java3d.Appearance;
import org.scijava.java3d.ColoringAttributes;
import org.scijava.java3d.Geometry;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.Material;
import org.scijava.java3d.PolygonAttributes;
import org.scijava.java3d.TransparencyAttributes;
import org.scijava.java3d.TriangleArray;
import org.scijava.java3d.utils.geometry.GeometryInfo;
import org.scijava.java3d.utils.geometry.NormalGenerator;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Color4f;
import org.scijava.vecmath.Point3f;
import org.jogamp.java3d.Appearance;
import org.jogamp.java3d.ColoringAttributes;
import org.jogamp.java3d.Geometry;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.Material;
import org.jogamp.java3d.PolygonAttributes;
import org.jogamp.java3d.TransparencyAttributes;
import org.jogamp.java3d.TriangleArray;
import org.jogamp.java3d.utils.geometry.GeometryInfo;
import org.jogamp.java3d.utils.geometry.NormalGenerator;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Color4f;
import org.jogamp.vecmath.Point3f;

public class CustomTransparentTriangleMesh extends CustomTriangleMesh {

Expand Down
22 changes: 11 additions & 11 deletions src/main/java/customnode/CustomTriangleMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@
import java.util.Arrays;
import java.util.List;

import org.scijava.java3d.Canvas3D;
import org.scijava.java3d.Geometry;
import org.scijava.java3d.GeometryArray;
import org.scijava.java3d.Transform3D;
import org.scijava.java3d.TriangleArray;
import org.scijava.java3d.utils.geometry.GeometryInfo;
import org.scijava.java3d.utils.geometry.NormalGenerator;
import org.scijava.vecmath.Color3f;
import org.scijava.vecmath.Point2d;
import org.scijava.vecmath.Point3d;
import org.scijava.vecmath.Point3f;
import org.jogamp.java3d.Canvas3D;
import org.jogamp.java3d.Geometry;
import org.jogamp.java3d.GeometryArray;
import org.jogamp.java3d.Transform3D;
import org.jogamp.java3d.TriangleArray;
import org.jogamp.java3d.utils.geometry.GeometryInfo;
import org.jogamp.java3d.utils.geometry.NormalGenerator;
import org.jogamp.vecmath.Color3f;
import org.jogamp.vecmath.Point2d;
import org.jogamp.vecmath.Point3d;
import org.jogamp.vecmath.Point3f;

import isosurface.MeshProperties;

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/customnode/EdgeContraction.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
import java.util.SortedSet;
import java.util.TreeSet;

import org.scijava.vecmath.Point3f;
import org.scijava.vecmath.Vector3f;
import org.jogamp.vecmath.Point3f;
import org.jogamp.vecmath.Vector3f;

import customnode.FullInfoMesh.Edge;
import customnode.FullInfoMesh.Vertex;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/customnode/FullInfoMesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
import java.util.List;
import java.util.Set;

import org.scijava.vecmath.Point3f;
import org.scijava.vecmath.Vector3f;
import org.jogamp.vecmath.Point3f;
import org.jogamp.vecmath.Vector3f;

public class FullInfoMesh {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/customnode/MeshMaker.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
import java.util.HashMap;
import java.util.List;

import org.scijava.vecmath.Point3f;
import org.scijava.vecmath.Vector3f;
import org.jogamp.vecmath.Point3f;
import org.jogamp.vecmath.Vector3f;

import ij.IJ;
import ij3d.Pipe;
Expand Down
17 changes: 9 additions & 8 deletions src/main/java/customnode/Mesh_Maker.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@

import java.awt.Color;

import org.scijava.java3d.Transform3D;
import org.scijava.vecmath.Color3f;
import ij3d.Utils;
import org.jogamp.java3d.Transform3D;
import org.jogamp.vecmath.Color3f;

import ij.plugin.PlugIn;
import ij3d.Content;
Expand All @@ -47,24 +48,24 @@ public void run(final String arg) {

// define two spheres: an X,Y,Z point with a radius
final double x1 = 10, y1 = 100, z1 = 150, r1 = 20;
final Color3f color1 = new Color3f(Color.pink);
final Color3f color1 = Utils.toColor3f(Color.pink);

final double x2 = 50, y2 = 200, z2 = 40, r2 = 35;
final Color3f color2 = new Color3f(Color.white);
final Color3f color2 = Utils.toColor3f(Color.white);

// define a tube as a polyline in space
final double[] px = new double[] { 100, 230, 320, 400 };
final double[] py = new double[] { 100, 120, 230, 400 };
final double[] pz = new double[] { 100, 200, 300, 400 };
final double[] pr = new double[] { 10, 15, 40, 110 };
final Color3f colort = new Color3f(Color.yellow);
final Color3f colort = Utils.toColor3f(Color.yellow);

// define a second tube as a curving spiral in space
final double[] px2 = new double[200];
final double[] py2 = new double[200];
final double[] pz2 = new double[200];
final double[] pr2 = new double[200];
final Color3f color_t2 = new Color3f(Color.magenta);
final Color3f color_t2 = Utils.toColor3f(Color.magenta);
for (int i = 0; i < px2.length; i++) {
final double angle = Math.toRadians(10 * i);
final double radius = 50 + i * 5;
Expand All @@ -87,8 +88,8 @@ public void run(final String arg) {
univ.addMesh(createTube(px2, py2, pz2, pr2, 12, false), color_t2,
"Tube spiral", 1);
final Content disc1 =
univ.addMesh(createDisc(100, 100, 50, 3, 3, 3, 50, 12), new Color3f(
Color.blue), "Disc 1", 1);
univ.addMesh(createDisc(100, 100, 50, 3, 3, 3, 50, 12),
Utils.toColor3f(Color.blue), "Disc 1", 1);

// Extra:
// Now modify some attributes:
Expand Down
Loading

1 comment on commit 903bb6b

@imagesc-bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit has been mentioned on Image.sc Forum. There might be relevant details there:

https://forum.image.sc/t/j3dcore-dependency-in-scijava-39-0-0/106239/3

Please sign in to comment.