[Insight-developers] about dataobject update

Miller, James V (CRD) millerjv@crd.ge.com
Fri, 23 Mar 2001 07:37:49 -0500


A change to a pixel does not cause the DataObject to think it has been modified. There are two
reasons for this.  First, if we ticked the modified time for the data object for every pixel
modification, we would quickly roll over the modified time ivar.  Second, we'd hate to have to tick
the modified time for every pixel modification (that would be an extra add per pixel change).

Once you have finished making all your changes to the pixel data, send the DataObject a Modified()
call.  This will mark the data object as being modified and your pipeline should re-execute.

Jim  

-----Original Message-----
From: Ting Chen [mailto:chenting@graphics.cis.upenn.edu]
Sent: Thursday, March 22, 2001 7:11 PM
To: Insight Developers
Subject: [Insight-developers] about dataobject update


Hi! I am working on developing a recursive segmentation method. But I met
this problem. As for itkMRFImageFilter, when I make change to the training
image and want to update the segmentation result. The filter seems just did
not respond to the update of training image. The problem is at:
itkDataObject.cxx:

void
DataObject
::UpdateOutputData()
{
  // If we need to update due to PipelineMTime, or the fact that our
  // data was released, then propagate the UpdateOutputData to the source
  // if there is one.

>>>>>>>cannot enter the outer if{...}

  if ( m_UpdateTime < m_PipelineMTime || m_DataReleased ||
       this->RequestedRegionIsOutsideOfTheBufferedRegion())
    {
    if ( m_Source )
      {
      m_Source->UpdateOutputData(this);
      }
    }
}

it seems I have to do something to make it know it is time for update, but
where and what should do? Any ideas?
ting


_______________________________________________
Insight-developers mailing list
Insight-developers@public.kitware.com
http://public.kitware.com/mailman/listinfo/insight-developers