[IGSTK-Developers] [IGSTK-Users] Coordinate system framework for picking events

Frank Lindseth Frank.Lindseth at sintef.no
Thu Apr 3 06:24:44 EDT 2008


Hi Vincent,

Thank you for your mail.

I think that the problem is clearly stated (no need for a wiki-page)  
and the best solutions should be found.
In a real would application with some complexity (in terms of  
functionality needed) the application needs to keep track of a lo  
relations.
Embedding these relations in the toolkit whenever possible would make  
the application code a lot cleaner.
Whenever you do a objA->RequestAttach( objB ) it seems reasonable to  
be able to reach objA from objB and objB from objA.
The use case for wanting to know the ImageSO coordinate of a picked  
point its close to all IGS apps. and should be kept in mind while  
doing the ImageReslice, sync, etc. re-factoring.

- Frank


On Apr 3, 2008, at 11:18 AM, Vincent Gratsac wrote:

> Hi Patrick,
>
> I will create a new point in "Design Discussion" called  Coordinate  
> system framework for picking events. Are you OK ?
> I am not sure that the problem I encounter is due to the IGSTK  
> design, or due to my software's objects manager. Let me explain  
> briefly how it works before creating a Wiki page, if needed.
>
> a DisplayManager class manages all views of the software, and  
> ObjectRepresentations added to these views. When a point is picked  
> on one of these views, a picking event will be thrown by this view,  
> and will be caught by the DisplayManager. Then, as Luis described to  
> me, it *should* request the Transform between the View  
> CoordinateSystem and the ImageSpatialObject pixel data coordinate  
> system for each displayed ImageSpatialObjectRepresentation.
>
> At this point, the problem is that the DisplayManager does not have  
> access to the corresponding ImageSpatialObject (nor  
> CoordinateSystem) for each ImageSpatialObjectRepresentation.  
> Moreover, many ImageSpatialObject are managed (US, MRI, etc...). So  
> I wonder if it would be possible, and logical, to add a way to get  
> the CoordinateSystem (or ImageSpatialObject) related to an  
> ImageSpatialObjectRepresentation.
>
> You may think that this is not a good idea, and that I should find a  
> way to store this relation between an  
> ImageSpatialObjectRepresentation ans its CoordinateSystem (or  
> ImageSpatialObject). That is why I am not sure that this is an  
> insufficiency of the IGSTK coordinate system framework...
>
> Is it explained better than last time? Do you understand what I mean?
>
> Thank you,
>
> Vincent
>
> Patrick Cheng wrote:
>> Hi Vincent,
>>
>> I am not sure if I understand your question. Could you describe a  
>> scenario (use case) that leads to the failure or show the  
>> insufficiency of the coordinate system?
>>
>> I suggest that we continue this discussion on IGSTK wiki page,  
>> which is better organized.
>>
>> http://public.kitware.com/IGSTKWIKI/index.php/Main_Page
>> This fits under the "Design Discussion" section
>>
>> Do you want to give it a shot?
>>
>> Thank you,
>>
>> Patrick
>>
>> Vincent Gratsac wrote:
>>> Hi all,
>>>
>>> I'm sorry to pick out this point again, but something is still not  
>>> clear to me...
>>> I well understood the process described by Luis the last time but,  
>>> in my point of view, a problem is persistant :
>>>
>>> At point (2), How can I get the ImageSpatialObject pixel data  
>>> coordinate system if the software stores many ImageSpatialObjects  
>>> (UltraSound, MRI, etc...) ?
>>> That's why I thought it would be useful to be able to get each  
>>> coordinate system directly from the  
>>> ImageSpatialObjectRepresentations which are stored by the View.
>>>
>>> Do you want me to log a bug for this precise point?
>>>
>>> Thank you,
>>> Vincent
>>>
>>> Luis Ibanez wrote:
>>>>
>>>> Hi Vincent,
>>>>
>>>> You will need a single ImageSpatialObject, and you will need
>>>> one ImageObjectRepresentation *for each* View where you want
>>>> to display the image.
>>>>
>>>> About creating bug,
>>>> please create your account in the MANTIS bug tracker
>>>> (just need to provide your email)
>>>>
>>>>   http://public.kitware.com/Bug/my_view_page.php
>>>>
>>>>
>>>> Then do the following:
>>>>
>>>>  * Login in the NANTIS system
>>>>  * Select the IGSTK project on the upper right menu
>>>>  * Click on "Report Issue"
>>>>
>>>>
>>>>
>>>> Please let us know if you run into any difficulty while
>>>> reporting the bug.
>>>>
>>>>
>>>>   Thanks
>>>>
>>>>
>>>>      Luis
>>>>
>>>>
>>>>
>>>> ------------------------
>>>> Vincent Gratsac wrote:
>>>>> Hi Luis,
>>>>>
>>>>> Thank you for your help.
>>>>>
>>>>> The solutions you described here seems to be a right way to do.
>>>>> However, this means that we still have to store the  
>>>>> corresponding ImageSpatialObject for each  
>>>>> ImageObjectRepresentation, isn't it ?
>>>>>
>>>>> I don't know where to log it as a bug. Could you tell me how to  
>>>>> do ?
>>>>>
>>>>> Vincent.
>>>>>
>>>>> Luis Ibanez wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> Hi Vincent,
>>>>>>
>>>>>>
>>>>>> Thanks for pointing this out.
>>>>>>
>>>>>>
>>>>>> What we are planning to do here is the following:
>>>>>>
>>>>>> 1) Views, in response to picking events will throw
>>>>>>   IGSTK PointEvents, that will contain both a Point
>>>>>>   and a reference to a coordinate system (the one
>>>>>>   of the View).
>>>>>>
>>>>>> 2) You will be able to request the Transform between
>>>>>>   the View CoordinateSystem and the ImageSpatialObject
>>>>>>   pixel data coordinate system.
>>>>>>
>>>>>> 3) With the Transform you will get from (2), you will
>>>>>>   be able to convert the point from the View coordinate
>>>>>>   system to the ImageSpatialObject pixel data coordinate
>>>>>>   system
>>>>>>
>>>>>> 4) Once you have the point in image space, you will be
>>>>>>   able to map it to pixel indices and access (read only)
>>>>>>   pixel data.
>>>>>>
>>>>>>
>>>>>> Pieces (1),(3) and (4) need to be implemented.
>>>>>> Piece (2) is currently functional
>>>>>>
>>>>>>
>>>>>> Could you please log a bug, for this topic ?
>>>>>>
>>>>>> You could describe it as "fixing the coordinate system
>>>>>> framework for picking events".
>>>>>>
>>>>>> ... or something along those lines...
>>>>>>
>>>>>>
>>>>>> BTW: Breaking the encapsulation of the ImageObjectRepresentation
>>>>>>     is probably not the best way to solve this issue.
>>>>>>
>>>>>>
>>>>>>
>>>>>>   Thanks
>>>>>>
>>>>>>
>>>>>>      Luis
>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------------------
>>>>>> Vincent Gratsac wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> First of all, thanks for the great effort of the IGSTK team to  
>>>>>>> bring us this new release !
>>>>>>>
>>>>>>> I did not receive any answer to my last mail about how to get  
>>>>>>> the ImageSpatialObject from an ImageObjectRepresentation.
>>>>>>>
>>>>>>> Did you understand my problem, and do you think that adding a  
>>>>>>> RequestGetImageSpatialObject() method to the  
>>>>>>> ImageObjectRepresentation class would be possible ?
>>>>>>>
>>>>>>> Vincent
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I'm currently working on slicing of displayed objects by  
>>>>>>>> giving a picked point.
>>>>>>>> The NeedleBiopsy example is helpful to learn how to do that !
>>>>>>>> Here is my problem : my software can display some  
>>>>>>>> ObjectRepresentations for more than one SpatialObjects, but  
>>>>>>>> I'm not able to know to which ImageSpatialObject an  
>>>>>>>> ImageSpatialObjectRepresentation is related.
>>>>>>>>
>>>>>>>> This is a problem when we try to convert a physical point to  
>>>>>>>> image indexes ( that's why I submitted the idea to add a  
>>>>>>>> ResliceToPhysicalPoint method in the  
>>>>>>>> ImageSpatialObjectRepresentation class).
>>>>>>>>
>>>>>>>> This is also a problem if the transformation between one of  
>>>>>>>> the ImageSpatialObjects and the View object differs from  
>>>>>>>> Identity. In this case, I need to get this transformation and  
>>>>>>>> multiply its inverse to the picked point's coordinates, in  
>>>>>>>> order to express the picked point's coordinates in the  
>>>>>>>> ImageSpatialObject coordinate system. Next, I will have to  
>>>>>>>> convert the physical point to image index.
>>>>>>>>
>>>>>>>> To conclude, I found some cases in which getting the  
>>>>>>>> ImageSpatialObject from an ImageSpatialObjectRepresentation  
>>>>>>>> is very useful. Is there a way to do it , or would it be  
>>>>>>>> unsafe to add such a method ?
>>>>>>>>
>>>>>>>> Vincent
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>
>
> -- 
> Vincent Gratsac
> ----------------------------------------------------
> Unité/Projet VisAGeS U746
> INSERM/INRIA/CNRS/U. de Rennes I
> IRISA
> Campus de Beaulieu, 35042 Rennes Cedex, France
>
> Ph:  +33 (0) 2 23 23 49 20/ Fax: +33/0 2 99 84 71 71
> email: Vincent.Gratsac at irisa.fr
> http://www.irisa.fr/visages/
> -----------------------------------------------------
> _______________________________________________
> IGSTK-Users mailing list
> IGSTK-Users at public.kitware.com
> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users



------------------------------
Frank Lindseth
Research Scientist (PhD)

SINTEF Health Research
Dept. Medical Technology
N-7465 Trondheim, Norway
Location: Olav Kyrres gt. 9, 4th floor, Trondheim

E-mail: Frank.Lindseth at sintef.no
Telephone: +47 928 09 372
Telefax: +47 930 70 800


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/igstk-developers/attachments/20080403/3a699ac4/attachment.html>


More information about the IGSTK-Developers mailing list