Ticket #13 (closed defect: fixed)

Opened 13 years ago

Last modified 12 years ago

Behavior of overlay tools when no data object present

Reported by: sorber Owned by: curtis
Priority: minor Milestone: visbio3.40
Component: visbio Severity:
Keywords: overlays Cc:
Blocked By: Blocking:


Using overlay tools on a display with no data object causes the overlays to be created but not to appear, since overlays need a domain coordinate system in which to reside (all coordinates are NAN). Overlay tools could default to pixel coordinates instead of domain coordinates when a data object is missing. Alternatively, overlay tools could just be disabled.

I'm not sure how best to detect that no data object is present in the display.

Change History

comment:1 follow-up: ↓ 3 Changed 13 years ago by sorber

TransientSelectBox throws an exception when there's no data object present. To fix this problem, first address bug #15. Then consider the behavior of PointerTool, which creates the TSB, when no data object is present.

comment:2 Changed 13 years ago by sorber

  • Owner changed from sorber to curtis

comment:3 in reply to: ↑ 1 Changed 12 years ago by curtis

  • Milestone set to visbio3.4

I couldn't get TransientSelectBox to throw an exception with the latest version, and overlays do appear now even if the parent transform is removed, but I do see one exception when it is first removed:

visad.SetException: Gridded2DSet: samples value #0 may not be missing
	at visad.Gridded2DSet.<init>(Gridded2DSet.java:104)
	at visad.Gridded2DSet.<init>(Gridded2DSet.java:64)
	at loci.visbio.overlays.OverlayUtil.getLineLayer(OverlayUtil.java:349)
	at loci.visbio.overlays.OverlayUtil.getSelectionLayer(OverlayUtil.java:145)
	at loci.visbio.overlays.OverlayTransform.getData(OverlayTransform.java:604)
	at loci.visbio.view.TransformLink.getImageData(TransformLink.java:480)
	at loci.visbio.view.TransformLink.computeData(TransformLink.java:465)
	at loci.visbio.view.TransformLink$1.run(TransformLink.java:427)

comment:4 Changed 12 years ago by curtis

  • Status changed from new to closed
  • Resolution set to fixed

To generate the exception mentioned in the previous comment, overlays must exist and be selected. The problem is that getMultiplier returns NaN when the parent transform is first removed for some reason. So I hacked getMultiplier to return 1 instead in that case, and the exceptions no longer happen. Instead, the selection thickness temporarily gets out of whack. It goes back to normal next time you select anything though, so I'm going to call this problem solved.

Note: See TracTickets for help on using tickets.