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