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

<!--**
**
** ChangeConstnessOfUpdateTransformParameters.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>
      Change Constness Of itk::Transform::UpdateTransformParameters
    </Title>

    <!--**
    ** The author of the change
    **-->
    <Author>
      Michael Stauffer
    </Author>

    <!--**
    ** Date of creation for the XML document
    **-->
    <Date>
      2012-06-26
    </Date>

    <!--**
    ** Plain text description of the change
    ** Extracted from git commit messages
    **-->
    <Description>
      <![CDATA[
      Change 1st parameter ('update') of UpdateTransformParameters to const.

      Change Transform::UpdateTransformParameters,
      ObjectToObjectMetricBase::UpdateTransformParameters, and
      overrides in derived classes.

      The vast majority of code is unaffected. Only user-derived classes that
      override UpdateTransformParameters and modify the first parameter or pass
      it as a non-const parameter will need updating.

      ]]>
    </Description>

    <!--**
    ** Sample code snippets
    ** Extracted from git diff of changed files in Examples and Testing
    **-->
    <SampleCode>
      <Old>
        <![CDATA[
        void MyTransform::UpdateTransformParameters( DerivativeType & update, ScalarType factor = 1.0 );
        ]]>
      </Old>

      <New>
        <![CDATA[
        void MyTransform::UpdateTransformParameters( const DerivativeType & update, ScalarType factor = 1.0 );
        ]]>
      </New>

    </SampleCode>

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

    <!--**
    ** List of all changed files from the topic branch
    **-->
    <FileList>
      Modules/Core/Transform/include/itkBSplineBaseTransform.h
      Modules/Core/Transform/include/itkBSplineBaseTransform.hxx
      Modules/Core/Transform/include/itkCompositeTransform.h
      Modules/Core/Transform/include/itkCompositeTransform.hxx
      Modules/Core/Transform/include/itkTransform.h
      Modules/Core/Transform/include/itkTransform.hxx
      Modules/Filtering/DisplacementField/include/itkBSplineSmoothingOnUpdateDisplacementFieldTransform.h
      Modules/Filtering/DisplacementField/include/itkBSplineSmoothingOnUpdateDisplacementFieldTransform.hxx
      Modules/Filtering/DisplacementField/include/itkDisplacementFieldTransform.h
      Modules/Filtering/DisplacementField/include/itkDisplacementFieldTransform.hxx
      Modules/Filtering/DisplacementField/include/itkGaussianSmoothingOnUpdateDisplacementFieldTransform.h
      Modules/Filtering/DisplacementField/include/itkGaussianSmoothingOnUpdateDisplacementFieldTransform.hxx
      Modules/Filtering/DisplacementField/include/itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.h
      Modules/Filtering/DisplacementField/include/itkGaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform.hxx
      Modules/Filtering/DisplacementField/include/itkTimeVaryingBSplineVelocityFieldTransform.h
      Modules/Filtering/DisplacementField/include/itkTimeVaryingBSplineVelocityFieldTransform.hxx
      Modules/Filtering/DisplacementField/include/itkTimeVaryingVelocityFieldTransform.h
      Modules/Filtering/DisplacementField/include/itkTimeVaryingVelocityFieldTransform.hxx
      Modules/Numerics/Optimizersv4/include/itkObjectToObjectMetric.h
      Modules/Numerics/Optimizersv4/include/itkObjectToObjectMetric.hxx
      Modules/Numerics/Optimizersv4/include/itkObjectToObjectMetricBase.h
      Modules/Numerics/Optimizersv4/test/itkConjugateGradientLineSearchOptimizerv4Test.cxx
      Modules/Numerics/Optimizersv4/test/itkGradientDescentLineSearchOptimizerv4Test.cxx
      Modules/Numerics/Optimizersv4/test/itkGradientDescentOptimizerBasev4Test.cxx
      Modules/Numerics/Optimizersv4/test/itkGradientDescentOptimizerv4Test.cxx
      Modules/Numerics/Optimizersv4/test/itkGradientDescentOptimizerv4Test2.cxx
      Modules/Numerics/Optimizersv4/test/itkMultiGradientOptimizerv4Test.cxx
      Modules/Numerics/Optimizersv4/test/itkMultiStartOptimizerv4Test.cxx
      Modules/Numerics/Optimizersv4/test/itkObjectToObjectMetricBaseTest.cxx
      Modules/Numerics/Optimizersv4/test/itkObjectToObjectOptimizerBaseTest.cxx
      Modules/Numerics/Optimizersv4/test/itkRegistrationParameterScalesEstimatorTest.cxx
      Modules/Numerics/Optimizersv4/test/itkRegistrationParameterScalesFromIndexShiftTest.cxx
      Modules/Numerics/Optimizersv4/test/itkRegistrationParameterScalesFromJacobianTest.cxx
      Modules/Numerics/Optimizersv4/test/itkRegistrationParameterScalesFromPhysicalShiftTest.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>
       <Old>
         <![CDATA[UpdateTransformParameters( DerivativeType]]>
       </Old>
       <New>
         <![CDATA[UpdateTransformParameters( const DerivativeType]]>
       </New>
    </MigrationFix-Manual>


</Change>
