ISphere.hpp
1 #pragma once
2 
3 #include "DM/IGeometry.hpp"
4 #include "DM/Handle.hpp"
5 #include "DM/AutoLink.hpp" //enable autolink
6 
7 DM_NAMESPACE_BEGIN
8 
9 /// \brief 3d sphere object
10 class DM_API ISphere : public IGeometry
11 {
12 public:
13  static ISphere* New();
14  static ISphere* New(double x, double y, double z, double r);
15 
16  ISphere* clone() const override = 0;
17 
18 protected:
19  virtual ~ISphere() {}
20 
21 public:
22  virtual double x() const = 0;
23  virtual double y() const = 0;
24  virtual double z() const = 0;
25  virtual double r() const = 0;
26 
27  virtual void x(double) = 0;
28  virtual void y(double) = 0;
29  virtual void z(double) = 0;
30  virtual void r(double) = 0;
31 };
32 
34 
35 DM_NAMESPACE_END
virtual IGeometry * clone() const =0
get an object copy
3d sphere object
Definition: ISphere.hpp:10
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