[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