BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MaskItems.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/MaskItems.h
6 //! @brief Defines MaskItems classes
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_MASKITEMS_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_MASKITEMS_H
17 
19 
20 class IShape2D;
21 
22 //! Container holding various masks as children
23 
24 class BA_CORE_API_ MaskContainerItem : public SessionItem {
25 public:
27 };
28 
29 //! A base class for all mask items
30 
31 class BA_CORE_API_ MaskItem : public SessionItem {
32 public:
33  static const QString P_MASK_VALUE;
34  static const QString P_IS_VISIBLE;
35  explicit MaskItem(const QString& name);
36  virtual std::unique_ptr<IShape2D> createShape(double scale = 1.0) const;
37 };
38 
39 class BA_CORE_API_ RectangleItem : public MaskItem {
40 public:
41  static const QString P_XLOW;
42  static const QString P_YLOW;
43  static const QString P_XUP;
44  static const QString P_YUP;
45  explicit RectangleItem(const QString& modelType = "RectangleMask");
46  virtual std::unique_ptr<IShape2D> createShape(double scale) const;
47 };
48 
49 class BA_CORE_API_ RegionOfInterestItem : public RectangleItem {
50 public:
52 };
53 
54 class BA_CORE_API_ PolygonPointItem : public SessionItem {
55 
56 public:
57  static const QString P_POSX;
58  static const QString P_POSY;
60 };
61 
62 class BA_CORE_API_ PolygonItem : public MaskItem {
63 
64 public:
65  static const QString P_ISCLOSED;
66  PolygonItem();
67  virtual std::unique_ptr<IShape2D> createShape(double scale) const;
68 };
69 
70 class BA_CORE_API_ VerticalLineItem : public MaskItem {
71 
72 public:
73  static const QString P_POSX;
75  virtual std::unique_ptr<IShape2D> createShape(double scale) const;
76 };
77 
78 class BA_CORE_API_ HorizontalLineItem : public MaskItem {
79 
80 public:
81  static const QString P_POSY;
83  virtual std::unique_ptr<IShape2D> createShape(double scale) const;
84 };
85 
86 class BA_CORE_API_ EllipseItem : public MaskItem {
87 
88 public:
89  static const QString P_XCENTER;
90  static const QString P_YCENTER;
91  static const QString P_XRADIUS;
92  static const QString P_YRADIUS;
93  static const QString P_ANGLE;
94  EllipseItem();
95  virtual std::unique_ptr<IShape2D> createShape(double scale) const;
96 };
97 
98 class BA_CORE_API_ MaskAllItem : public MaskItem {
99 public:
100  MaskAllItem();
101  virtual std::unique_ptr<IShape2D> createShape(double scale) const;
102 };
103 
104 #endif // BORNAGAIN_GUI_COREGUI_MODELS_MASKITEMS_H
Defines class SessionItem.
static const QString P_XRADIUS
Definition: MaskItems.h:91
static const QString P_YRADIUS
Definition: MaskItems.h:92
static const QString P_XCENTER
Definition: MaskItems.h:89
static const QString P_ANGLE
Definition: MaskItems.h:93
static const QString P_YCENTER
Definition: MaskItems.h:90
static const QString P_POSY
Definition: MaskItems.h:81
Basic class for all shapes in 2D.
Definition: IShape2D.h:27
Container holding various masks as children.
Definition: MaskItems.h:24
A base class for all mask items.
Definition: MaskItems.h:31
static const QString P_IS_VISIBLE
Definition: MaskItems.h:34
static const QString P_MASK_VALUE
Definition: MaskItems.h:33
static const QString P_ISCLOSED
Definition: MaskItems.h:65
static const QString P_POSX
Definition: MaskItems.h:57
static const QString P_POSY
Definition: MaskItems.h:58
static const QString P_XUP
Definition: MaskItems.h:43
static const QString P_YLOW
Definition: MaskItems.h:42
static const QString P_YUP
Definition: MaskItems.h:44
static const QString P_XLOW
Definition: MaskItems.h:41
static const QString P_POSX
Definition: MaskItems.h:73
QString const & name(EShape k)
Definition: particles.cpp:21