[Insight-users] Cycles in SpatialObject possible

Julien Jomier jjomier at cs.unc.edu
Thu Mar 17 11:12:41 EST 2005


This is correct, the SpatialObject scene structure is a Tree and not a 
DAG. Keeping the transform and the SO together was easier to design and 
also to use.

 > A tree is certainly an easier design. However, it is up to the
 > user to ensure the scene structure is indeed a tree (correct?).

Yes that is correct, no checking is done to ensure that the scene 
structure is a tree. It should be easy to add a function at the scene 
level to test it. I'll put a feature request.

Julien

Miller, James V (Research) wrote:
> That's fine. I just wanted to be clear as to whether the scene
> structure was indeed a tree or a DAG.  Most scene descriptions
> support DAGs by traversing from the root to the child to build
> the object to world transformation, with the parent-child 
> transformation stored on the link between the parent and child.
> We talked about this once at one of the quarterly meetings but
> I guess it never got into the SpatialObject design.
> 
> Storing the transformation on the "link" between the parent and
> child allows you to have one child object that is "replicated"
> by adding the child multiple times to the parent and associating
> a different transformation with each link from the parent to the
> child. This is how you would put 4 wheels on a car using only 
> a single instance of a wheel. This is how scene descriptions
> were done all the way back in the days of PHIGS. (Not sure how
> many people remember the days of PHIGS.)
> 
> A tree is certainly an easier design. However, it is up to the 
> user to ensure the scene structure is indeed a tree (correct?).
> 
> Jim
> 
> 
> 
> 
> 
> -----Original Message-----
> From: Stephen R. Aylward [mailto:aylward at unc.edu]
> Sent: Thursday, March 17, 2005 9:18 AM
> To: Miller, James V (Research)
> Cc: Julien Jomier; insight-users at itk.org; Dominique Belhachemi
> Subject: Re: [Insight-users] Cycles in SpatialObject possible
> 
> 
> Hi,
> 
> Julien will be able to give more info, but basically, a scene cannot be 
> stored as a DAG.  SpatialObjects allow only one parent per object since 
> each child object has a transform that positions it in its parent 
> object's space...  If we allowed multiple parents, it would be 
> problematic to define an object-to-world transform that is composed of 
> all of the child-to-parent transforms from an object to the root.   We 
> could support duplication as is done in some scene representations - 
> creating "virtual" copies of an object, but I don't think the complexity 
> they add is justified given the rare utility of them.
> 
> SpatialObjects specifically use the itkTree datastructure - contributed 
> by MITK developers.
> 
> Stephen
> 
> Miller, James V (Research) wrote:
> 
>>Julien, 
>>
>>Do the SpatialObjects support a directed acyclic graph?
>>
>>Jim
>>
>>-----Original Message-----
>>From: Julien Jomier [mailto:jjomier at cs.unc.edu]
>>Sent: Wednesday, March 16, 2005 5:38 PM
>>To: Miller, James V (Research)
>>Cc: Dominique Belhachemi; insight-users at itk.org
>>Subject: Re: [Insight-users] Cycles in SpatialObject possible
>>
>>
>>Yes you cannot have cycles with SpatialObjects. SpatialObject hierarchy 
>>is a designed as a tree.
>>
>>Julien
>>
>>Miller, James V (Research) wrote:
>>
>>
>>>Stephen and Julien could probably answer this better, but I assume that 
>>>SpatialObjects are "expected" to be either a directed acyclic graph or a 
>>>tree.
>>>
>>>Jim
>>>
>>>   -----Original Message-----
>>>   *From:* insight-users-bounces at itk.org
>>>   [mailto:insight-users-bounces at itk.org]*On Behalf Of *Dominique
>>>   Belhachemi
>>>   *Sent:* Wednesday, March 16, 2005 4:41 PM
>>>   *To:* insight-users at itk.org
>>>   *Subject:* [Insight-users] Cycles in SpatialObject possible
>>>
>>>   Hello,
>>>    
>>>   can i assume that each instance of itk::SpatialObject is cycle free
>>>   in respect of the function itk::SpatialObject::GetChildren(....) ?
>>>    
>>>   Can i imagine a itk::SpatialObject rather than tree or as graph?
>>>    
>>>   I need to know this because i want to map an itk::SpatialObject to a
>>>   list of SpatialObject-Pointers. For later calculations it is easier
>>>   for me to work with a list.
>>>    
>>>    
>>>   Dominique
>>>    
>>>    
>>>    
>>>    
>>>    
>>>    
>>>
>>>
>>>------------------------------------------------------------------------
>>>
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>>http://www.itk.org/mailman/listinfo/insight-users
> 
> 



More information about the Insight-users mailing list