Hello Rocío,
just a quick hint:
Now might be the time to look at the “renderer specific property lists” (see
the link in the first Mail of your other topic).
It is possible to hide nodes in the “global” renderer property list and just
show them in renderer specific property lists. You can also change the layer of
a node, but since you are probably using the “global” renderer property list,
this will have effect on both render windows. However, to see what you can do
just open the “Properties Plugin View”, which allows you to change the layer of
a node (and the visibility and something more).
You might also use the menu and click on “Window->Preferences” and switch to
the “Properties” entry. Here you can enable the “Developer Mode” which allows
you to change the “Property List” that is currently shown in the “Properties
Plugin View”.
I need some more time to look at your problem again.
Best,
Amir
From: LOPEZ VELAZCO, ROCIO [mailto:[email protected]]
Sent: Friday, 23 March, 2018 15:44
To: Kalali, Amir; [email protected]
Subject: Re: [mitk-users] How to show two different axial images simultaneously
in same MultiWidget
Hello Amir,
Thank you very much for your reply!
You are very close to what I am doing, however last days I did some changes.
MRI tab was like before, with the conventional 4 window Widget (2D windows:
axial, sagital and coronal and one 3D). Regarding the US image tab I created
three separated QmitkRenderWindow (no QmitkStdMultiWidget any more), two 2D
axial and one 3D. In total: 5 2D Render Windows and 2 3D RenderWindows.
"You want to manage both multi widgets individually with different image
modalities, so you created two data storages, one for each multi widget.
One data storage contains the MRI image to be shown in the first multi widget,
the other data storage contains the US image to be shown in the second multi
widget.
Later you created two separate rendering manager so that each one only
initializes its associated render windows ."
This is correct!
Yes, I thought about your problem mentioned before.. And I tried (just to see
what happened) to create a different Rendering Manager for one of the 2D render
window in US tab (so two rendering managers in US tab sharing dataStorage). And
it happened exactly the same as before... So I discarded "a call somewhere that
automatically initializes all the render windows of a rendering manager".
To initialize the views of the rendering managersI did:
m_rendering_manager_us->InitializeView(m_2DrenderWindow_us->GetVtkRenderWindow(),
m_data_storage_us->GetNamedNode("US")->GetData()->GetGeometry(), false);
m_rendering_manager_us_doppler->InitializeView(m_2DrenderWindow_us_doppler->GetVtkRenderWindow(),
m_data_storage_us->GetNamedNode("US_doppler")->GetData()->GetGeometry(), false);
My last chance was trying it with two different dataStorages in same rendering
manager... In that way it works but I would prefer the "best solution"..
Regarding that, I have never debugged using mitk in linux, would you have any
tip? Sorry if this is a very basic question!
And another question would be: you say that automatically initializes all the
render windows of a rendering manager with the bounding box of all nodes in the
data storage, but the bounding box is about dimensions right? What I see is
that it always shows the last node charged to the data storage. Is there any
way to say a render window what to show in a more direct way? something
regarding layers? I found something about this in QmitkRenderWindowManagerView,
I tried to use the plugin but I don't find the way of using it properly...
Best,
Rocío
2018-03-23 13:17 GMT+01:00 Kalali, Amir
<[email protected]<mailto:[email protected]>>:
Hi again,
So you now have 4 data storages in total? That does not sound like “the best
solution”.
Let me go back some steps and see what you want to achieve:
You have two QmitkStdMultiWidgets, each with 2 2D-RenderWindows and a
3D-RenderWindow (so in total: 4 2D-RenderWindows and 2 3D-RenderWindows).
You want to manage both multi widgets individually with different image
modalities, so you created two data storages, one for each multi widget.
One data storage contains the MRI image to be shown in the first multi widget,
the other data storage contains the US image to be shown in the second multi
widget.
Later you created two separate rendering manager so that each one only
initializes its associated render windows .
Your new goal is now to have two US images in the “US-dataStorage” and show
both in their individual render windows.
However, now you might run into the problem I mentioned before: There might be
a call somewhere that automatically initializes all the render windows of a
rendering manager with the bounding box of all nodes in the data storage (two
“US”-images).
You should check and debug the calls to ‘void
RenderingManager::InternalViewInitialization’ to see if the function is called
from somewhere, where the whole data storage is used or all render windows or
something similar.
Best,
Amir
From: LOPEZ VELAZCO, ROCIO
[mailto:[email protected]<mailto:[email protected]>]
Sent: Thursday, 22 March, 2018 12:23
To: [email protected]<mailto:[email protected]>
Subject: Re: [mitk-users] How to show two different axial images simultaneously
in same MultiWidget
Hello,
I solved this by creating two different dataStorage for each render window. I
don't know if this is the best solution...
Best,
Rocio
2018-03-20 17:20 GMT+01:00 LOPEZ VELAZCO, ROCIO
<[email protected]<mailto:[email protected]>>:
Hello again ^^',
In the MITK based application I am developing, I would like to show two US
axial images (stored in same datastorage). I changed the appeareace of the
QmitkStdMultiWidget so that having 2x2D Render Window and a 3D render window
(like in the following figure):
[cid:[email protected]]
I want to show the axial view of both US images in each 2D render window. In
order to do so I first first changed the view directrion of widget 2 from
sagital to axial and that works properly:
m_multiWidget_us->GetRenderWindow2()->GetSliceNavigationController()->SetDefaultViewDirection(mitk::SliceNavigationController::Axial);
Then I Initialize both views each one with one known data:
m_rendering_manager_us->InitializeView(m_multiWidget_us->GetRenderWindow1()->GetVtkRenderWindow(),
m_data_storage_us->GetNamedNode("US")->GetData()->GetGeometry(),
false);
m_rendering_manager_us->InitializeView(m_multiWidget_us->GetRenderWindow2()->GetVtkRenderWindow(),
m_data_storage_us->GetNamedNode("US_doppler")->GetData()->GetGeometry(),
false);
Where m_rendering_manager_us is the rendering manager of that multiwidget.
However this does not work properly since the last node loaded is initialized
in widget1 too, I assume it is because it is the last node initialized and it
gets priority?
So... my main question would be, how can I "separate" priority and charge them
separately? Does it have to do with time geometry? Would it be better if I
create separated render window widgets in spite of the QmitkStdMultiWidget?
I have no more ideas in how to try this...
Thank you very much in advance!
Best regards,
Rocío
--
Rocío López Velazco
SimbioSYS group, BCN MedTech
UniversityPompeu Fabra
Department of Information and Communication Technologies
Roc Boronat,
122<https://maps.google.com/?q=Roc+Boronat,+122&entry=gmail&source=g> (Tànger
Building), 08018 Barcelona
Office 55 119
https://bcn-medtech.upf.edu/
--
Rocío López Velazco
SimbioSYS group, BCN MedTech
UniversityPompeu Fabra
Department of Information and Communication Technologies
Roc Boronat,
122<https://maps.google.com/?q=Roc+Boronat,+122&entry=gmail&source=g> (Tànger
Building), 08018 Barcelona
Office 55 119
https://bcn-medtech.upf.edu/
--
Rocío López Velazco
SimbioSYS group, BCN MedTech
UniversityPompeu Fabra
Department of Information and Communication Technologies
Roc Boronat, 122 (Tànger Building), 08018 Barcelona
Office 55 119
https://bcn-medtech.upf.edu/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users