Medical Imaging Interaction Toolkit  2026.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 
35  {
36 
37  public:
42 
43  typedef Superclass::ParameterNameType ParameterNameType;
44  typedef Superclass::ParametersSizeType ParametersSizeType;
45 
47  itkFactorylessNewMacro(Self);
48  itkCloneMacro(Self);
49 
52 
53  static const std::string NAME_PARAMETER_y_bl;
54  static const std::string NAME_PARAMETER_x0;
55  static const std::string NAME_PARAMETER_x1;
56  static const std::string NAME_PARAMETER_b0;
57  static const std::string NAME_PARAMETER_b1;
58 
59  static const unsigned int NUMBER_OF_PARAMETERS;
60 
61  static const std::string UNIT_PARAMETER_y_bl;
62  static const std::string UNIT_PARAMETER_x0;
63  static const std::string UNIT_PARAMETER_x1;
64  static const std::string UNIT_PARAMETER_b0;
65  static const std::string UNIT_PARAMETER_b1;
66 
67  static const unsigned int POSITION_PARAMETER_y_bl;
68  static const unsigned int POSITION_PARAMETER_x0;
69  static const unsigned int POSITION_PARAMETER_x1;
70  static const unsigned int POSITION_PARAMETER_b0;
71  static const unsigned int POSITION_PARAMETER_b1;
72 
73  static const std::string NAME_DERIVED_PARAMETER_auc;
74  static const std::string NAME_DERIVED_PARAMETER_x_fin;
75  static const std::string NAME_DERIVED_PARAMETER_y_fin;
76  static const std::string NAME_DERIVED_PARAMETER_y_max;
77  static const std::string NAME_DERIVED_PARAMETER_y1;
78  static const std::string NAME_DERIVED_PARAMETER_y2;
79 
80  static const unsigned int NUMBER_OF_DERIVED_PARAMETERS;
81 
82  static const std::string UNIT_DERIVED_PARAMETER_auc;
83  static const std::string UNIT_DERIVED_PARAMETER_x_fin;
84  static const std::string UNIT_DERIVED_PARAMETER_y_fin;
85  static const std::string UNIT_DERIVED_PARAMETER_y_max;
86  static const std::string UNIT_DERIVED_PARAMETER_y1;
87  static const std::string UNIT_DERIVED_PARAMETER_y2;
88 
89  static const unsigned int NUMBER_OF_STATIC_PARAMETERS;
90 
91  static const std::string MODEL_DISPLAY_NAME;
92 
93  static const std::string MODEL_TYPE;
94 
95  static const std::string FUNCTION_STRING;
96 
97  static const std::string X_NAME;
98 
99  static const std::string X_AXIS_NAME;
100 
101  static const std::string X_AXIS_UNIT;
102 
103  static const std::string Y_AXIS_NAME;
104 
105  static const std::string Y_AXIS_UNIT;
106 
108 
110 
112 
114 
116 
118 
120 
122 
123  std::string GetModelDisplayName() const override;
124 
125  std::string GetModelType() const override;
126 
128 
129  std::string GetXName() const override;
130 
131  std::string GetXAxisName() const override;
132 
133  std::string GetXAxisUnit() const override;
134 
135  std::string GetYAxisName() const override;
136 
137  std::string GetYAxisUnit() const override;
138 
139 
140  protected:
142  ~ThreeStepLinearModel() override{};
143 
145 
147 
148  ModelResultType ComputeModelfunction(const ParametersType& parameters) const override;
150  parameters) const override;
151 
153  const StaticParameterValuesType& values) override;
155 
156  static double ComputeSignalFromParameters(double x, double s0, double t1, double t2, double a1, double a2, double b1, double b2);
157 
158  private:
159 
160  void operator=(const Self&); //purposely not implemented
161 
162  };
163 }
164 
165 
166 #endif
#define MITKMODELFIT_EXPORT
Base class for (dynamic) models.
Definition: mitkModelBase.h:56
ModelTraitsInterface::ParametersSizeType ParametersSizeType
Definition: mitkModelBase.h:73
ModelTraitsInterface::ParameterNamesType ParameterNamesType
Definition: mitkModelBase.h:72
std::map< ParameterNameType, DerivedParameterValueType > DerivedParameterMapType
Definition: mitkModelBase.h:83
std::vector< StaticParameterValueType > StaticParameterValuesType
Definition: mitkModelBase.h:79
ModelTraitsInterface::ParameterNameType ParameterNameType
Definition: mitkModelBase.h:71
ModelTraitsInterface::ModelResultType ModelResultType
Definition: mitkModelBase.h:63
ModelTraitsInterface::ParametersType ParametersType
Definition: mitkModelBase.h:67
std::string FunctionStringType
Type for the function string representation of the model.
std::map< ParameterNameType, std::string > ParamterUnitMapType
Map type associating parameter names to their unit strings.
Piecewise linear model with three segments and two transition points.
static const std::string NAME_DERIVED_PARAMETER_x_fin
static const unsigned int NUMBER_OF_DERIVED_PARAMETERS
static const std::string UNIT_PARAMETER_x1
static const unsigned int POSITION_PARAMETER_b0
static const std::string MODEL_TYPE
static const unsigned int NUMBER_OF_PARAMETERS
static const std::string NAME_PARAMETER_b1
ParamterUnitMapType GetDerivedParameterUnits() const override
Default implementation returns no unit string ("") for every defined derived parameter.
static const std::string MODEL_DISPLAY_NAME
static const std::string UNIT_PARAMETER_y_bl
static double ComputeSignalFromParameters(double x, double s0, double t1, double t2, double a1, double a2, double b1, double b2)
std::string GetModelDisplayName() const override
Default implementation returns GetClassID as display name.
static const std::string UNIT_PARAMETER_b0
itk::SmartPointer< Self > Pointer
static const unsigned int POSITION_PARAMETER_x1
std::string GetXAxisName() const override
Default implementation returns an empty string.
static const std::string NAME_PARAMETER_x0
ParameterNamesType GetStaticParameterNames() const override
Returns the names of static parameters used when computing the signal.
static const std::string UNIT_PARAMETER_b1
static const std::string NAME_PARAMETER_b0
static const unsigned int NUMBER_OF_STATIC_PARAMETERS
static const std::string NAME_DERIVED_PARAMETER_y_fin
static const unsigned int POSITION_PARAMETER_b1
ParamterUnitMapType GetParameterUnits() const override
Default implementation returns no unit string ("") for every defined parameter.
ParametersSizeType GetNumberOfDerivedParameters() const override
Returns the number of derived parameters that can be computed by the model.
std::string GetXName() const override
Default implementation returns an empty string.
static const std::string X_NAME
static const std::string Y_AXIS_NAME
static const std::string Y_AXIS_UNIT
static const unsigned int POSITION_PARAMETER_y_bl
std::string GetYAxisUnit() const override
Default implementation returns an empty string.
itk::SmartPointer< const Self > ConstPointer
std::string GetXAxisUnit() const override
Default implementation returns an empty string.
static const std::string UNIT_DERIVED_PARAMETER_auc
FunctionStringType GetFunctionString() const override
Default implementation returns an empty function string.
static const std::string NAME_PARAMETER_x1
std::string GetYAxisName() const override
Default implementation returns an empty string.
static const std::string UNIT_PARAMETER_x0
ParametersSizeType GetNumberOfParameters() const override
Returns the number of parameters that must be defined when using the model to compute the signal (Get...
Superclass::ParametersSizeType ParametersSizeType
static const std::string UNIT_DERIVED_PARAMETER_y_fin
static const std::string X_AXIS_UNIT
void SetStaticParameter(const ParameterNameType &name, const StaticParameterValuesType &values) override
Sets a single static parameter by name.
static const unsigned int POSITION_PARAMETER_x0
static const std::string UNIT_DERIVED_PARAMETER_y1
ParameterNamesType GetParameterNames() const override
Returns the names of parameters that must be defined when using the model to compute the signal (GetS...
static const std::string NAME_DERIVED_PARAMETER_y1
static const std::string UNIT_DERIVED_PARAMETER_y_max
std::string GetModelType() const override
Default implementation returns "Unknown" as model type.
static const std::string X_AXIS_NAME
ParametersSizeType GetNumberOfStaticParameters() const override
Returns the number of static parameters.
static const std::string NAME_DERIVED_PARAMETER_y2
DerivedParameterMapType ComputeDerivedParameters(const mitk::ModelBase::ParametersType &parameters) const override
Computes derived parameters from the given model parameters.
static const std::string NAME_DERIVED_PARAMETER_auc
static const std::string UNIT_DERIVED_PARAMETER_y2
static const std::string FUNCTION_STRING
static const std::string NAME_DERIVED_PARAMETER_y_max
StaticParameterValuesType GetStaticParameterValue(const ParameterNameType &name) const override
Retrieves a single static parameter value by name.
static const std::string UNIT_DERIVED_PARAMETER_x_fin
ThreeStepLinearModel(const ThreeStepLinearModel &source)
ParameterNamesType GetDerivedParameterNames() const override
Returns the names of derived parameters that can be computed by the model.
Superclass::ParameterNameType ParameterNameType
static const std::string NAME_PARAMETER_y_bl
mitkCloneMacro(ThreeStepLinearModel)
ModelResultType ComputeModelfunction(const ParametersType &parameters) const override
Computes the model function for the given parameters.
Find image slices visible on a given plane.