[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