<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Change SYSTEM "https://itk.org/migrationv4/ITKMigration.dtd">
<!--***************************************************************************
**
** MoveGetSetLengthMeasurementVectorTraits.xml
**
** This file provides a sample of an ITKv4 Migration guide XML document. The
** goal of these documents is to encode all information about changes to the
** ITK API between the v3.X releases and v4.0. Each migration document consists
** of a single <Change> element and a set of associated child elements. The
** <Change> element has a set of required child elements and a set of
** additional optional child elements which can be used to automatically
** identify locations in user code where the API change will mandate updates.
** In the case of simple changes, these rules can be used to automatically fix
** user code with the migration tool.
**
** REQUIRED CHILD ELEMENTS:
**
**    - <Description>: English description of what changes were made along with
**      rational for making them.
**
**    - <SampleCode>: Code snippet either manually written or automatically
**      harvested from the patch's changes that illustrates how to update the
**      API from the old version to the new version. This element must contain
**      two child elements, <Old> and <New>. As their names suggest, these two
**      elements contain the snippets of old API code and new API code.
**
**    - <FileList>: A list of all files that were changed in association with
**      the API change. File names should be specified relative to the base
**      source directory for ITK.
**
**    - <Gerrit-ChangeId>: This element links the API change to the Gerrit
**      entry used to review the change.
**
** OPTIONAL CHILD ELEMENTS:
**
**    - <ApplicationFixLink>: A link to git changes made when fixing
**      sequestered applications that broke due to the API change.
**
**    - <MigrationFix-Automatic>: A rule for the migration tool that can
**      automatically fix errors in user code. The current list of automatic
**      fix types is:
**
**      - "FileRename": Find and replace the file name with the new one. Must
**        include <Old> and <New> child elements.
**
**      - "ClassRename": Find and replace the name of a class. Must include
**        <Old> and <New> child elements.
**
**      - "ClassMove": Include the new location of the class. Must include
**        <Old> and <New> child elements. Will warn the user that the old
**        include file may be able to be removed but will not automatically
**        remove it.
**
**      - "MethodRename": Find and replace the name of the method. Must include
**        <Old> and <New> child elements.
**
**      - "MethodMove": Find and replace the name of a method. Only works if
**        the method's signature hasn't changed. Must include <Old> and <New>
**        child elements.
**
**      - "NamespaceChange": Find object from the old namespace and update its
**        namespace. This may not fix instances where "using namespace" is used
**        so the migration tool should warn the user wherever the object's
**        signature is found without a namespace attached. Must include <Old>
**        and <New> child elements.
**
**    - <MigrationFix-Manual>: A rule for the migration tool that can not be
**      automatcally fixed, but can be automatically identified. These rules
**      will cause the migration tool to flag a section of the code for
**      revision. The current type list is:
**
**      - "MethodRefactor": Flag the user anywhere the changed method is
**        called. Should be used any time a method's signature changes. Must
**        include an <Old> child element.
**
**      - "GeneralRefactor": Flag the user anywhere that the text specified in
**        the <Old> child element is found.
**
****************************************************************************-->

<Change>
  <!--**
  ** Title for the online migration page
  **-->
  <Title>
    Move Get Set Length Measurement Vector Traits
  </Title>
  <!--
  ** English language description of what was changed and why
  **-->
  <Description>
  In an attempt to consolidate the numeric traits api, we are moving all
  functionality from Code/Numerics/Statistics/itkMeasurementVectorTraits.h into
  the individual NumericTraits files in Code/Common.
  </Description>

  <!--
  ** Sample code to illustrate the fix process
  **-->
  <SampleCode>
    <Old>
    MeasurementVectorType mv;
    MeasurementVectorTraits::SetLength( mv, 3 );
    unsigned int length = MeasurementVectorTraits::GetLength( mv );
    </Old>

    <New>
    <![CDATA[
    MeasurementVectorType mv;
    NumericTraits<MeasurementVectorType>::SetLength( mv, 3 );
    unsigned int length = NumericTraits<MeasurementVectorType>::GetLength( mv );
    ]]>
    </New>
  </SampleCode>

  <!--
  ** The asociated Gerrit entry for this API change
  **-->
  <Gerrit-ChangeId>
  Ie78170c85c29a5d030e5ab605610878fe67d75c2
  </Gerrit-ChangeId>

  <!--
  ** List of all files that were changed (might be automatically populated by
  ** git hook?)
  **-->
  <FileList>
  Code/Common/itkNumericTraitsArrayPixel.h
  Code/Common/itkNumericTraitsCovariantVectorPixel.h
  Code/Common/itkNumericTraitsDiffusionTensor3DPixel.h
  Code/Common/itkNumericTraitsFixedArrayPixel.h
  Code/Common/itkNumericTraitsPointPixel.h
  Code/Common/itkNumericTraitsRGBAPixel.h
  Code/Common/itkNumericTraitsRGBPixel.h
  Code/Common/itkNumericTraitsStdVector.h
  Code/Common/itkNumericTraitsTensorPixel.h
  Code/Common/itkNumericTraitsVariableLengthVectorPixel.h
  Code/Common/itkNumericTraitsVectorPixel.h
  Code/Numerics/Statistics/itkCovarianceSampleFilter.txx
  Code/Numerics/Statistics/itkDistanceMetric.h
  Code/Numerics/Statistics/itkDistanceMetric.txx
  Code/Numerics/Statistics/itkEuclideanDistanceMetric.txx
  Code/Numerics/Statistics/itkEuclideanSquareDistanceMetric.txx
  Code/Numerics/Statistics/itkExpectationMaximizationMixtureModelEstimator.txx
  Code/Numerics/Statistics/itkGaussianMembershipFunction.txx
  Code/Numerics/Statistics/itkGaussianMixtureModelComponent.txx
  Code/Numerics/Statistics/itkImageToListSampleFilter.txx
  Code/Numerics/Statistics/itkKdTree.txx
  Code/Numerics/Statistics/itkKdTreeBasedKmeansEstimator.h
  Code/Numerics/Statistics/itkKdTreeBasedKmeansEstimator.txx
  Code/Numerics/Statistics/itkKdTreeGenerator.txx
  Code/Numerics/Statistics/itkListSample.txx
  Code/Numerics/Statistics/itkMahalanobisDistanceMetric.txx
  Code/Numerics/Statistics/itkManhattanDistanceMetric.txx
  Code/Numerics/Statistics/itkMeasurementVectorTraits.h
  Code/Numerics/Statistics/itkMembershipFunctionBase.h
  Code/Numerics/Statistics/itkSample.h
  Code/Numerics/Statistics/itkSampleToHistogramFilter.txx
  Code/Numerics/Statistics/itkScalarImageToHistogramGenerator.txx
  Code/Numerics/Statistics/itkStandardDeviationPerComponentSampleFilter.txx
  Code/Numerics/Statistics/itkStatisticsAlgorithm.txx
  Code/Numerics/Statistics/itkWeightedCentroidKdTreeGenerator.txx
  Code/Numerics/Statistics/itkWeightedCovarianceSampleFilter.txx
  Testing/Code/Numerics/Statistics/CMakeLists.txt
  Testing/Code/Numerics/Statistics/itkDistanceToCentroidMembershipFunctionTest.cxx
  Testing/Code/Numerics/Statistics/itkEuclideanDistanceMetricTest.cxx
  Testing/Code/Numerics/Statistics/itkEuclideanSquareDistanceMetricTest.cxx
  Testing/Code/Numerics/Statistics/itkGaussianMembershipFunctionTest.cxx
  Testing/Code/Numerics/Statistics/itkListSampleTest.cxx
  Testing/Code/Numerics/Statistics/itkMahalanobisDistanceMetricTest.cxx
  Testing/Code/Numerics/Statistics/itkManhattanDistanceMetricTest.cxx
  Testing/Code/Numerics/Statistics/itkMembershipSampleTest1.cxx
  Testing/Code/Numerics/Statistics/itkMembershipSampleTest2.cxx
  Testing/Code/Numerics/Statistics/itkMembershipSampleTest3.cxx
  Testing/Code/Numerics/Statistics/itkMembershipSampleTest4.cxx
  Testing/Code/Numerics/Statistics/itkSampleClassifierFilterTest1.cxx
  Testing/Code/Numerics/Statistics/itkSampleClassifierFilterTest2.cxx
  Testing/Code/Numerics/Statistics/itkSampleClassifierFilterTest3.cxx
  Testing/Code/Numerics/Statistics/itkSampleClassifierFilterTest4.cxx
  Testing/Code/Numerics/Statistics/itkSampleClassifierFilterTest5.cxx
  Testing/Code/Numerics/Statistics/itkSampleClassifierFilterTest6.cxx
  Testing/Code/Numerics/Statistics/itkStatisticsTests.cxx
  Testing/Code/Numerics/Statistics/itkWeightedCentroidKdTreeGeneratorTest8.cxx
  Testing/Code/Numerics/Statistics/itkWeightedCentroidKdTreeGeneratorTest9.cxx
  Testing/Code/Numerics/Statistics/itkWeightedCovarianceSampleFilterTest2.cxx
  </FileList>



  <!--
  ** Migration guide rules
  **-->
  <MigrationFix-Manual>
    <Old>
    MeasurementVectorTraits::GetLength
    </Old>
    <New></New>
  </MigrationFix-Manual>

  <MigrationFix-Manual >
    <Old>
    MeasurementVectorTraits::SetLength
    </Old>
    <New></New>
  </MigrationFix-Manual>


</Change>
