Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
mitkThreeStepLinearModel.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 mitkThreeStepLinearModel_h
14 #define mitkThreeStepLinearModel_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 
41 
42  static const std::string NAME_PARAMETER_y_bl;
43  static const std::string NAME_PARAMETER_x0;
44  static const std::string NAME_PARAMETER_x1;
45  static const std::string NAME_PARAMETER_b0;
46  static const std::string NAME_PARAMETER_b1;
47 
48  static const unsigned int NUMBER_OF_PARAMETERS;
49 
50  static const std::string UNIT_PARAMETER_y_bl;
51  static const std::string UNIT_PARAMETER_x0;
52  static const std::string UNIT_PARAMETER_x1;
53  static const std::string UNIT_PARAMETER_b0;
54  static const std::string UNIT_PARAMETER_b1;
55 
56  static const unsigned int POSITION_PARAMETER_y_bl;
57  static const unsigned int POSITION_PARAMETER_x0;
58  static const unsigned int POSITION_PARAMETER_x1;
59  static const unsigned int POSITION_PARAMETER_b0;
60  static const unsigned int POSITION_PARAMETER_b1;
61 
62  static const std::string NAME_DERIVED_PARAMETER_auc;
63  static const std::string NAME_DERIVED_PARAMETER_x_fin;
64  static const std::string NAME_DERIVED_PARAMETER_y_fin;
65  static const std::string NAME_DERIVED_PARAMETER_y_max;
66  static const std::string NAME_DERIVED_PARAMETER_y1;
67  static const std::string NAME_DERIVED_PARAMETER_y2;
68 
69  static const unsigned int NUMBER_OF_DERIVED_PARAMETERS;
70 
71  static const std::string UNIT_DERIVED_PARAMETER_auc;
72  static const std::string UNIT_DERIVED_PARAMETER_x_fin;
73  static const std::string UNIT_DERIVED_PARAMETER_y_fin;
74  static const std::string UNIT_DERIVED_PARAMETER_y_max;
75  static const std::string UNIT_DERIVED_PARAMETER_y1;
76  static const std::string UNIT_DERIVED_PARAMETER_y2;
77 
78  static const unsigned int NUMBER_OF_STATIC_PARAMETERS;
79 
80  static const std::string MODEL_DISPLAY_NAME;
81 
82  static const std::string MODEL_TYPE;
83 
84  static const std::string FUNCTION_STRING;
85 
86  static const std::string X_NAME;
87 
88  static const std::string X_AXIS_NAME;
89 
90  static const std::string X_AXIS_UNIT;
91 
92  static const std::string Y_AXIS_NAME;
93 
94  static const std::string Y_AXIS_UNIT;
95 
96  ParameterNamesType GetParameterNames() const override;
97 
98  ParametersSizeType GetNumberOfParameters() const override;
99 
100  ParamterUnitMapType GetParameterUnits() const override;
101 
102  ParameterNamesType GetDerivedParameterNames() const override;
103 
104  ParametersSizeType GetNumberOfDerivedParameters() const override;
105 
106  ParamterUnitMapType GetDerivedParameterUnits() const override;
107 
108  ParameterNamesType GetStaticParameterNames() const override;
109 
110  ParametersSizeType GetNumberOfStaticParameters() const override;
111 
112  std::string GetModelDisplayName() const override;
113 
114  std::string GetModelType() const override;
115 
116  FunctionStringType GetFunctionString() const override;
117 
118  std::string GetXName() const override;
119 
120  std::string GetXAxisName() const override;
121 
122  std::string GetXAxisUnit() const override;
123 
124  std::string GetYAxisName() const override;
125 
126  std::string GetYAxisUnit() const override;
127 
128 
129  protected:
131  ~ThreeStepLinearModel() override{};
132 
133 
138  itk::LightObject::Pointer InternalClone() const override;
139 
140  ModelResultType ComputeModelfunction(const ParametersType& parameters) const override;
141  DerivedParameterMapType ComputeDerivedParameters(const mitk::ModelBase::ParametersType&
142  parameters) const override;
143 
144  void SetStaticParameter(const ParameterNameType& name,
145  const StaticParameterValuesType& values) override;
146  StaticParameterValuesType GetStaticParameterValue(const ParameterNameType& name) const override;
147 
148  static double ComputeSignalFromParameters(double x, double s0, double t1, double t2, double a1, double a2, double b1, double b2);
149 
150  private:
151 
152  //No copy constructor allowed
153  ThreeStepLinearModel(const Self& source);
154  void operator=(const Self&); //purposely not implemented
155 
156  };
157 }
158 
159 
160 #endif
mitk::ModelTraitsInterface::ParamterUnitMapType
std::map< ParameterNameType, std::string > ParamterUnitMapType
Definition: mitkModelTraitsInterface.h:40
mitk::ThreeStepLinearModel::NAME_PARAMETER_x1
static const std::string NAME_PARAMETER_x1
Definition: mitkThreeStepLinearModel.h:44
mitk::ThreeStepLinearModel::Pointer
itk::SmartPointer< Self > Pointer
Definition: mitkThreeStepLinearModel.h:29
mitk::ThreeStepLinearModel::UNIT_DERIVED_PARAMETER_y2
static const std::string UNIT_DERIVED_PARAMETER_y2
Definition: mitkThreeStepLinearModel.h:76
mitk::ThreeStepLinearModel::ParametersSizeType
Superclass::ParametersSizeType ParametersSizeType
Definition: mitkThreeStepLinearModel.h:33
mitk::ThreeStepLinearModel::UNIT_DERIVED_PARAMETER_y_fin
static const std::string UNIT_DERIVED_PARAMETER_y_fin
Definition: mitkThreeStepLinearModel.h:73
mitk::ModelBase::ParameterNamesType
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:64
mitk::ThreeStepLinearModel::NAME_DERIVED_PARAMETER_y_max
static const std::string NAME_DERIVED_PARAMETER_y_max
Definition: mitkThreeStepLinearModel.h:65
mitk::ThreeStepLinearModel::UNIT_PARAMETER_x1
static const std::string UNIT_PARAMETER_x1
Definition: mitkThreeStepLinearModel.h:52
MitkModelFitExports.h
mitk::ThreeStepLinearModel::NUMBER_OF_PARAMETERS
static const unsigned int NUMBER_OF_PARAMETERS
Definition: mitkThreeStepLinearModel.h:48
mitk::ThreeStepLinearModel::~ThreeStepLinearModel
~ThreeStepLinearModel() override
Definition: mitkThreeStepLinearModel.h:131
mitk::ThreeStepLinearModel::MODEL_DISPLAY_NAME
static const std::string MODEL_DISPLAY_NAME
Definition: mitkThreeStepLinearModel.h:80
mitk::ThreeStepLinearModel::NUMBER_OF_DERIVED_PARAMETERS
static const unsigned int NUMBER_OF_DERIVED_PARAMETERS
Definition: mitkThreeStepLinearModel.h:69
mitk::ThreeStepLinearModel::UNIT_DERIVED_PARAMETER_y_max
static const std::string UNIT_DERIVED_PARAMETER_y_max
Definition: mitkThreeStepLinearModel.h:74
mitk::ModelBase::ParametersType
ModelTraitsInterface::ParametersType ParametersType
Definition: mitkModelBase.h:59
mitk::ThreeStepLinearModel::Y_AXIS_UNIT
static const std::string Y_AXIS_UNIT
Definition: mitkThreeStepLinearModel.h:94
mitk::ThreeStepLinearModel::Self
ThreeStepLinearModel Self
Definition: mitkThreeStepLinearModel.h:27
itk::SmartPointer< Self >
mitk::ThreeStepLinearModel::ThreeStepLinearModel
ThreeStepLinearModel()
Definition: mitkThreeStepLinearModel.h:130
mitk::ThreeStepLinearModel::NAME_PARAMETER_x0
static const std::string NAME_PARAMETER_x0
Definition: mitkThreeStepLinearModel.h:43
mitk::ThreeStepLinearModel::UNIT_PARAMETER_x0
static const std::string UNIT_PARAMETER_x0
Definition: mitkThreeStepLinearModel.h:51
mitk::ThreeStepLinearModel::Y_AXIS_NAME
static const std::string Y_AXIS_NAME
Definition: mitkThreeStepLinearModel.h:92
MITKMODELFIT_EXPORT
#define MITKMODELFIT_EXPORT
Definition: MitkModelFitExports.h:15
mitk::ThreeStepLinearModel::POSITION_PARAMETER_x0
static const unsigned int POSITION_PARAMETER_x0
Definition: mitkThreeStepLinearModel.h:57
mitkModelBase.h
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::ThreeStepLinearModel::NAME_PARAMETER_y_bl
static const std::string NAME_PARAMETER_y_bl
Definition: mitkThreeStepLinearModel.h:40
mitk::ThreeStepLinearModel::POSITION_PARAMETER_b1
static const unsigned int POSITION_PARAMETER_b1
Definition: mitkThreeStepLinearModel.h:60
mitk::ThreeStepLinearModel::NAME_DERIVED_PARAMETER_x_fin
static const std::string NAME_DERIVED_PARAMETER_x_fin
Definition: mitkThreeStepLinearModel.h:63
mitk::ThreeStepLinearModel::X_AXIS_UNIT
static const std::string X_AXIS_UNIT
Definition: mitkThreeStepLinearModel.h:90
mitk::ThreeStepLinearModel::MODEL_TYPE
static const std::string MODEL_TYPE
Definition: mitkThreeStepLinearModel.h:82
mitk::ThreeStepLinearModel::Superclass
mitk::ModelBase Superclass
Definition: mitkThreeStepLinearModel.h:28
mitk::ThreeStepLinearModel::NUMBER_OF_STATIC_PARAMETERS
static const unsigned int NUMBER_OF_STATIC_PARAMETERS
Definition: mitkThreeStepLinearModel.h:78
mitk::ThreeStepLinearModel::NAME_DERIVED_PARAMETER_y2
static const std::string NAME_DERIVED_PARAMETER_y2
Definition: mitkThreeStepLinearModel.h:67
mitk::ThreeStepLinearModel
Definition: mitkThreeStepLinearModel.h:23
mitk::ThreeStepLinearModel::UNIT_PARAMETER_b0
static const std::string UNIT_PARAMETER_b0
Definition: mitkThreeStepLinearModel.h:53
mitk::ThreeStepLinearModel::NAME_DERIVED_PARAMETER_y1
static const std::string NAME_DERIVED_PARAMETER_y1
Definition: mitkThreeStepLinearModel.h:66
mitk::ThreeStepLinearModel::UNIT_DERIVED_PARAMETER_y1
static const std::string UNIT_DERIVED_PARAMETER_y1
Definition: mitkThreeStepLinearModel.h:75
mitk::ThreeStepLinearModel::ParameterNameType
Superclass::ParameterNameType ParameterNameType
Definition: mitkThreeStepLinearModel.h:32
mitk::ThreeStepLinearModel::UNIT_DERIVED_PARAMETER_auc
static const std::string UNIT_DERIVED_PARAMETER_auc
Definition: mitkThreeStepLinearModel.h:71
mitk::ModelTraitsInterface::FunctionStringType
std::string FunctionStringType
Definition: mitkModelTraitsInterface.h:44
mitk::ThreeStepLinearModel::X_AXIS_NAME
static const std::string X_AXIS_NAME
Definition: mitkThreeStepLinearModel.h:88
mitk::ThreeStepLinearModel::NAME_DERIVED_PARAMETER_y_fin
static const std::string NAME_DERIVED_PARAMETER_y_fin
Definition: mitkThreeStepLinearModel.h:64
mitk::ThreeStepLinearModel::NAME_PARAMETER_b1
static const std::string NAME_PARAMETER_b1
Definition: mitkThreeStepLinearModel.h:46
mitk::ModelBase::ParametersSizeType
ModelTraitsInterface::ParametersSizeType ParametersSizeType
Definition: mitkModelBase.h:65
mitk::ThreeStepLinearModel::UNIT_PARAMETER_b1
static const std::string UNIT_PARAMETER_b1
Definition: mitkThreeStepLinearModel.h:54
mitk::ThreeStepLinearModel::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: mitkThreeStepLinearModel.h:30
mitk::ThreeStepLinearModel::POSITION_PARAMETER_y_bl
static const unsigned int POSITION_PARAMETER_y_bl
Definition: mitkThreeStepLinearModel.h:56
mitk::ModelBase
Base class for (dynamic) models. A model can be used to calculate its signal given the discrete time ...
Definition: mitkModelBase.h:47
mitk::ThreeStepLinearModel::NAME_PARAMETER_b0
static const std::string NAME_PARAMETER_b0
Definition: mitkThreeStepLinearModel.h:45
mitk::ThreeStepLinearModel::UNIT_DERIVED_PARAMETER_x_fin
static const std::string UNIT_DERIVED_PARAMETER_x_fin
Definition: mitkThreeStepLinearModel.h:72
mitk::ThreeStepLinearModel::X_NAME
static const std::string X_NAME
Definition: mitkThreeStepLinearModel.h:86
mitk::ThreeStepLinearModel::POSITION_PARAMETER_x1
static const unsigned int POSITION_PARAMETER_x1
Definition: mitkThreeStepLinearModel.h:58
mitk::ThreeStepLinearModel::UNIT_PARAMETER_y_bl
static const std::string UNIT_PARAMETER_y_bl
Definition: mitkThreeStepLinearModel.h:50
mitk::ThreeStepLinearModel::FUNCTION_STRING
static const std::string FUNCTION_STRING
Definition: mitkThreeStepLinearModel.h:84
mitk::ThreeStepLinearModel::POSITION_PARAMETER_b0
static const unsigned int POSITION_PARAMETER_b0
Definition: mitkThreeStepLinearModel.h:59
mitk::ThreeStepLinearModel::NAME_DERIVED_PARAMETER_auc
static const std::string NAME_DERIVED_PARAMETER_auc
Definition: mitkThreeStepLinearModel.h:62