4 #include <AnimaMCMBaseExport.h> 6 #include <itkLightObject.h> 7 #include <itkObjectFactory.h> 42 itk::LightObject::Pointer InternalClone() const ITK_OVERRIDE;
46 unsigned int GetNumberOfCompartments() {
return m_Compartments.size();}
47 itkGetMacro(NumberOfIsotropicCompartments,
unsigned int)
52 void SetParametersFromVector(
ListType ¶ms);
55 double GetCompartmentWeight(
unsigned int i);
56 void SetCompartmentWeights(
const ListType &weights);
60 void SetModelVector(
const itk::VariableLengthVector <float> &mcmVec);
63 double GetPredictedSignal(
double smallDelta,
double bigDelta,
double gradientStrength,
const Vector3DType &gradient);
64 ListType &GetSignalJacobian(
double smallDelta,
double bigDelta,
double gradientStrength,
const Vector3DType &gradient);
71 unsigned int GetNumberOfParameters();
74 unsigned int GetNumberOfOptimizedWeights();
77 unsigned int GetSize();
80 void Reorient(vnl_matrix <double> &orientationMatrix,
bool affineTransform);
83 itkGetMacro(OptimizeWeights,
bool)
85 void SetCommonDiffusivityParameters(
bool val) {m_CommonDiffusivityParameters = val;}
86 itkGetMacro(CommonDiffusivityParameters,
bool)
88 void SetCommonConcentrationParameters(
bool val) {m_CommonConcentrationParameters = val;}
89 itkGetMacro(CommonConcentrationParameters,
bool)
91 void SetCommonExtraAxonalFractionParameters(
bool val) {m_CommonExtraAxonalFractionParameters = val;}
92 itkGetMacro(CommonExtraAxonalFractionParameters,
bool)
94 void SetNegativeWeightBounds(
bool val) {m_NegativeWeightBounds = val;}
95 itkGetMacro(NegativeWeightBounds,
bool)
102 std::vector <BaseCompartmentPointer> m_Compartments;
105 bool m_OptimizeWeights;
106 bool m_CommonDiffusivityParameters;
107 bool m_CommonConcentrationParameters;
108 bool m_CommonExtraAxonalFractionParameters;
110 unsigned int m_NumberOfIsotropicCompartments;
113 bool m_NegativeWeightBounds;
125 ListType m_ParametersLowerBoundsVector;
128 ListType m_ParametersUpperBoundsVector;
BaseCompartment::Pointer BaseCompartmentPointer
BaseCompartment::ListType ListType
itk::SmartPointer< const Self > ConstPointer
MultiCompartmentModel Self
const ListType & GetCompartmentWeights()
void SetOptimizeWeights(bool val)
BaseCompartment::Vector3DType Vector3DType
itk::SmartPointer< Self > Pointer
MultiCompartmentModel: holds several diffusion compartments, ordered by type It also handles weights ...
BaseCompartment::ModelOutputVectorType ModelOutputVectorType
itk::LightObject Superclass