@@ -32,25 +32,16 @@ namespace itk
3232template <typename TInputImage, typename TOperatorValueType, typename TOutputValueType, typename TOutputImageType>
3333GradientImageFilter<TInputImage, TOperatorValueType, TOutputValueType, TOutputImageType>::GradientImageFilter()
3434{
35- // default boundary condition
36- m_BoundaryCondition = new ZeroFluxNeumannBoundaryCondition<TInputImage>();
3735 this ->DynamicMultiThreadingOn ();
3836 this ->ThreaderUpdateProgressOff ();
3937}
4038
41- template <typename TInputImage, typename TOperatorValueType, typename TOutputValueType, typename TOutputImageType>
42- GradientImageFilter<TInputImage, TOperatorValueType, TOutputValueType, TOutputImageType>::~GradientImageFilter ()
43- {
44- delete m_BoundaryCondition;
45- }
46-
4739template <typename TInputImage, typename TOperatorValueType, typename TOutputValue, typename TOutputImage>
4840void
4941GradientImageFilter<TInputImage, TOperatorValueType, TOutputValue, TOutputImage>::OverrideBoundaryCondition(
5042 ImageBoundaryCondition<TInputImage> * boundaryCondition)
5143{
52- delete m_BoundaryCondition;
53- m_BoundaryCondition = boundaryCondition;
44+ m_BoundaryCondition.reset (boundaryCondition);
5445}
5546
5647template <typename TInputImage, typename TOperatorValueType, typename TOutputValueType, typename TOutputImageType>
@@ -165,7 +156,7 @@ GradientImageFilter<TInputImage, TOperatorValueType, TOutputValueType, TOutputIm
165156 {
166157 nit = ConstNeighborhoodIterator<InputImageType>(radius, inputImage, face);
167158 ImageRegionIterator<OutputImageType> it (outputImage, face);
168- nit.OverrideBoundaryCondition (m_BoundaryCondition);
159+ nit.OverrideBoundaryCondition (m_BoundaryCondition. get () );
169160 nit.GoToBegin ();
170161
171162 while (!nit.IsAtEnd ())
0 commit comments