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

Change Java3D import #1142

Open
tischi opened this issue May 17, 2024 · 2 comments
Open

Change Java3D import #1142

tischi opened this issue May 17, 2024 · 2 comments
Labels

Comments

@tischi
Copy link
Contributor

tischi commented May 17, 2024

So if you change your dependency to org.jogamp.java3d:java3d-core:1.7.2, and change your imports from org.scijava.java3d to org.jogamp.java3d, you can gain the benefits. Fiji will switch to this version "Soon".

@ctrueden If I would do this today, would this would this work within Fiji, or would I need to ship the org.jogamp.java3d:java3d-core:1.7.2 via my update site (since it is not yet in Fiji)?

@ctrueden
Copy link
Contributor

ctrueden commented May 17, 2024

I just made a brief try at updating the 3D Viewer to use the JogAmp Java 3D 1.7.2. I was thinking I could upload the new Java 3D JARs, while leaving the old ones in place as well (different package prefixes, so they do not clash). But I wanted to check whether they were really a drop-in replacement apart from the package prefixes, and what I found is not quite. I pushed a branch with the needed changes, which does not compile due to a couple of differences:

  • Changes requiring adjustment in subtypes:
    • ij3d.behaviors.InteractiveBehavior is not abstract and does not override abstract method processStimulus(java.util.Iterator<org.jogamp.java3d.WakeupCriterion>) in org.jogamp.java3d.Behavior
    • ij3d.behaviors.WaitForNextFrameBehavior is not abstract and does not override abstract method processStimulus(java.util.Iterator<org.jogamp.java3d.WakeupCriterion>) in org.jogamp.java3d.Behavior
    • method does not override or implement a method from a supertype
  • Changes requiring adjustment in API consumers:
    • incompatible types: java.util.Iterator<org.jogamp.java3d.Node> cannot be converted to java.util.Enumeration
    • no suitable constructor found for Color3f(java.awt.Color)
    • no suitable method found for get(no arguments)
    • no suitable method found for processStimulus(java.util.Enumeration)

So the short answer is NO, even if we uploaded the new JogAmp Java 3D JARs immediately, I suspect you would run into some compilation errors as well. Did you try it yet? If everything compiles and works for you—or if you have time to quickly fix any problems you encounter—then I'm certainly willing to upload the JogAmp Java 3D JARs to support you, rather than you needing to ship them yourself.

@tischi
Copy link
Contributor Author

tischi commented May 27, 2024

@ctrueden thank you very much for having a look!

I don't understand what I could do now next, because the compilations issues that you describe above appear to be related to upstream code, isn't it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants