<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Change SYSTEM "https://itk.org/migrationv4/ITKMigration.dtd">

<!--**
**
** BoundaryConditionChanges.xml
**
** >>>>>>>>>>>>>>>>>>>>>>>>>>>>
** THIS FILE HAS BEEN AUTOMATICALLY GENERATED. EDIT IT BEFORE COMMITING
** <<<<<<<<<<<<<<<<<<<<<<<<<<<
**
** Please, make sure this file validates the following w3c test before committing it: http://validator.w3.org
**-->
<Change>
    <!--**
    ** Title for the online migration page
    **-->
    <Title>
      Boundary Condition Changes
    </Title>

    <!--**
    ** The author of the change
    **-->
    <Author>
      Cory Quammen
    </Author>

    <!--**
    ** Date of creation for the XML document
    **-->
    <Date>
      2011-07-13
    </Date>

    <!--**
    ** Plain text description of the change
    ** Extracted from git commit messages
    **-->
    <Description>
      ImageBoundaryCondition has a new pure virtual method,
      GetPixel(), that must be overridden by subclasses. Given the
      index of an output image and an input image, this method should
      return a pixel value appropriate for the boundary condition. If
      the index is inside the input image bounds, the image pixel
      value at that index is returned, otherwise the value determined
      by the boundary condition is returned.
    </Description>

    <!--**
    ** Sample code snippets
    ** Extracted from git diff of changed files in Examples and Testing
    **-->
    <SampleCode>

      <Old>
        <![CDATA[
        template< class TImage >
        class CustomBoundaryCondition:
          public ImageBoundaryCondition< TImage >
        {
          // No GetPixel() method was required to be defined.
        };
        ]]>
      </Old>

      <New>
        <![CDATA[
        template< class TImage >
        class CustomBoundaryCondition:
          public ImageBoundaryCondition< TImage >
        {

          virtual PixelType GetPixel( const IndexType & index,
                                      const TImageType * image ) const
          {
            // Compute pixel value ...
            return pixelValue;
          }

        };
        ]]>
      </New>

    </SampleCode>

    <!--**
    ** The change-ids for all commits in the topic branch
    **-->
    <Gerrit-ChangeId>
      I8de7c1989577ebf316340fab68d748edf0e5f833
    </Gerrit-ChangeId>

    <!--**
    ** List of all changed files from the topic branch
    **-->
    <FileList>
      Modules/Core/Common/include/itkConstNeighborhoodIterator.h
      Modules/Core/Common/include/itkConstNeighborhoodIterator.txx
      Modules/Core/Common/include/itkConstantBoundaryCondition.h
      Modules/Core/Common/include/itkConstantBoundaryCondition.txx
      Modules/Core/Common/include/itkImageBoundaryCondition.h
      Modules/Core/Common/include/itkPeriodicBoundaryCondition.h
      Modules/Core/Common/include/itkPeriodicBoundaryCondition.txx
      Modules/Core/Common/include/itkZeroFluxNeumannBoundaryCondition.h
      Modules/Core/Common/include/itkZeroFluxNeumannBoundaryCondition.txx
      Modules/Core/Common/test/CMakeLists.txt
      Modules/Core/Common/test/itkConstantBoundaryConditionTest.cxx
      Modules/Core/Common/test/itkPeriodicBoundaryConditionTest.cxx
      Modules/Core/Common/test/itkZeroFluxBoundaryConditionTest.cxx
    </FileList>

    <!--**
    ** If the migration can be accomplished by a simple string
    ** substitution, then use the following construct to define
    ** the substitution rule.
    **
    ** <MigrationFix-Automatic>
    **   <Old>
    **     <![CDATA[MipsleledName]]>
    **   </Old>
    **   <New>
    **     <![CDATA[MisspelledName]]>
    **   </New>
    ** </MigrationFix-Automatic>
    **-->

    <!--**
    ** If the migration can NOT be accomplished by a simple string
    ** substitution, but potential problem spots can be identified,
    ** use the following construct to define a migration flag rule.
    **
    ** <MigrationFix-Manual>
    **   OldFunctionName
    ** </MigrationFix-Manual>
    **-->

</Change>
