saalfeldlab / paintera

GNU General Public License v2.0
99 stars 17 forks source link

Cannot create an intersecting source when label source has an offset #412

Open igorpisarev opened 4 years ago

igorpisarev commented 4 years ago

It seems that the UI dialog for creating an intersecting source doesn't work. When I click Add in the dialog, nothing happens and no sources are added. (File -> Open -> Data -> Connectomics -> Synapses for selection)

igorpisarev commented 4 years ago

It turns out that it throws an exception, but the exception popup was not showing. After fixing the popup, it's the following exception:

java.lang.RuntimeException: Incompatible sources ( transforms )
    at org.janelia.saalfeldlab.paintera.state.IntersectingSourceState.makeIntersect(IntersectingSourceState.java:340)
    at org.janelia.saalfeldlab.paintera.state.IntersectingSourceState.<init>(IntersectingSourceState.java:139)
    at org.janelia.saalfeldlab.paintera.ui.opendialog.menu.intersecting.IntersectingSourceStateOpener$Action.accept(IntersectingSourceStateOpener.java:85)
    at org.janelia.saalfeldlab.paintera.ui.opendialog.menu.intersecting.IntersectingSourceStateOpener$Action.accept(IntersectingSourceStateOpener.java:51)
    at org.janelia.saalfeldlab.paintera.ui.opendialog.menu.OpenDialogMenu.lambda$getMenu$0(OpenDialogMenu.java:81)
    at org.janelia.saalfeldlab.fx.MenuFromHandlers$asMenu$$inlined$also$lambda$1.handle(MenuFromHandlers.kt:75)
    at org.janelia.saalfeldlab.fx.MenuFromHandlers$asMenu$$inlined$also$lambda$1.handle(MenuFromHandlers.kt:46)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1405)
    at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.lambda$createChildren$343(ContextMenuContent.java:1358)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
igorpisarev commented 4 years ago

I was trying it on CREMI sample A where the label source is defined with an offset with respect to the raw data. Because of that, the transforms differ in the translation component, which results in the error above. Maybe it's possible to change it to only create the intersecting source within the smaller area, but for sources with identical transforms it works fine.