[Insight-users] Never updated

Henkjan Huisman h . huisman at rad . umcn . nl
12 May 2003 17:19:57 +0200


Hi all,

One of my itk programs re-evaluates its the whole pipeline everytime an
update is requested somewhere. It does so for objects that haven't been
modified at all! I've compiled a small example that reproduces this
effect.

...
typedef itk::SphereMeshSource<meshType > Tsphere;
Tsphere::Pointer s = Tsphere::New();
s->GetOutput()->SetRequestedRegionToLargestPossibleRegion();
s->GetOutput()->Print(cout);
s->GetOutput()->Update();
s->GetOutput()->Print(cout);
s->GetOutput()->Update();
s->GetOutput()->Print(cout);

The output will show an increasing 'UpdateTime', which means that the
Sphere is recalculated everytime, while it hasn't changed!!!. (I
implemented my own method which prints within the GenerateData function
to show this). Now I think it has to do with the
'LastRequestedRegionWasOutsideOfTheBufferedRegion: 1' in the Print
output. 

The cause is in itkMesh.txx with the result of
RequestedRegionIsOutsideOfTheBufferedRegion(). The latter evaluates
'm_RequestedRegion != m_BufferedRegion' as true. m_BufferedRegion seems
to be -1 from PointSet, but I can't find anywhere satements that affect
'm_BufferedRegion' other than in ImageSets. Looks like a bug in itk to
me and several other 'itkMesh'-users should be having this problem.
Anyone has dealt with this problem?



-- 
Henkjan

 ------------------------------------------------------------- 
|H.J. Huisman, PhD, MSEE       E : h.huisman@rad.umcn.nl      |
|Biomedical Physicist          T : +31 24 3617536/14545       |
|Dept. Radiology               F : +31 24 3540866             |
|UMC St. Radboud               S : 430 Radiologie/POBox 9101/ | 
|                                  6500HB Nijmegen/Netherlands|
 -------------------------------------------------------------