VPTissue Reference Manual
RegularGeneratorDialog.h
Go to the documentation of this file.
1 #ifndef SIMPT_EDITOR_REGULAR_GENERATOR_DIALOG_H_INCLUDED
2 #define SIMPT_EDITOR_REGULAR_GENERATOR_DIALOG_H_INCLUDED
3 /*
4  * Copyright 2011-2016 Universiteit Antwerpen
5  *
6  * Licensed under the EUPL, Version 1.1 or as soon they will be approved by
7  * the European Commission - subsequent versions of the EUPL (the "Licence");
8  * You may not use this work except in compliance with the Licence.
9  * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl5
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the Licence is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the Licence for the specific language governing
15  * permissions and limitations under the Licence.
16  */
22 #include <QDialog>
23 #include <QPolygonF>
24 
25 #include <list>
26 #include <memory>
27 #include <utility>
28 #include <vector>
29 
30 
32 class QGraphicsScene;
33 
34 namespace SimPT_Editor {
35 
36 class RegularTiling;
37 class TransformationWidget;
38 
43 {
44  Q_OBJECT
45 public:
53  RegularGeneratorDialog(const QPolygonF &boundaryPolygon, double initialScale = 1.0, QWidget *parent = nullptr);
54 
58  virtual ~RegularGeneratorDialog();
59 
60 
67  std::list<QPolygonF> GetGeneratedPolygons() const;
68 
69 private slots:
70  void UpdateTiling(int index);
71  void UpdateTransformation();
72 
73 private:
74  void SetupSceneItems(const QPolygonF &boundaryPolygon);
75  void SetupGui(double scale);
76 
77 
78  QGraphicsScene *m_scene;
79  QGraphicsPolygonItem *m_boundary;
80  RegularTiling *m_tiling;
81  TransformationWidget *m_transformation;
82 
83  class ITileFactory;
84  template <class TileType> class TileFactory;
85 
86  static const double g_scene_margin;
87  static const std::vector<std::pair<std::shared_ptr<const ITileFactory>, std::string>> g_tile_factories;
88 };
89 
90 } // namespace
91 
92 #endif // end-of-include-guard
Namespace for SimPT tissue editor package.
Definition: Cell.h:32
Qt GUI to enter a transformation of an item.
see the online Qt documentation
Class of a cell tiling with regular polygons.
Definition: RegularTiling.h:34
see the online Qt documentation
std::list< QPolygonF > GetGeneratedPolygons() const
Retrieves the generated polygons after the dialog has successfully executed.
see the online Qt documentation
RegularGeneratorDialog(const QPolygonF &boundaryPolygon, double initialScale=1.0, QWidget *parent=nullptr)
Constructor.
Dialog for generating regular patterns in a cell.