Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkPlanarCircle.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 mitkPlanarCircle_h
14 #define mitkPlanarCircle_h
15 
16 #include <mitkPlanarFigure.h>
18 
19 namespace mitk
20 {
21  class PlaneGeometry;
22 
40  {
41  public:
45  itkFactorylessNewMacro(Self);
46 
47  itkCloneMacro(Self);
48 
57  bool SetControlPoint(unsigned int index, const Point2D &point, bool createIfDoesNotExist = false) override;
58 
63  unsigned int GetMinimumNumberOfControlPoints() const override { return (m_RadiusFixed) ? 1 : 2; }
68  unsigned int GetMaximumNumberOfControlPoints() const override { return (m_RadiusFixed) ? 1 : 2; }
69 
74  void SetMinimumRadius(double radius) { m_MinRadius = radius; }
79  double GetMinimumRadius() { return m_MinRadius; }
84  void SetMaximumRadius(double radius) { m_MaxRadius = radius; }
89  double GetMaximumRadius() { return m_MaxRadius; }
90 
95  void ActivateMinMaxRadiusContstraints(bool active) { m_MinMaxRadiusContraintsActive = active; }
96 
102  bool SetCurrentControlPoint(const Point2D &point) override;
103 
109  bool Equals(const mitk::PlanarFigure &other) const override;
110 
111  protected:
114  PlanarCircle(double fixedRadius);
115  PlanarCircle(const Self& other);
116 
118 
120  void GeneratePolyLine() override;
121 
123  void GenerateHelperPolyLine(double mmPerDisplayUnit, unsigned int displayHeight) override;
124 
126  Point2D ApplyControlPointConstraints(unsigned int index, const Point2D &point) override;
127 
129  void EvaluateFeaturesInternal() override;
130 
131  void PrintSelf(std::ostream &os, itk::Indent indent) const override;
132 
133  // Feature identifiers
134  const unsigned int FEATURE_ID_RADIUS;
135  const unsigned int FEATURE_ID_DIAMETER;
136  const unsigned int FEATURE_ID_AREA;
137 
138  // Member variables:
139  double m_MinRadius;
140  double m_MaxRadius;
142  //indicate if the circle is created with fixed radius. The radius is stored in m_MinRadius
144 
145  private:
146  };
147 
148 } // namespace mitk
149 
150 #endif
#define MITKPLANARFIGURE_EXPORT
Implementation of PlanarFigure representing a circle.
void PrintSelf(std::ostream &os, itk::Indent indent) const override
const unsigned int FEATURE_ID_RADIUS
void EvaluateFeaturesInternal() override
Calculates feature quantities of the planar figure.
mitkClassMacro(PlanarCircle, PlanarFigure)
double GetMinimumRadius()
Returns the minimum allowed radius.
bool Equals(const mitk::PlanarFigure &other) const override
Compares this PlanarCircle with another PlanarFigure for equality.
unsigned int GetMaximumNumberOfControlPoints() const override
Returns 1 in fixed-radius mode, 2 otherwise.
const unsigned int FEATURE_ID_AREA
unsigned int GetMinimumNumberOfControlPoints() const override
Returns 1 in fixed-radius mode, 2 otherwise.
void ActivateMinMaxRadiusContstraints(bool active)
Activates or deactivates minimum/maximum radius constraints.
PlanarCircle(const Self &other)
void GeneratePolyLine() override
Generates the poly-line representation of the planar figure.
double GetMaximumRadius()
Returns the maximum allowed radius.
void GenerateHelperPolyLine(double mmPerDisplayUnit, unsigned int displayHeight) override
Generates the poly-lines that should be drawn the same size regardless of zoom.
PlanarCircle(double fixedRadius)
const unsigned int FEATURE_ID_DIAMETER
void SetMaximumRadius(double radius)
Sets the maximum allowed radius.
bool SetCurrentControlPoint(const Point2D &point) override
Sets the currently selected control point, applying radius constraints if active.
mitkNewMacro1Param(PlanarCircle, double)
Creates a PlanarCircle with a fixed radius.
bool SetControlPoint(unsigned int index, const Point2D &point, bool createIfDoesNotExist=false) override
Sets a control point position with optional radius constraints.
void SetMinimumRadius(double radius)
Sets the minimum allowed radius.
Point2D ApplyControlPointConstraints(unsigned int index, const Point2D &point) override
Spatially constrain control points of second (orthogonal) line.
Base-class for geometric planar (2D) figures, such as lines, circles, rectangles, polygons,...
Find image slices visible on a given plane.