ICircle.hpp
1 #ifndef DM_ICIRCLE_HPP_INCLUDED
2 #define DM_ICIRCLE_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/IGeometry.hpp"
9 #include "DM/Handle.hpp"
10 #include "DM/AutoLink.hpp" //enable autolink
11 
12 DM_NAMESPACE_BEGIN
13 
14 /// \brief Geometry object describing a 2d circle
15 class DM_API ICircle : public IGeometry
16 {
17 public:
18  static ICircle* New();
19  static ICircle* New(double x, double y, double r);
20 
21 protected:
22  virtual ~ICircle() {}
23 
24 public:
25  virtual double x() const = 0;
26  virtual double y() const = 0;
27  virtual double r() const = 0;
28 
29  virtual void x(double) = 0;
30  virtual void y(double) = 0;
31  virtual void r(double) = 0;
32 };
33 
35 
36 DM_NAMESPACE_END
37 
38 #endif //DM_ICIRCLE_HPP_INCLUDED