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