Hi,

On 07/24/2013 12:24 PM, Pierre-Yves Menguy wrote:
Hello mitk-users,

I made progress in my task.
Now, each column hold a private RenderingManager & GlobalInteraction.
Sounds like the correct approach to me.


However, it means I can't return both RenderingManager in the function mitk::IRenderWindowPart::GetRenderingManager().
I'm not sure if it is a big drawback, but it seems my app works fine.
Depending how the returned IRenderingManager* is used by calling functions, everything might work fine or you might experience strange behaviour. E.g. calling IRenderingManager::RequestUpdate() currently probably only updates the render windows of one column.

You could either implement IRenderingManager yourself and dispatch the calls to the "appropriate" rendering manager of one of the two columns (or check which render windows has the focus and derive the "current" column from there) or you could just have one column in your editor and open the editor multiple times.


The last part of my previous email is still an open question :

    As suggested in the documentation, I read a bit about the
    mitk::Dispatcher class, but did not understood how to implement it.
    The SliceNavigationController isn't derived from BaseData, so I
    can't put it in a DataNode to be managed using a DataInteractor.
    Is it work in progress ?


What is your motivation for using mitk::Dispatcher? Usually, you don't need to use that class explicitly. Every mitk::BaseRenderer by default has its own mitk::Dispatcher contained in its mitk::BindDispatcherInteractor instance. By setting a mitk::DataStorage to a mitk::BaseRenderer the connections to the interactors attached to a data node get set-up automatically.

Best,
Sascha




Thanks,

Pierre-Yves Menguy.


2013/7/22 Pierre-Yves Menguy <[email protected] <mailto:[email protected]>>

    Hello mitk-users,

    First of all, thanks for all the help the mailing list has already
    gave me.

    I am trying to achieve a multi-renderers editor. It is composed of
    2 custom QWidget, each one holding 2 QmitkRenderWindow (tiled
    vertically) and its StandaloneDataStorage.

    My problem here is that mouse actions in the right column affects
    the left column.
    In the attached images I did different mouse actions to illustrate
    the problem:
    1 - initial state (plane mode is in rotation state)
    2 - White plane rotation (in top-left renderer), red plane
    rotation (bottom-left renderer), translation (top-right renderer).

    I thought the problem lied in the fact that both SlicesRotator
    (one instance per column) were listening to the global instance of
    mitk::GlobalInteraction, as it also [affected/was affected by]
    interactions in the StdMultiWidgetEditor.
    After a long dive in MITK's code to explore the call stack, I
    discovered that I was right : the RenderingManager and
    GlobalInteraction are singletons classes, used everywhere.

    I tried to instantiate a mitk::GlobalInteraction &
    mitk::RenderingManager for the sole use of my editor. It
    decorrelated my editor of the SMW, a good step forward, but both
    columns were still linked.
    However, if I instantiate a GlobalInteraction for each column,
    renderers don't react to the mouse (hovering, clicking,
    drag&dropping).

    I made a quick search (will dive deeper after I send this mail),
    but I haven't seen any methods in GlobalInteraction or
    QmitkRenderWindow to link both of them.

    As suggested in the documentation, I read a bit about the
    mitk::Dispatcher class, but did not understood how to implement it.
    The SliceNavigationController isn't derived from BaseData, so I
    can't put it in a DataNode to be managed using a DataInteractor.
    Is it work in progress ?


    What I am missing ? Have I even done things correctly so far ?


    Thanks for reading,

    Pierre-Yves Menguy.



------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to