Marble
8 #include "BillboardGraphicsItem.h"
9 #include "MarbleGraphicsItem_p.h"
17 class BillboardGraphicsItemPrivate :
public MarbleGraphicsItemPrivate
20 BillboardGraphicsItemPrivate(BillboardGraphicsItem *parent)
21 : MarbleGraphicsItemPrivate(parent),
43 int pointRepeatNumber = 0;
46 viewport->screenCoordinates( m_coordinates, x, y, pointRepeatNumber,
47 m_size, globeHidesPoint );
50 if (globeHidesPoint)
return;
52 m_positions.reserve(pointRepeatNumber);
54 qint32 topY = ( viewport->height() - m_size.height() ) / 2;
56 topY = y - m_size.height();
59 topY = y - ( m_size.height() / 2 );
65 for (
int i = 0; i < pointRepeatNumber; ++i ) {
67 qint32 leftX = ( viewport->width() - m_size.width() ) / 2;
69 leftX = x[i] - m_size.width();
72 leftX = x[i] - ( m_size.width() / 2 );
78 m_positions.append(
QPoint( leftX, topY ) );
82 GeoDataCoordinates m_coordinates;
86 BillboardGraphicsItem::BillboardGraphicsItem()
87 : MarbleGraphicsItem(new BillboardGraphicsItemPrivate(this))
91 GeoDataCoordinates BillboardGraphicsItem::coordinate()
const
93 Q_D(
const BillboardGraphicsItem);
94 return d->m_coordinates;
97 void BillboardGraphicsItem::setCoordinate(
const GeoDataCoordinates &coordinates )
99 Q_D(BillboardGraphicsItem);
100 d->m_coordinates = coordinates;
106 return d->positions();
114 rects.
reserve(d->m_positions.size());
116 QSizeF const size = d->m_size;
117 for (
const QPointF &point: d->m_positions) {
118 rects <<
QRectF(point, size);
126 if( rect.contains( point ) )
136 return d->m_alignment;
139 void BillboardGraphicsItem::setAlignment(
Qt::Alignment alignment)
141 Q_D(BillboardGraphicsItem);
142 d->m_alignment = alignment;
QVector< QRectF > boundingRects() const
Returns the absolute screen bounding boxes of the item.
Base class for all 2D labels (a.k.a.
QVector< QPointF > positions() const
Returns the absolute screen positions of the item.
Binds a QML item to a specific geodetic location in screen coordinates.
QRectF containsRect(const QPointF &point) const
Returns the rect of one representation of the object that is at the given position.
Q_INVOKABLE void setProjection(uint proj)
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sun Jun 26 2022 04:10:35 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.