ISphere.hpp
1 #ifndef DM_ISPHERE_HPP_INCLUDED
2 #define DM_ISPHERE_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 3d sphere object
15 class DM_API ISphere : public IGeometry
16 {
17 public:
18  static ISphere* New();
19  static ISphere* New(double x, double y, double z, double r);
20 
21 protected:
22  virtual ~ISphere() {}
23 
24 public:
25  virtual double x() const = 0;
26  virtual double y() const = 0;
27  virtual double z() const = 0;
28  virtual double r() const = 0;
29 
30  virtual void x(double) = 0;
31  virtual void y(double) = 0;
32  virtual void z(double) = 0;
33  virtual void r(double) = 0;
34 };
35 
37 
38 DM_NAMESPACE_END
39 
40 #endif //DM_ISPHERE_HPP_INCLUDED