[vtkusers] vtkImageIterator back again
Mathieu Malaterre
Mathieu.Malaterre at creatis.insa-lyon.fr
Wed May 14 08:40:19 EDT 2003
Hi all,
After fixing some of my bugs, I still have this one, I don't know how
to fix it.
If my vtkImageIterator traverse only one slice, the test is ok. But as
soon as I add one more slice the test fails. Could someone told me why ?
Here is the C++ test prog I use:
//----------------------------------------------------
#include "vtkImageIterator.h"
#include "vtkStructuredPoints.h"
#include "vtkStructuredPointsReader.h"
#include "vtkStructuredPointsWriter.h"
#include "vtkRegressionTestImage.h"
//#include "vtkDebugLeaks.h"
int main( int argc, char ** argv )
{
// Read the data from a vtk file
char* fname = vtkTestUtilities::ExpandDataFileName(argc, argv,
"Data/ironProt.vtk");
vtkStructuredPointsReader *reader = vtkStructuredPointsReader::New();
reader->SetFileName(fname);
reader->Update();
delete [] fname;
{
int subregion[6] = { 10, 50, 10, 50, 10, 10}; //one slice
vtkImageIterator<unsigned char> inIt(reader->GetOutput(), subregion);
while (!inIt.IsAtEnd())
{
unsigned char* inSI = inIt.BeginSpan();
unsigned char* inSIEnd = inIt.EndSpan();
while (inSI != inSIEnd)
{
*inSI = 600;
++inSI;
}
inIt.NextSpan();
}
printf("One slice: easy job !\n");
}
int subregion[6] = { 10, 50, 10, 50, 11, 12}; //two slices !
vtkImageIterator<unsigned char> inIt(reader->GetOutput(), subregion);
while (!inIt.IsAtEnd())
{
unsigned char* inSI = inIt.BeginSpan();
unsigned char* inSIEnd = inIt.EndSpan();
while (inSI != inSIEnd)
{
*inSI = 600;
++inSI;
}
inIt.NextSpan();
}
printf("Two slices...\n");
vtkStructuredPointsWriter *writer = vtkStructuredPointsWriter::New();
writer->SetInput(reader->GetOutput());
writer->SetFileTypeToBinary();
writer->SetFileName( "myironProt.vtk" );
writer->Write();
reader->Delete();
writer->Delete();
return 0;
}
//----------------------------------------------------
Any advice/suggestions,
Thanks
mathieu
More information about the vtkusers
mailing list