[vtkusers] Extents? Surely it's wrong this way? : was ....

Lisa Sobierajski Avila lisa.avila at kitware.com
Sat Jan 6 00:49:55 EST 2001


Hi John,

Have you tried calling shrink->UpdateWholeExtent() instead of 
shrink->Update()? I think this should do what you want.

Lisa


At 07:25 PM 1/5/2001, John Biddiscombe wrote:
>Charles,
>
>Thanks for the feedback. I've double checked everything and find that I've 
>overridden
>Execute()
>and
>ExecuteInformation()
>
>It looks like I should be aiming at
>void Execute(vtkImageData **inputs, vtkImageData *output);
>void ExecuteInformation(vtkImageData **inputs, vtkImageData *output);
>for multiple input imaging filters
>and
>void ExecuteInformation(vtkImageData *input, vtkImageData *output);
>for single input
>
>however, I'm still deeply unhappy....Quite a while back I sent you an 
>ImageClip example...here's an almost identical ImageShrink Example which 
>exhibits the same problem. In fact all imaging filters do. The question is 
>: Is is necessary to invalidate the Update extents whenever Update is called?
>Try the test below with the comment in place.
>The first update is fine, but on the second, the Update Extent is
>256/16, 256/16 and the WholeExtent is only 256/32, 256/32
>You can see the problem?
>Is there an alternative Update method which first clears all UpdateExtents 
>and then updates the pipelines? If the Shrink Factors are controlled by a 
>scrollbar or something and the user is updating them, the last object in 
>the pipeline is doomed!
>
>JB -
>code follows
>
>#include "vtkImageEllipsoidSource.h"
>#include "vtkImageShrink3D.h"
>
>#include "SaveImage.h"
>
>void main( int argc, char *argv[] )
>{
>   char a;
>
>   // create an actor and give it ellipse geometry
>   vtkImageEllipsoidSource  *ellipse = vtkImageEllipsoidSource::New();
>     ellipse->SetWholeExtent(0,255,0,255,0,1);
>     ellipse->SetCenter(0,0,0);
>     ellipse->SetRadius(15,15,1);
>     ellipse->SetInValue(127);
>     ellipse->SetOutValue(0);
>
>   vtkImageShrink3D *shrink = vtkImageShrink3D::New();
>     shrink->SetInput(ellipse->GetOutput());
>     shrink->SetShrinkFactors(16,16,1);
>   shrink->Update();
>     shrink->SetShrinkFactors(32,32,1);
>//  shrink->GetOutput()->SetUpdateExtent(0,-1,0,-1,0,-1);
>   shrink->Update();
>
>// render shrink output and pray!
>   cin >> a;
>
>   ellipse->Delete();
>   shrink->Delete();
>}
>
>
>_______________________________________________
>This is the private VTK discussion list. Please keep messages on-topic. 
>Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://public.kitware.com/mailman/listinfo/vtkusers






More information about the vtkusers mailing list