15#include <QGraphicsScene>
16#include <QPainterPath>
56 if (m_scene && m_scene->
sceneRect().intersects(rect)) {
58 QModelIndexList indexes;
60 auto *i = qgraphicsitem_cast<ChartGraphicsItem *>(item);
68 return QModelIndexList();
75 if (m_scene && m_scene->
sceneRect().contains(point)) {
77 QModelIndexList indexes;
79 auto *i = qgraphicsitem_cast<ChartGraphicsItem *>(item);
82 if (!indexes.contains(index))
88 return QModelIndexList();
97 return m_itemMap.contains(index) ? m_itemMap[index]->polygon() :
QPolygon();
105 return m_itemMap.contains(index) ? m_itemMap[index]->polygon().boundingRect() :
QRectF();
147 if (from.
x() < to.
x()) {
154 const QPointF lineVector(right - left);
155 const qreal lineVectorLength = sqrt(lineVector.
x() * lineVector.
x() + lineVector.
y() * lineVector.
y());
156 const QPointF lineVectorUnit(lineVector / lineVectorLength);
157 const QPointF normOfLineVectorUnit(-lineVectorUnit.
y(), lineVectorUnit.
x());
159 const QPointF one(left - lineVectorUnit + normOfLineVectorUnit);
160 const QPointF two(left - lineVectorUnit - normOfLineVectorUnit);
161 const QPointF three(right + lineVectorUnit - normOfLineVectorUnit);
162 const QPointF four(right + lineVectorUnit + normOfLineVectorUnit);
AbstractDiagram defines the interface for diagram classes.
Graphics item used inside of the ReverseMapper.
QModelIndexList indexesIn(const QRect &rect) const
void setDiagram(AbstractDiagram *diagram)
void addItem(ChartGraphicsItem *item)
QPolygonF polygon(int row, int column) const
void addCircle(int row, int column, const QPointF &location, const QSizeF &diameter)
void addLine(int row, int column, const QPointF &from, const QPointF &to)
void addRect(int row, int column, const QRectF &rect)
QRectF boundingRect(int row, int column) const
void addPolygon(int row, int column, const QPolygonF &polygon)
QModelIndexList indexesAt(const QPointF &point) const
bool hasIndex(int row, int column, const QModelIndex &parent) const const
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const=0
QAbstractItemModel * model() const const
QModelIndex rootIndex() const const
void addItem(QGraphicsItem *item)
QList< QGraphicsItem * > items(Qt::SortOrder order) const const
QPolygonF toFillPolygon(const QMatrix &matrix) const const
void addEllipse(const QRectF &boundingRectangle)
qreal height() const const
qreal width() const const