[vtkusers] streaming & Intel P4 Hyperthread chip
Dean Inglis
dean.inglis at on.aibn.com
Wed Jun 25 12:00:25 EDT 2003
Here's some more info. I peppered in a few
print statements to see what the filter thinks
is the output extent and it turns out the
filter is executing twice: once for each half
of the stack of 60 image slices. The whole extent
of the input/output is 0,511,0,511,0,59
and the filter executes:
once: 0,511,0,511,0,29
twice: 0,511,0,511,30,59
How can i get around this? The reason is that in
the filter a range of extent is calculated and needs
the whole extent to do this correctly:
<snip>
for (idx0 = min0; idx0 <= max0; ++idx0)
{
inPtrC = inPtr0;
outPtrC = outPtr0;
for (idxC = 0; idxC < numComps; ++idxC)
{
value = static_cast<float>(sqrt(*inPtrC));
*outPtrC = static_cast<OT>(value); //its looking at all the
values
if( value > threshold ) // if not a background value
{
vec.push_back(value);
if(xmin>idx0){xmin = idx0;}
if(xmax<idx0){xmax = idx0;}
if(ymin>idx1){ymin = idx1;}
if(ymax<idx1){ymax = idx1;}
if(zmin>idx2){zmin = idx2;}
if(zmax<idx2){zmax = idx2;}
}
++inPtrC;
++outPtrC;
}
inPtr0 += inInc0;
outPtr0 += outInc0;
}
<snip>
Dean
More information about the vtkusers
mailing list