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