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.
>>
> --
> Logo Imeka <http://imeka.ca/>         Nil Goyette, M.Sc.
> www.imeka.ca <http://imeka.ca/>
>
>
>
> ------------------------------------------------------------------------------
> 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
>

------------------------------------------------------------------------------
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

Reply via email to