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  ICylinder* clone() const override = 0;
17 protected:
18  virtual ~ICylinder() {}
19 
20 public:
21  virtual double x() const = 0;
22  virtual double y() const = 0;
23  virtual double r() const = 0;
24  virtual double zmin() const = 0;
25  virtual double zmax() const = 0;
26 
27  virtual void x(double) = 0;
28  virtual void y(double) = 0;
29  virtual void r(double) = 0;
30  virtual void zmin(double) = 0;
31  virtual void zmax(double) = 0;
32 };
33 
35 
36 DM_NAMESPACE_END
virtual IGeometry * clone() const =0
get an object copy
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:75