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  static IWindow* New(const IGeometry& obj);
17 
18  IWindow* clone() const override = 0;
19 
20 protected:
21  virtual ~IWindow() {}
22 
23 public:
24  virtual double xmin() const = 0;
25  virtual double xmax() const = 0;
26  virtual double ymin() const = 0;
27  virtual double ymax() const = 0;
28 
29  virtual void xmin(double) = 0;
30  virtual void xmax(double) = 0;
31  virtual void ymin(double) = 0;
32  virtual void ymax(double) = 0;
33 
34  virtual void xrange(double xmin, double xmax) = 0;
35  virtual void yrange(double ymin, double ymax) = 0;
36 
37  virtual void expand(double) = 0;
38 };
39 
41 
42 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