/*========================================================================= Program: Visualization Toolkit Module: $RCSfile: vtkSimpleImageToImageFilter.cxx,v $ Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "vtkSimpleImageToImageFilter.h" #include "vtkImageData.h" #include "vtkInformation.h" #include "vtkInformationVector.h" #include "vtkObjectFactory.h" #include "vtkStreamingDemandDrivenPipeline.h" vtkCxxRevisionMacro(vtkSimpleImageToImageFilter, "$Revision: 1.15 $"); //---------------------------------------------------------------------------- vtkSimpleImageToImageFilter::vtkSimpleImageToImageFilter() { } //---------------------------------------------------------------------------- vtkSimpleImageToImageFilter::~vtkSimpleImageToImageFilter() { } int vtkSimpleImageToImageFilter::RequestUpdateExtent ( vtkInformation * vtkNotUsed(request), vtkInformationVector **inputVector, vtkInformationVector *vtkNotUsed( outputVector )) { vtkInformation *inInfo = inputVector[0]->GetInformationObject(0); // always request the whole extent inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(), inInfo->Get(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT()),6); return 1; } int vtkSimpleImageToImageFilter::RequestData( vtkInformation* vtkNotUsed( request ), vtkInformationVector** inputVector, vtkInformationVector* outputVector) { // get the data object vtkInformation *outInfo = outputVector->GetInformationObject(0); vtkImageData *output = vtkImageData::SafeDownCast( outInfo->Get(vtkDataObject::DATA_OBJECT())); vtkInformation *inInfo = inputVector[0]->GetInformationObject(0); vtkImageData *input = vtkImageData::SafeDownCast( inInfo->Get(vtkDataObject::DATA_OBJECT())); int inExt[6]; input->GetExtent(inExt); // if the input extent is empty then exit if (inExt[1] < inExt[0] || inExt[3] < inExt[2] || inExt[5] < inExt[4]) { return 1; } // Set the extent of the output and allocate memory. output->SetExtent( outInfo->Get(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT())); output->AllocateScalars(); this->SimpleExecute(input, output); return 1; } //---------------------------------------------------------------------------- void vtkSimpleImageToImageFilter::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os,indent); }