# -*- coding: utf-8 -*-
# -*- coding: utf8 -*-
"""Autogenerated file - DO NOT EDIT
If you spot a bug, please report it on the mailing list and/or change the generator."""

import os

from ...base import (CommandLine, CommandLineInputSpec, SEMLikeCommandLine,
                     TraitedSpec, File, Directory, traits, isdefined,
                     InputMultiPath, OutputMultiPath)


class maxcurvatureInputSpec(CommandLineInputSpec):
    image = File(desc="FA Image", exists=True, argstr="--image %s")
    output = traits.Either(
        traits.Bool,
        File(),
        hash_files=False,
        desc="Output File",
        argstr="--output %s")
    sigma = traits.Float(desc="Scale of Gradients", argstr="--sigma %f")
    verbose = traits.Bool(desc="produce verbose output", argstr="--verbose ")


class maxcurvatureOutputSpec(TraitedSpec):
    output = File(desc="Output File", exists=True)


class maxcurvature(SEMLikeCommandLine):
    """title: MaxCurvature-Hessian (DTIProcess)

category: Diffusion

description: This program computes the Hessian of the FA image (--image). We use this scalar image as a registration input when doing DTI atlas building. For most adult FA we use a sigma of 2 whereas for neonate or primate images and sigma of 1 or 1.5 is more appropriate. For really noisy images, 2.5 - 4 can be considered. The final image (--output) shows the main feature of the input image.

version: 1.1.0

documentation-url: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/DTIProcess

license: Copyright (c)  Casey Goodlett. All rights reserved.
  See http://www.ia.unc.edu/dev/Copyright.htm for details.
     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notices for more information.

contributor: Casey Goodlett

acknowledgements: Hans Johnson(1,3,4); Kent Williams(1); (1=University of Iowa Department of Psychiatry, 3=University of Iowa Department of Biomedical Engineering, 4=University of Iowa Department of Electrical and Computer Engineering) provided conversions to make DTIProcess compatible with Slicer execution, and simplified the stand-alone build requirements by removing the dependancies on boost and a fortran compiler.

"""

    input_spec = maxcurvatureInputSpec
    output_spec = maxcurvatureOutputSpec
    _cmd = " maxcurvature "
    _outputs_filenames = {'output': 'output.nii'}
    _redirect_x = False
