Hi Wegner, Thomas, users,
Thanks for your answer (and sorry for my late answer). My idea was to
move points on the 2D view and to see modification on the 3D view, but I
hadn't thought much about it. Obviously, you are right on your first
point! The 2D view will force the user to move point on a specific axis.
Choosing point on the 3D view is not a good idea for our problem because
it will be impossible to control.
I think I will be forced to create a solution really specific to my
problem using the 2D views. We ask the user to place a PlanarFigure on
one of the 2D view and we throw rays at each N degrees around this
figure. We could rotate the slices to always see one of these N/2
planes. Or maybe the snapping problem is not that bad. In fact, just
moving points on the 2D planes will be our first test. If the clients
think it's impossible to work with, we will code something more complicated.
Thanks for your help.
Le 2013-06-12 15:51, Wegner a écrit :
Hi Nil and Thomas,
I think it depends heavily on the features the implementation should
cover. Nil, could you clarify them in more detail?
Concerning PointSetInteractor for a surface: picking a point won't be
a problem, but I assume that this would not satisfy the needs. As
setting the exact position in a 3D window is not trivial (because you
are interacting on a 2D view) I think you want to interact on the 2D
widgets. If you would show the vertices of a surface the way
PointSetVtkMappper3D does, you could pick a vertex on a 2D widget. But
this would at least snap the point onto that plane. Depending on what
you want to achieve this is distracting because you can't set the
vertex on a position that lies between all three orthogonal planes
(neglecting slice rotation mode).
One possibility would be to implement some type of a magnifier tool
for surfaces where several vertices in a defined region are moved. So
you pick a position in an epsilon region around the surface and you
move the vertices in the region the same direction the mouse moves
relative to the distance between picked position and those vertices in
the region. That interaction would be even possible in 3D if you
calculate the mean up vector of the modified region and move the
surface in that direction according to mouse movement.
The main reason for your boss: A contribution would be more than
beneficial because if you give it to the main MITK developers they
will also take care of maintaining that code in future releases. Less
bugs, more quality and stability...
That's what makes a good application, right?
Best regards,
Ingmar
Am 12.06.2013 15:30, schrieb Nil Goyette:
Hi Thomas, thanks for your answer and your suggestions! I can now stop
searching all over mitk's code to be sure I didn't miss anything :) I'll
probably create this Interactor in the next weeks, but I can't say now
if I will contribute it or not. I would, but it's not only my decision.
Thanks again.
Le 2013-06-12 03:43, Kilgus, Thomas a écrit :
Hi Nil,
this is definitely a feature request. I have not seen something like
this in MITK, although it would be nice to have.
As you already found out, the PointSetInteractor does the job for
PointSets. In my opinion, the only tough part is to implement point
picking on a surface. I have never done anything with picking before.
You could check VTK if there is any interaction method to select a
point on a vtkPolydata. All you need is the Id of the point you want
to modify. Then you could use the arrow-keys/mouse to move your point
according to the users input. Examples should be in the
PointSetInteractor and the MoveBaseDataInteractor. After the
polydata/point is modified you can it transfer to our mitkSurface via
SetVtkPolyData. Hope that helps. Let me know if you manage to
implement this and if you would like to contribute it to MITK.
Regards,
Thomas
Thomas Kilgus
German Cancer Research Center (DKFZ)
Div. Medical and Biological Informatics
Junior group: Computer-assisted Interventions (E131)
Im Neuenheimer Feld 280
69120 Heidelberg, Germany
Phone: +49(0) 6221-42-3545
*From:*Nil Goyette [mailto:[email protected]]
*Sent:* Dienstag, 11. Juni 2013 20:27
*To:* [email protected]
*Subject:* Re: [mitk-users] Mesh, moving points and volume
Hi mitk's users,
Nearly two months have past since my last request for help. I know you
are all busy, but here's an update anyway, in the hope that someone
might have a few minutes to help me.
I had time in the last days to search further into my "Move some
points" problem. Here's some details. I build the mesh of a heart and
it works quite well. To do so, I use three objects : vtkPolyData
mitk::Mesh and mitk::Surface. My goal would be to let the user modify
the mesh/surface by moving points with his mouse. Surprisingly, I
can't find anything to do it in mitk. I thought it was a frequent
job. As for now, I found:
- nothing with vtkPolyData because there's probably no interactor for
vtk stuff :)
- mitk::PointSet with a *PointSetInteractor* using type
"onlymovepointsetinteractor" works perfectly, but ONLY with a
mitk::PointSet. Even if mitk::Mesh is a subclass of mitk::PointSet, it
doesn't work, probably because of the
"dynamic_cast<mitk::PointSet*>(m_DataNode->GetData());" in
PointSetInteractor::CanHandleEvent in mitkPointSetInteractor.cpp.
- mitk::Surface with a *SurfaceInteractor* using type
"AffineInteractor3D" which would work like your Clipping Plane plugin.
I would probably be able to modify my surface with it, but it only
works in the 3D view and it's too coarse, I can't target a single
point. So, it's probably not the good tool for us.
In the end, the only working solution I found is to use a
mitk::PointSet, but I don't want to copy my points, let the user
change some, click update and then let the user see the modification
on the mesh. I want to let him move points (or cells) directly on the
mesh/surface.
So, does anyone know how to move points/cells on a mesh/surface? Do I
need to code my own interactor? Thanks for your time.
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users