ICylinder.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 Geometry object describing a finite 3d cylinder
10 class DM_API ICylinder : public IGeometry
11 {
12 public:
13  static ICylinder* New();
14  static ICylinder* New(double x, double y, double r, double zmin, double zmax);
15 
16 protected:
17  virtual ~ICylinder() {}
18 
19 public:
20  virtual double x() const = 0;
21  virtual double y() const = 0;
22  virtual double r() const = 0;
23  virtual double zmin() const = 0;
24  virtual double zmax() const = 0;
25 
26  virtual void x(double) = 0;
27  virtual void y(double) = 0;
28  virtual void r(double) = 0;
29  virtual void zmin(double) = 0;
30  virtual void zmax(double) = 0;
31 };
32 
34 
35 DM_NAMESPACE_END
Geometry object describing a finite 3d cylinder.
Definition: ICylinder.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:98