Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
mitkTwoStepLinearModel.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkTwoStepLinearModel_h
14 #define mitkTwoStepLinearModel_h
15 
16 #include "mitkModelBase.h"
17 
18 #include "MitkModelFitExports.h"
19 
20 namespace mitk
21 {
22 
24  {
25 
26  public:
31 
32  typedef Superclass::ParameterNameType ParameterNameType;
33  typedef Superclass::ParametersSizeType ParametersSizeType;
34 
36  itkFactorylessNewMacro(Self);
37  itkCloneMacro(Self);
38 
40  itkTypeMacro(TwoStepLinearModel, ModelBase)
41 
42  static const std::string NAME_PARAMETER_y0;
43  static const std::string NAME_PARAMETER_x0;
44  static const std::string NAME_PARAMETER_b0;
45  static const std::string NAME_PARAMETER_b1;
46 
47  static const unsigned int NUMBER_OF_PARAMETERS;
48 
49  static const std::string UNIT_PARAMETER_y0;
50  static const std::string UNIT_PARAMETER_x0;
51  static const std::string UNIT_PARAMETER_b0;
52  static const std::string UNIT_PARAMETER_b1;
53 
54  static const unsigned int POSITION_PARAMETER_y0;
55  static const unsigned int POSITION_PARAMETER_x0;
56  static const unsigned int POSITION_PARAMETER_b0;
57  static const unsigned int POSITION_PARAMETER_b1;
58 
59  static const std::string NAME_DERIVED_PARAMETER_auc;
60  static const std::string NAME_DERIVED_PARAMETER_y_fin;
61  static const std::string NAME_DERIVED_PARAMETER_y_max;
62  static const std::string NAME_DERIVED_PARAMETER_y1;
63 
64  static const unsigned int NUMBER_OF_DERIVED_PARAMETERS;
65 
66  static const std::string UNIT_DERIVED_PARAMETER_auc;
67  static const std::string UNIT_DERIVED_PARAMETER_y_fin;
68  static const std::string UNIT_DERIVED_PARAMETER_y_max;
69  static const std::string UNIT_DERIVED_PARAMETER_y1;
70 
71  static const unsigned int NUMBER_OF_STATIC_PARAMETERS;
72 
73  static const std::string MODEL_DISPLAY_NAME;
74 
75  static const std::string MODEL_TYPE;
76 
77  static const std::string FUNCTION_STRING;
78 
79  static const std::string X_NAME;
80 
81  static const std::string X_AXIS_NAME;
82 
83  static const std::string X_AXIS_UNIT;
84 
85  static const std::string Y_AXIS_NAME;
86 
87  static const std::string Y_AXIS_UNIT;
88 
89 
90  ParameterNamesType GetParameterNames() const override;
91 
92  ParametersSizeType GetNumberOfParameters() const override;
93 
94  ParamterUnitMapType GetParameterUnits() const override;
95 
96  ParameterNamesType GetDerivedParameterNames() const override;
97 
98  ParametersSizeType GetNumberOfDerivedParameters() const override;
99 
100  ParamterUnitMapType GetDerivedParameterUnits() const override;
101 
102  ParameterNamesType GetStaticParameterNames() const override;
103 
104  ParametersSizeType GetNumberOfStaticParameters() const override;
105 
106  std::string GetModelDisplayName() const override;
107 
108  std::string GetModelType() const override;
109 
110  FunctionStringType GetFunctionString() const override;
111 
112  std::string GetXName() const override;
113 
114  std::string GetXAxisName() const override;
115 
116  std::string GetXAxisUnit() const override;
117 
118  std::string GetYAxisName() const override;
119 
120  std::string GetYAxisUnit() const override;
121 
122 
123  protected:
125  virtual ~TwoStepLinearModel(){};
126 
127 
132  virtual itk::LightObject::Pointer InternalClone() const;
133 
134  virtual ModelResultType ComputeModelfunction(const ParametersType& parameters) const;
135  virtual DerivedParameterMapType ComputeDerivedParameters(const mitk::ModelBase::ParametersType&
136  parameters) const;
137 
138  virtual void SetStaticParameter(const ParameterNameType& name,
139  const StaticParameterValuesType& values);
140  virtual StaticParameterValuesType GetStaticParameterValue(const ParameterNameType& name) const;
141 
142  static double ComputeSignalFromParameters(double x, double t, double a1, double a2, double b1, double b2);
143 
144  private:
145 
146  //No copy constructor allowed
147  TwoStepLinearModel(const Self& source);
148  void operator=(const Self&); //purposely not implemented
149  };
150 }
151 
152 
153 #endif
mitk::ModelTraitsInterface::ParamterUnitMapType
std::map< ParameterNameType, std::string > ParamterUnitMapType
Definition: mitkModelTraitsInterface.h:40
mitk::TwoStepLinearModel::~TwoStepLinearModel
virtual ~TwoStepLinearModel()
Definition: mitkTwoStepLinearModel.h:125
mitk::TwoStepLinearModel::Superclass
mitk::ModelBase Superclass
Definition: mitkTwoStepLinearModel.h:28
mitk::ModelBase::ParameterNamesType
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:64
MitkModelFitExports.h
mitk::ModelBase::ParametersType
ModelTraitsInterface::ParametersType ParametersType
Definition: mitkModelBase.h:59
itk::SmartPointer< Self >
MITKMODELFIT_EXPORT
#define MITKMODELFIT_EXPORT
Definition: MitkModelFitExports.h:15
mitkModelBase.h
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::TwoStepLinearModel::Self
TwoStepLinearModel Self
Definition: mitkTwoStepLinearModel.h:27
mitk::TwoStepLinearModel::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: mitkTwoStepLinearModel.h:30
mitk::TwoStepLinearModel::ParametersSizeType
Superclass::ParametersSizeType ParametersSizeType
Definition: mitkTwoStepLinearModel.h:33
mitk::ModelTraitsInterface::FunctionStringType
std::string FunctionStringType
Definition: mitkModelTraitsInterface.h:44
mitk::TwoStepLinearModel::ParameterNameType
Superclass::ParameterNameType ParameterNameType
Definition: mitkTwoStepLinearModel.h:32
mitk::ModelBase::ParametersSizeType
ModelTraitsInterface::ParametersSizeType ParametersSizeType
Definition: mitkModelBase.h:65
mitk::TwoStepLinearModel
Definition: mitkTwoStepLinearModel.h:23
mitk::TwoStepLinearModel::Pointer
itk::SmartPointer< Self > Pointer
Definition: mitkTwoStepLinearModel.h:29
mitk::ModelBase
Base class for (dynamic) models. A model can be used to calculate its signal given the discrete time ...
Definition: mitkModelBase.h:47