#ifndef __itkVectorCentralDifferenceImageFunction_txx #define __itkVectorCentralDifferenceImageFunction_txx #include "itkVectorCentralDifferenceImageFunction.h" namespace itk { /** * Constructor */ template VectorCentralDifferenceImageFunction ::VectorCentralDifferenceImageFunction() { } /** * */ template void VectorCentralDifferenceImageFunction ::PrintSelf(std::ostream& os, Indent indent) const { this->Superclass::PrintSelf(os,indent); } /** * */ template typename VectorCentralDifferenceImageFunction::OutputType VectorCentralDifferenceImageFunction ::EvaluateAtIndex( const IndexType& index ) const { OutputType derivative; derivative.Fill( 0.0 ); IndexType neighIndex = index; InputPixelType pix; const typename InputImageType::SizeType& size = this->GetInputImage()->GetBufferedRegion().GetSize(); const typename InputImageType::IndexType& start = this->GetInputImage()->GetBufferedRegion().GetIndex(); for ( unsigned int dim = 0; dim < TInputImage::ImageDimension; dim++ ) { // bounds checking if( index[dim] < static_cast(start[dim]) + 1 || index[dim] > (start[dim] + static_cast(size[dim]) - 2 ) ) { for (unsigned int vdim=0; vdimGetInputImage()->GetPixel( neighIndex ); for (unsigned int vdim=0; vdimGetInputImage()->GetPixel( neighIndex ); for (unsigned int vdim=0; vdimGetInputImage()->GetSpacing()[dim]; } neighIndex[dim] += 1; } return ( derivative ); } } // end namespace itk #endif