scenerygraphics / scenery

Flexible VR Visualisation for Volumetric and Geometric Data on the Java VM, powered by Kotlin and Vulkan.
https://scenery.graphics
GNU Lesser General Public License v3.0
128 stars 31 forks source link

Relative path reference issue in other project #715

Closed kephale closed 3 months ago

kephale commented 3 months ago

I'm trying to work in morphonets/cx3d

I got this error

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1400)
    at graphics.scenery.volumes.TransferFunctionEditor.<init>(TransferFunctionEditor.kt:277)
    at sc.iview.ui.SwingNodePropertyEditor.updateProperties(SwingNodePropertyEditor.kt:367)
    at sc.iview.ui.SwingNodePropertyEditor.updateProperties$default(SwingNodePropertyEditor.kt:289)
    at sc.iview.ui.SwingNodePropertyEditor.trySelectNode(SwingNodePropertyEditor.kt:458)
    at sc.iview.ui.SwingMainWindow.selectNode(SwingMainWindow.kt:390)
    at sc.iview.SciView.setActiveNode(SciView.kt:1023)
    at sc.iview.ui.SwingNodePropertyEditor.createTree$lambda$0(SwingNodePropertyEditor.kt:201)
    at java.desktop/javax.swing.JTree.fireValueChanged(JTree.java:3019)
    at java.desktop/javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3520)
    at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:650)
    at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1120)
    at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:306)
    at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:200)
    at java.desktop/javax.swing.JTree.setSelectionPath(JTree.java:1709)
    at sc.iview.ui.SwingNodePropertyEditor.trySelectNode(SwingNodePropertyEditor.kt:456)
    at sc.iview.ui.SwingMainWindow.selectNode(SwingMainWindow.kt:390)
    at sc.iview.SciView.setActiveNode(SciView.kt:1023)
    at sc.iview.SciView.addNode(SciView.kt:919)
    at sc.iview.SciView.addNode$default(SciView.kt:905)
    at sc.iview.SciView.addVolume(SciView.kt:1556)
    at sc.iview.SciView.addVolume$default(SciView.kt:1491)
    at sc.iview.SciView.addVolume(SciView.kt:1579)
    at sc.iview.SciView.addVolume(SciView.kt:1472)
    at sc.iview.SciView.addVolume$default(SciView.kt:1437)
    at sc.iview.SciView.addVolume(SciView.kt)
    at sc.iview.cx3d.commands.ImgNeuriteChemoAttraction.main(ImgNeuriteChemoAttraction.java:193)

It traces back to here: https://github.com/scenerygraphics/scenery/blob/549fb2afc7b758ea6caadf15c71b3b403e001025/src/main/kotlin/graphics/scenery/volumes/TransferFunctionEditor.kt#L277

When I poke through the debugger it looks like using the relative paths is a problem. I would be happy to be corrected. However, when I set a breakpoint at the above line, then in the debugger I can use resources within the volumes package (e.g. colormap-hot.png) but if I even try something like ../volumes/colormap-hot.png then it fails.