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

<!--**
**
** ConsolidateImageRegionSplitting.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>
      Consolidate Image Region Splitting
    </Title>

    <!--**
    ** The author of the change
    **-->
    <Author>
      Bradley Lowekamp
    </Author>

    <!--**
    ** Date of creation for the XML document
    **-->
    <Date>
      2013-04-05
    </Date>

    <!--**
    ** Plain text description of the change
    ** Extracted from git commit messages
    **-->
    <Description>
      <![CDATA[
      The ImageRegionsSplitters have been refactored to be used for
      multi-threading in the image filters, streaming IO, and still
      the StreamingImageFilter. To do this a new
      ImageRegionSplitterBase class was created, and the old
      algorithms where migrated to new classes, while still preserving
      the old splitters as functioning.

      For those users who explicitly used these classes turning on the
      depreciated module everything would work with out changes.

      For users who used these classes and doesn't want to turn on the
      module they need to simply use the new class name.

      For the users who wrote a custom splitter for streaming, it can
      work in the new framework as is with depreciated module turned
      on. This was a little tricky to do, but the user can now plug
      their splitter method into an ImageFilter. However, it's
      recommended that they rewrite it in the compiled templateles new
      framework.

      Move the old splitter classes into the deprecated module, along with
      their tests.

      Updated all tests to use the current splitter. The prior patches
      demonstrated backwards compatibility that these tests were still
      working with out changes, with the new interface.

      ]]>
    </Description>

    <!--**
    ** Sample code snippets
    ** Extracted from git diff of changed files in Examples and Testing
    **-->
    <SampleCode>
      <Old>
        #include "itkImageRegionMultidimensionalSplitter.h"

        itk::ImageRegionMultidimensionalSplitter&gt;2&lt;::Pointer splitter;
      </Old>

      <New>
        #include "itkImageRegionSplitterMultidimensional.h"

         itk::ImageRegionSplitterMultidimensional::Pointer splitter;
      </New>

    </SampleCode>

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

    <!--**
    ** List of all changed files from the topic branch
    **-->
    <FileList>
      Modules/Compatibility/Deprecated/include/itkImageRegionMultidimensionalSplitter.h
      Modules/Compatibility/Deprecated/include/itkImageRegionMultidimensionalSplitter.hxx
      Modules/Compatibility/Deprecated/include/itkImageRegionSplitter.h
      Modules/Compatibility/Deprecated/include/itkImageRegionSplitter.hxx
      Modules/Compatibility/Deprecated/test/CMakeLists.txt
      Modules/Compatibility/Deprecated/test/itkStreamingImageFilterTest.cxx
      Modules/Compatibility/Deprecated/test/itkStreamingImageFilterTest2.cxx
      Modules/Compatibility/Deprecated/test/itkStreamingImageFilterTest3.cxx
      Modules/Core/Common/include/itkImageRegionMultidimensionalSplitter.h
      Modules/Core/Common/include/itkImageRegionMultidimensionalSplitter.hxx
      Modules/Core/Common/include/itkImageRegionSplitter.h
      Modules/Core/Common/include/itkImageRegionSplitter.hxx
      Modules/Core/Common/include/itkStreamingImageFilter.hxx
      Modules/Core/Common/test/itkStreamingImageFilterTest2.cxx
      Modules/Core/Common/test/itkStreamingImageFilterTest3.cxx
      Modules/Core/Common/wrapping/itkImageRegionSplitter.wrap
      Modules/Filtering/ImageGrid/test/itkPasteImageFilterTest.cxx
      Modules/Nonunit/IntegratedTest/test/itkCommonPrintTest.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>
