// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void MultiEmmpmFilter::setupFilterParameters()
{
  FilterParameterVector parameters = getFilterParameters();

  parameters.push_back(BooleanFilterParameter::New("Use Mu/Sigma from Previous Image as Initialization for Current Image", "UsePreviousMuSigma", getUsePreviousMuSigma(), FilterParameter::Parameter));
  parameters.push_back(StringFilterParameter::New("Output Array Prefix", "OutputArrayPrefix", getOutputArrayPrefix(), FilterParameter::Parameter));


  for ( qint32 i = 0; i < parameters.size(); i++ )
  {
    FilterParameter::Pointer& p = parameters[i];
    if ( p->getPropertyName().compare("InputDataArrayPath") == 0 )
    {
      parameters[i] = MultiDataArraySelectionFilterParameter::New("Input Attribute Arrays", "InputDataArrayVector", getInputDataArrayVector(), FilterParameter::RequiredArray);
    }
  }

  // Look for the OutputDataArrayPath and replace with our OutputAttributeMatrixName instead
  for ( qint32 i = 0; i < parameters.size(); i++ )
  {
    FilterParameter::Pointer& p = parameters[i];
    if ( p->getPropertyName().compare("OutputDataArrayPath") == 0 )
    {
      parameters[i] = StringFilterParameter::New("Output Cell Attribute Matrix", "OutputAttributeMatrixName", getOutputAttributeMatrixName(), FilterParameter::CreatedArray);
    }
  }

  // Set the new parameters back into the class
  setFilterParameters(parameters);
}