ICircle.hpp
1 #pragma once
2 
3 
4 #include "DM/IGeometry.hpp"
5 #include "DM/Handle.hpp"
6 #include "DM/AutoLink.hpp" //enable autolink
7 
8 DM_NAMESPACE_BEGIN
9 
10 /// \brief Geometry object describing a 2d circle
11 class DM_API ICircle : public IGeometry
12 {
13 public:
14  static ICircle* New();
15  static ICircle* New(double x, double y, double r);
16 
17  ICircle* clone() const override = 0;
18 protected:
19  virtual ~ICircle() {}
20 
21 public:
22  virtual double x() const = 0;
23  virtual double y() const = 0;
24  virtual double r() const = 0;
25 
26  virtual void x(double) = 0;
27  virtual void y(double) = 0;
28  virtual void r(double) = 0;
29 };
30 
32 
33 DM_NAMESPACE_END
virtual IGeometry * clone() const =0
get an object copy
Geometry object describing a 2d circle.
Definition: ICircle.hpp:11
Base class of all geometry objects.
Definition: IGeometry.hpp:26
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:75