4 #include <AnimaMCMExport.h>    30     virtual double GetFourierTransformedDiffusionProfile(
double smallDelta, 
double bigDelta, 
double gradientStrength, 
const Vector3DType &gradient) ITK_OVERRIDE;
    31     virtual ListType &GetSignalAttenuationJacobian(
double smallDelta, 
double bigDelta, 
double gradientStrength, 
const Vector3DType &gradient) ITK_OVERRIDE;
    32     virtual double GetLogDiffusionProfile(
const Vector3DType &sample) ITK_OVERRIDE;
    34     virtual void SetParametersFromVector(
const ListType ¶ms) ITK_OVERRIDE;
    35     virtual ListType &GetParametersAsVector() ITK_OVERRIDE;
    37     virtual ListType &GetParameterLowerBounds() ITK_OVERRIDE;
    38     virtual ListType &GetParameterUpperBounds() ITK_OVERRIDE;
    41     void SetEstimateOrientationConcentration(
bool arg);
    42     void SetEstimateAxialDiffusivity(
bool arg);
    43     void SetEstimateExtraAxonalFraction(
bool arg);
    45     void SetCompartmentVector(ModelOutputVectorType &compartmentVector) ITK_OVERRIDE;
    47     unsigned int GetCompartmentSize() ITK_OVERRIDE;
    48     unsigned int GetNumberOfParameters() ITK_OVERRIDE;
    49     ModelOutputVectorType &GetCompartmentVector() ITK_OVERRIDE;
    52     void SetOrientationTheta(
double num) ITK_OVERRIDE;
    53     void SetOrientationPhi(
double num) ITK_OVERRIDE;
    54     void SetOrientationConcentration(
double num) ITK_OVERRIDE;
    55     void SetExtraAxonalFraction(
double num) ITK_OVERRIDE;
    56     void SetAxialDiffusivity(
double num) ITK_OVERRIDE;
    59     const Matrix3DType &GetDiffusionTensor() ITK_OVERRIDE;
    60     double GetApparentFractionalAnisotropy() ITK_OVERRIDE;
    65         m_EstimateOrientationConcentration = 
true;
    66         m_EstimateAxialDiffusivity = 
true;
    67         m_EstimateExtraAxonalFraction = 
true;
    68         m_ChangedConstraints = 
true;
    70         m_ModifiedParameters = 
true;
    71         m_ModifiedConcentration = 
true;
    76         m_WatsonSHCoefficients.clear();
    77         m_WatsonSHCoefficientDerivatives.clear();
    79         m_IntraAxonalSignal = 0;
    80         m_IntraAngleDerivative = 0;
    81         m_IntraKappaDerivative = 0;
    82         m_IntraAxialDerivative = 0;
    83         m_ExtraAxonalSignal = 0;
    85         m_CurrentBValue = -1.0;
    86         m_CurrentGradient.fill(0.0);
    92     void UpdateSignals(
double bValue, 
const Vector3DType &gradient);
    95     void UpdateKappaValues();
    98     bool m_EstimateOrientationConcentration, m_EstimateAxialDiffusivity, m_EstimateExtraAxonalFraction;
    99     bool m_ChangedConstraints;
   100     unsigned int m_NumberOfParameters;
   103     bool m_ModifiedParameters;
   104     bool m_ModifiedConcentration;
   107     double m_CurrentBValue;
   108     Vector3DType m_CurrentGradient;
   111     std::vector <double> m_WatsonSHCoefficients, m_WatsonSHCoefficientDerivatives;
   112     double m_Tau1, m_Tau1Deriv;
   113     double m_ExtraAxonalSignal, m_IntraAxonalSignal;
   114     double m_IntraAngleDerivative, m_IntraKappaDerivative, m_IntraAxialDerivative;
 
std::vector< double > ListType
 
itk::VariableLengthVector< double > ModelOutputVectorType
 
bool GetTensorCompatible() ITK_OVERRIDE
 
itk::Matrix< double, 3, 3 > Matrix3DType
 
vnl_vector_fixed< double, 3 > Vector3DType
 
itk::SmartPointer< const Self > ConstPointer
 
DiffusionModelCompartmentType
 
Superclass::Vector3DType Vector3DType
 
itk::SmartPointer< Self > Pointer
 
virtual ~NODDICompartment()
 
Superclass::ModelOutputVectorType ModelOutputVectorType
 
itk::SmartPointer< Self > Pointer
 
Superclass::Pointer BasePointer
 
Superclass::Matrix3DType Matrix3DType
 
BaseCompartment Superclass