Hi,

Maybe the way the Position node stuff of the 3D-interpolation [1] is a good 
hint for that. For each drawn contour it generates a PlanarCircle as helper 
object. When clicking on one of these nodes, the according plane is adjusted to 
be able to continue the contour.

Best,
Stefan

[1] 
https://github.com/MITK/MITK/blob/master/Modules/Segmentation/Interactions/mitkSegTool2D.cpp#L465-L521

From: Nil Goyette [mailto:nil.goye...@imeka.ca]
Sent: Montag, 3. Juli 2017 17:41
To: Dinkelacker, Stefan; mitk-users@lists.sourceforge.net
Subject: Re: [mitk-users] Special reinit


Hi Stefan, hi all,

Anyone can help me with this? Here's a better explanation of what I need. Lets 
say:
1) I load a small object, place the scene as I like (zoom, rotate 3D and axes, 
etc.) http://i.imgur.com/MBHAqza.png
2) I load a second object: the reference image. http://i.imgur.com/Gy93a3a.png 
This screenshot was taken just before the automatic reinit in 
RenderingManager::InitializeViews (using a breakpoint).

In the last screenshot, my goal would be to leave the planes untouched, except 
for the bounds. I should be able to see the image in the sagittal/coronal 
planes and I should to be able to see the image if I zoom back. I know it's not 
currently possible in MITK. I'm asking how to do it in the code. I tried some 
things but it always produce horrors like [3] in my previous message. Any ideas 
how I can achieve that?

Nil
Le 2017-06-21 à 09:09, Nil Goyette a écrit :

Hi Stefan,

Thank you for your answer. I'm working in InitializeViewsByBoundingObjects and 
InitializeViews, so I'm aware of this method. If I understand correctly, it 
returns a geometry with orthogonal planes (reinited, reseted?). I would gladly 
use the offset/bounds of this geometry but I also want to keep the rotation of 
the planes.

In fact, that's what I tried to do in the snippet below. timeGeometry IS the 
result of ds->ComputeBoundingGeometry3D(ds->GetAll());.

Nil
Le 2017-06-21 à 03:44, Dinkelacker, Stefan a écrit :

Hi,



if you want to recompute the bounding box of the scene, mitk::DataStorage has a 
method for this purpose:



  mitk::TimeGeometry::Pointer geo = ds->ComputeBoundingGeometry3D(ds->GetAll());



Best,

Stefan

________________________________________

Von: Nil Goyette <nil.goye...@imeka.ca><mailto:nil.goye...@imeka.ca>

Gesendet: Dienstag, 20. Juni 2017 17:24

An: mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>

Betreff: [mitk-users] Special reinit



Hi all,



Lets start by saying that I know "Reinit" is not the right choice of

word in this case! A reinit would reset the axis, as it should. Lets

say, for the sake of the discussion, that I want a reinit that simply

update the scene's bounding box, nothing else, like  [1] to [2] (made by

hand, so not exact!):

- No camera modification, so everything is still at the same place

- Keep the axis rotated if they were

- Resize the scene if an object was added/deleted



I tried adding this snippet in RenderingManager::InitializeViews. In

clear english: reuse the old geometry for the current plane, but update

it with the new offset and bounds that we just calculated.



auto newGeo = timeGeometry->GetGeometryForTimeStep(0);

auto oldTimeGeo = nc->GetCreatedWorldGeometry();

auto oldGeo = oldTimeGeo->GetGeometryForTimeStep(0);



oldGeo->GetIndexToWorldTransform()->SetOffset(

   newGeo->GetIndexToWorldTransform()->GetOffset());

oldGeo->SetBounds(newGeo->GetBounds());



nc->SendCreatedWorldGeometryUpdate();



nc->SetInputWorldTimeGeometry(oldTimeGeo);

nc->Update();

...



This doesn't work; it throws the planes in strange places [3], probably

because I broke their affine matrix. I tried many things but my biggest

success was to remove the call to SetInputWorldTimeGeometry [4]. I

checked in DisplayInteractor::Rotate to see if there was a way to find

the old rotation applied to the plane but it doesn't seem to be possible.



Anyway, I'm mostly wondering how YOU, the mitk experts :), would do it.

Thank you for your time.



Nil



[1] http://i.imgur.com/krzBvJV.png

[2] http://i.imgur.com/NWDQQqg.png

[3] http://i.imgur.com/7wwWczy.png

[4] http://i.imgur.com/m9jwrpE.png




------------------------------------------------------------------------------

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

mitk-users@lists.sourceforge.net<mailto:mitk-users@lists.sourceforge.net>

https://lists.sourceforge.net/lists/listinfo/mitk-users

------------------------------------------------------------------------------
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
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to