IWindow.hpp
1 #ifndef DM_IWINDOW_HPP_INCLUDED
2 #define DM_IWINDOW_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/config.hpp"
9 #include "DM/Handle.hpp"
10 #include "DM/IGeometry.hpp"
11 #include "DM/AutoLink.hpp" //enable autolink
12 
13 DM_NAMESPACE_BEGIN
14 
15 /// \brief 2d window object
16 class DM_API IWindow : public IGeometry
17 {
18 public:
19  static IWindow* New();
20  static IWindow* New(double xmin, double ymin, double xmax, double ymax);
21 
22 protected:
23  virtual ~IWindow() {}
24 
25 public:
26  virtual double xmin() const = 0;
27  virtual double xmax() const = 0;
28  virtual double ymin() const = 0;
29  virtual double ymax() const = 0;
30 
31  virtual void xmin(double) = 0;
32  virtual void xmax(double) = 0;
33  virtual void ymin(double) = 0;
34  virtual void ymax(double) = 0;
35 
36  virtual void xrange(double xmin, double xmax) = 0;
37  virtual void yrange(double ymin, double ymax) = 0;
38 
39  virtual void expand(double) = 0;
40 };
41 
43 
44 DM_NAMESPACE_END
45 
46 #endif //DM_IWINDOW_HPP_INCLUDED