Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkPlanarEllipse.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 mitkPlanarEllipse_h
14 #define mitkPlanarEllipse_h
15 
16 #include "mitkPlanarFigure.h"
18 
19 namespace mitk
20 {
21  class PlaneGeometry;
22 
28  {
29  public:
31  itkFactorylessNewMacro(Self);
32  itkCloneMacro(Self);
33 
39  void PlaceFigure(const Point2D &point) override;
40 
41  bool SetControlPoint(unsigned int index, const Point2D &point, bool createIfDoesNotExist = true) override;
42 
44  unsigned int GetMinimumNumberOfControlPoints() const override { return 4; }
46  unsigned int GetMaximumNumberOfControlPoints() const override { return 4; }
49  void SetMinimumRadius(double radius) { m_MinRadius = radius; }
52  double GetMinimumRadius() { return m_MinRadius; }
55  void SetMaximumRadius(double radius) { m_MaxRadius = radius; }
58  double GetMaximumRadius() { return m_MaxRadius; }
59  void ActivateMinMaxRadiusContstraints(bool active) { m_MinMaxRadiusContraintsActive = active; }
62  void SetTreatAsCircle(bool active) { m_TreatAsCircle = active; }
63  bool Equals(const mitk::PlanarFigure &other) const override;
64 
65  const unsigned int FEATURE_ID_MAJOR_AXIS;
66  const unsigned int FEATURE_ID_MINOR_AXIS;
67  const unsigned int FEATURE_ID_AREA;
68 
69  protected:
70  PlanarEllipse();
71 
73 
75  void GeneratePolyLine() override;
76 
78  void GenerateHelperPolyLine(double mmPerDisplayUnit, unsigned int displayHeight) override;
79 
81  Point2D ApplyControlPointConstraints(unsigned int index, const Point2D &point) override;
82 
84  void EvaluateFeaturesInternal() override;
85 
86  void PrintSelf(std::ostream &os, itk::Indent indent) const override;
87 
88  // Member variables:
89  double m_MinRadius;
90  double m_MaxRadius;
93 
94  private:
95  };
96 
97 } // namespace mitk
98 
99 #endif
mitk::PlanarEllipse::GetMaximumNumberOfControlPoints
unsigned int GetMaximumNumberOfControlPoints() const override
Ellipse has 3 control points per definition.
Definition: mitkPlanarEllipse.h:46
mitk::PlanarEllipse::GetMinimumRadius
double GetMinimumRadius()
Gets the minimum radius.
Definition: mitkPlanarEllipse.h:52
MitkPlanarFigureExports.h
mitk::PlanarEllipse::FEATURE_ID_MINOR_AXIS
const unsigned int FEATURE_ID_MINOR_AXIS
Definition: mitkPlanarEllipse.h:66
mitk::PlanarFigure
Base-class for geometric planar (2D) figures, such as lines, circles, rectangles, polygons,...
Definition: mitkPlanarFigure.h:50
mitk::PlanarEllipse::m_TreatAsCircle
bool m_TreatAsCircle
Definition: mitkPlanarEllipse.h:92
MITKPLANARFIGURE_EXPORT
#define MITKPLANARFIGURE_EXPORT
Definition: MitkPlanarFigureExports.h:15
mitk::PlanarEllipse::FEATURE_ID_AREA
const unsigned int FEATURE_ID_AREA
Definition: mitkPlanarEllipse.h:67
mitk::PlanarEllipse::GetMinimumNumberOfControlPoints
unsigned int GetMinimumNumberOfControlPoints() const override
Ellipse has 3 control points per definition.
Definition: mitkPlanarEllipse.h:44
mitkPlanarFigure.h
mitk::PlanarEllipse::m_MinMaxRadiusContraintsActive
bool m_MinMaxRadiusContraintsActive
Definition: mitkPlanarEllipse.h:91
mitk::PlanarEllipse::SetMaximumRadius
void SetMaximumRadius(double radius)
Sets the maximum radius.
Definition: mitkPlanarEllipse.h:55
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::PlanarEllipse
Implementation of PlanarFigure representing a circle through two control points.
Definition: mitkPlanarEllipse.h:27
mitk::PlanarEllipse::ActivateMinMaxRadiusContstraints
void ActivateMinMaxRadiusContstraints(bool active)
Definition: mitkPlanarEllipse.h:59
mitk::Point< ScalarType, 2 >
mitk::BaseData
Base of all data objects.
Definition: mitkBaseData.h:42
mitk::PlanarEllipse::SetTreatAsCircle
void SetTreatAsCircle(bool active)
Treat ellipse as circle (equal radii)
Definition: mitkPlanarEllipse.h:62
mitk::PlanarEllipse::m_MaxRadius
double m_MaxRadius
Definition: mitkPlanarEllipse.h:90
mitk::PlanarEllipse::m_MinRadius
double m_MinRadius
Definition: mitkPlanarEllipse.h:89
mitkCloneMacro
#define mitkCloneMacro(classname)
Definition: mitkCommon.h:154
mitk::PlanarEllipse::FEATURE_ID_MAJOR_AXIS
const unsigned int FEATURE_ID_MAJOR_AXIS
Definition: mitkPlanarEllipse.h:65
mitkClassMacro
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
mitk::PlanarEllipse::GetMaximumRadius
double GetMaximumRadius()
Gets the minimum radius.
Definition: mitkPlanarEllipse.h:58
mitk::PlanarEllipse::SetMinimumRadius
void SetMinimumRadius(double radius)
Sets the minimum radius.
Definition: mitkPlanarEllipse.h:49