Medical Imaging Interaction Toolkit  2024.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkModelFitPlotDataHelper.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 mitkModelFitPlotDataHelper_h
14 #define mitkModelFitPlotDataHelper_h
15 
16 #include <vector>
17 
18 #include "mitkPoint.h"
19 #include "mitkPointSet.h"
20 #include "mitkModelBase.h"
21 #include "mitkWeakPointer.h"
22 #include "mitkCommon.h"
23 
24 #include "mitkModelFitInfo.h"
25 
26 #include "itkMapContainer.h"
27 
28 #include "MitkModelFitExports.h"
29 
30 namespace mitk
31 {
32 
33  class ModelParameterizerBase;
34  class Image;
35 
36  using PlotDataValues = std::vector<std::pair<double, double>>;
37 
39  class MITKMODELFIT_EXPORT PlotDataCurve : public ::itk::Object
40  {
41  public:
43  itkFactorylessNewMacro(Self);
44 
46 
47  virtual void SetValues(const ValuesType& _arg);
48  virtual void SetValues(ValuesType&& _arg);
49 
50  itkGetConstReferenceMacro(Values, ValuesType);
51  itkGetMacro(Values, ValuesType);
52 
53  PlotDataCurve& operator=(const PlotDataCurve& rhs);
54  PlotDataCurve& operator=(PlotDataCurve&& rhs) noexcept;
55 
56  void Reset();
57 
58  protected:
59  PlotDataCurve();
60  ~PlotDataCurve() override = default;
61 
62  private:
64  ValuesType m_Values;
65 
66  PlotDataCurve(const PlotDataCurve& other) = delete;
67  };
68 
70  using PlotDataCurveCollection = itk::MapContainer<std::string, PlotDataCurve::Pointer>;
71 
74  {
76  PlotDataCurveCollection::Pointer currentPositionPlots;
77 
78  using PositionalCurveCollection = std::pair<mitk::Point3D, PlotDataCurveCollection::Pointer>;
79  using PositionalCollectionMap = std::map<mitk::PointSet::PointIdentifier, PositionalCurveCollection>;
80 
83 
85  PlotDataCurveCollection::Pointer staticPlots;
86 
88  mitk::modelFit::ModelFitInfo::Pointer fitInfo;
89 
92  static const PlotDataCurve* GetSamplePlot(const PlotDataCurveCollection* coll);
93  static const PlotDataCurve* GetSignalPlot(const PlotDataCurveCollection* coll);
94  static const PlotDataCurve* GetInterpolatedSignalPlot(const PlotDataCurveCollection* coll);
95 
97  static std::string GetPositionalCollectionName(const PositionalCollectionMap::value_type& mapValue);
98 
99  const PlotDataCurveCollection* GetPositionalPlot(const mitk::Point3D& point) const;
100  const PlotDataCurveCollection* GetPositionalPlot(mitk::PointSet::PointIdentifier id) const;
101 
103  PlotDataValues::value_type GetXMinMax() const;
105  PlotDataValues::value_type GetYMinMax() const;
106 
108  };
109 
111  void CheckYMinMaxFromPlotDataValues(const PlotDataValues& data, double& min, double& max);
112 
114  void CheckXMinMaxFromPlotDataValues(const PlotDataValues& data, double& min, double& max);
115 
125  MITKMODELFIT_EXPORT PlotDataCurve::Pointer
126  GenerateModelSignalPlotData(const mitk::Point3D& position, const mitk::modelFit::ModelFitInfo* fitInfo, const mitk::ModelBase::TimeGridType& timeGrid, mitk::ModelParameterizerBase* parameterizer = nullptr);
127 
136  MITKMODELFIT_EXPORT PlotDataCurveCollection::Pointer
138 
147  MITKMODELFIT_EXPORT PlotDataCurve::Pointer
148  GenerateImageSamplePlotData(const mitk::Point3D& position, const mitk::Image* image, const mitk::ModelBase::TimeGridType& timeGrid);
149 
154 
159 
164 
165 }
166 
167 #endif
mitk::PointSet::PointIdentifier
DataType::PointIdentifier PointIdentifier
Definition: mitkPointSet.h:129
mitk::GenerateModelSignalPlotData
MITKMODELFIT_EXPORT PlotDataCurve::Pointer GenerateModelSignalPlotData(const mitk::Point3D &position, const mitk::modelFit::ModelFitInfo *fitInfo, const mitk::ModelBase::TimeGridType &timeGrid, mitk::ModelParameterizerBase *parameterizer=nullptr)
mitk::PlotDataCurveCollection
itk::MapContainer< std::string, PlotDataCurve::Pointer > PlotDataCurveCollection
Definition: mitkModelFitPlotDataHelper.h:70
mitk::ModelParameterizerBase
Definition: mitkModelParameterizerBase.h:36
MitkModelFitExports.h
mitk::MODEL_FIT_PLOT_SAMPLE_NAME
const MITKMODELFIT_EXPORT std::string MODEL_FIT_PLOT_SAMPLE_NAME()
mitk::modelFit::ModelFitInfo
Data class that stores all information about a modelfit that is relevant to the visualization and sto...
Definition: mitkModelFitInfo.h:36
mitk::Image
Image class for storing images.
Definition: mitkImage.h:69
mitkPoint.h
mitk::MODEL_FIT_PLOT_SIGNAL_NAME
const MITKMODELFIT_EXPORT std::string MODEL_FIT_PLOT_SIGNAL_NAME()
mitk::GenerateAdditionalModelFitPlotData
MITKMODELFIT_EXPORT PlotDataCurveCollection::Pointer GenerateAdditionalModelFitPlotData(const mitk::Point3D &position, const mitk::modelFit::ModelFitInfo *fitInfo, const mitk::ModelBase::TimeGridType &timeGrid)
mitkClassMacroItkParent
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:45
mitk::ModelFitPlotData::PositionalCurveCollection
std::pair< mitk::Point3D, PlotDataCurveCollection::Pointer > PositionalCurveCollection
Definition: mitkModelFitPlotDataHelper.h:78
MITKMODELFIT_EXPORT
#define MITKMODELFIT_EXPORT
Definition: MitkModelFitExports.h:15
mitkPointSet.h
mitkModelBase.h
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::PlotDataValues
std::vector< std::pair< double, double > > PlotDataValues
Definition: mitkModelFitPlotDataHelper.h:36
mitk::GenerateImageSamplePlotData
MITKMODELFIT_EXPORT PlotDataCurve::Pointer GenerateImageSamplePlotData(const mitk::Point3D &position, const mitk::Image *image, const mitk::ModelBase::TimeGridType &timeGrid)
mitk::Point< ScalarType, 3 >
mitk::PlotDataCurve::ValuesType
PlotDataValues ValuesType
Definition: mitkModelFitPlotDataHelper.h:45
mitkModelFitInfo.h
mitk::ModelFitPlotData::positionalPlots
PositionalCollectionMap positionalPlots
Definition: mitkModelFitPlotDataHelper.h:82
mitkCommon.h
mitk::PlotDataCurve
Definition: mitkModelFitPlotDataHelper.h:39
mitk::CheckYMinMaxFromPlotDataValues
void CheckYMinMaxFromPlotDataValues(const PlotDataValues &data, double &min, double &max)
mitk::CheckXMinMaxFromPlotDataValues
void CheckXMinMaxFromPlotDataValues(const PlotDataValues &data, double &min, double &max)
mitk::MODEL_FIT_PLOT_INTERPOLATED_SIGNAL_NAME
const MITKMODELFIT_EXPORT std::string MODEL_FIT_PLOT_INTERPOLATED_SIGNAL_NAME()
mitk::ModelFitPlotData::fitInfo
mitk::modelFit::ModelFitInfo::Pointer fitInfo
Definition: mitkModelFitPlotDataHelper.h:88
mitk::ModelFitPlotData::PositionalCollectionMap
std::map< mitk::PointSet::PointIdentifier, PositionalCurveCollection > PositionalCollectionMap
Definition: mitkModelFitPlotDataHelper.h:79
mitkWeakPointer.h
mitk::ModelFitPlotData::currentPositionPlots
PlotDataCurveCollection::Pointer currentPositionPlots
Definition: mitkModelFitPlotDataHelper.h:76
mitk::ModelFitPlotData::staticPlots
PlotDataCurveCollection::Pointer staticPlots
Definition: mitkModelFitPlotDataHelper.h:85
itk::Image
class ITK_EXPORT Image
Definition: mitkGeometryClipImageFilter.h:25
mitk::ModelBase::TimeGridType
itk::Array< double > TimeGridType
Definition: mitkModelBase.h:62
mitk::ModelFitPlotData
Definition: mitkModelFitPlotDataHelper.h:73