10 #ifndef smtk_extension_qtDiagramScene_h
11 #define smtk_extension_qtDiagramScene_h
13 #include "smtk/extension/qt/Exports.h"
14 #include "smtk/extension/qt/qtBaseView.h"
16 #include "smtk/string/Token.h"
18 #include "smtk/common/TypeContainer.h"
22 #include <QGraphicsScene>
24 #include <unordered_set>
26 class QAbstractItemModel;
38 class qtDiagramViewConfiguration;
50 using Superclass = QGraphicsScene;
62 std::unordered_set<qtBaseNode*> nodesOfSelection()
const;
69 const std::unordered_set<qtBaseNode*>& nodes,
70 const std::unordered_set<qtBaseArc*>& arcs);
80 virtual void alignHorizontal(
const std::unordered_set<qtBaseNode*>& nodeSet,
int alignment);
81 virtual void alignVertical(
const std::unordered_set<qtBaseNode*>& nodeSet,
int alignment);
88 virtual void distributeHorizontal(
89 const std::unordered_set<qtBaseNode*>& nodeSet,
91 virtual void distributeVertical(
92 const std::unordered_set<qtBaseNode*>& nodeSet,
98 static QPointF snapToGrid(
const qreal& x,
const qreal& y,
const qreal& resolution = 1.0);
101 void drawBackground(QPainter* painter,
const QRectF& rect)
override;
104 qtDiagram* m_diagram{
nullptr };
109 #endif // smtk_extension_qtDiagramScene_h