View Issue Details

IDProjectCategoryView StatusLast Update
0002732Slicer4Core: MRMLpublic2014-03-06 05:13
ReporterpieperAssigned Tomillerjv 
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.2.1Fixed in VersionSlicer 4.2.1 
Summary0002732: Move LightBox proxy to abstract displayable manager for easier re-use
Description

" move the lightbox proxy up to the abstract displayable manager class level so that it is available to all displayable manager subclasses. This would mean adding it to the initialize methods for the displayable manager groups. ThreeD displayable managers could just return the single renderer, while slice views could use the proxy to get the correct renderer for the given coordinate (Z coordinate of XYZ space)."

See http://www.na-mic.org/Bug/view.php?id=1690#c7029

TagsNo tags attached.

Relationships

related to 0001690 assignednicole fiducial shows in wrong lightbox cell 

Activities

pieper

pieper

2012-11-05 12:49

administrator   ~0007063

As an added feature request consider, it would be great if you could switch the active displayable managers on the fly (that is, register/unregister displayable managers and refresh the currently instanced views to reflect the updated state). Last time I looked it didn't appear to be possible to modify displayable managers after the fact.

nicole

nicole

2012-11-13 11:00

administrator   ~0007191

Jim: any updates?

millerjv

millerjv

2012-11-13 11:31

developer   ~0007193

No update yet.

millerjv

millerjv

2012-11-14 06:44

developer   ~0007212

Pushed a patch to https://github.com/millerjv/Slicer4/commit/55f9c1c637f4ef4ba5c0da8b442aac57626d10c7 [^]

Branch is "2732-move-lightbox-to-abstract-displayable-manager"

commit 55f9c1c637f4ef4ba5c0da8b442aac57626d10c7
Author: Jim Miller <millerjv@ge.com>
Date: Wed Nov 14 11:29:39 2012 -0500

BUG: 0002732 move light box renderer manager proxy to abstract displayable manager

Moved the LightBoxRendererManagerProxy up to the superclass of the
DisplayableManager hierarchy so that all (2D & 3D) displayable managers
can interact with a lightbox.

Note that light boxes are only currently supported on 2D viewers, so the
proxy is only configured in qMRMLSliceView. CTK will need to be changed to
put the LightBoxManager into ctkVTKAbstractView to make it accessible to
both ctkVTKSliceView and ctkVTKRenderView. Then qMRMLThreeDView could also
create and initialize a LightBoxManagerProxy and set it on its DisplayableManagers.
Here, we would also want to move qMRMLSliceViewPrivate::vtkInternalLightBoxRendererManagerProxy
class to a place where it could be used by both types of VTK widgets.

The proxy can now be set on the DisplayableManagerGroup which broadcasts
the proxy to all the DisplayableManagers in that group.
millerjv

millerjv

2012-11-14 06:45

developer   ~0007213

Nicole, does this address what you need for the annotations?

Or does the lightbox proxy need to be push through the 3D Widgets (ctkVTKRenderView) as well?

nicole

nicole

2012-11-14 07:02

administrator   ~0007218

Jim: I don't need it in the 3D view, that will have a different way of dealing with renderers when there are multiple 3D views.
Looking at the code you posted to github, the GetRenderer(int) is exactly what I need for the fiducials.
I added a fairly long comment on github, the main thing needed to verify is:

So a potential problem is if a displayable manager is registered with the displayable manager group after the light box renderer manager proxy is set, it won't have had that passed to it. I think some extra checking might be needed when registering dislayable managers with the group/factory...

millerjv

millerjv

2012-11-14 08:10

developer   ~0007221

I wasn't sure when the annotation displayable managers were added to the viewers.

I followed Jc's suggestion and modified the DisplayableManagerGroup::AddDisplayableManager() to pass along the cached LightBoxRendererManagerProxy.

In theory, when you add your displayable managers to the viewers, they will be configured with the proxy now. So need to try to manage the proxy yourself.

There is a new commit on the branch.

jcfr

jcfr

2012-11-16 06:38

administrator   ~0007283

Fixed in r21431
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21431

jcfr

jcfr

2014-03-06 05:12

administrator   ~0011003

Closing resolved issues that have not been updated in more than 3 months

Issue History

Date Modified Username Field Change
2012-11-05 10:35 jcfr New Issue
2012-11-05 10:35 jcfr Status new => assigned
2012-11-05 10:35 jcfr Assigned To => alexy
2012-11-05 10:35 jcfr Reporter jcfr => pieper
2012-11-05 10:35 jcfr Assigned To alexy => millerjv
2012-11-05 10:35 jcfr Target Version => Slicer 4.2.1
2012-11-05 12:49 pieper Note Added: 0007063
2012-11-06 09:50 jcfr Relationship added related to 0001690
2012-11-13 11:00 nicole Note Added: 0007191
2012-11-13 11:31 millerjv Note Added: 0007193
2012-11-14 06:44 millerjv Note Added: 0007212
2012-11-14 06:45 millerjv Note Added: 0007213
2012-11-14 06:46 millerjv Status assigned => feedback
2012-11-14 07:02 nicole Note Added: 0007218
2012-11-14 08:10 millerjv Note Added: 0007221
2012-11-16 06:38 jcfr Note Added: 0007283
2012-11-16 06:38 jcfr Status feedback => resolved
2012-11-16 06:38 jcfr Fixed in Version => Slicer 4.2.1
2012-11-16 06:38 jcfr Resolution open => fixed
2014-03-06 05:12 jcfr Note Added: 0011003
2014-03-06 05:13 jcfr Status resolved => closed