1 /* SPDX-FileCopyrightText: 2021 Tobias Leupold <tobias.leupold@gmx.de>
2
3 SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-KDE-Accepted-GPL
4 */
5
6 // Local includes
7 #include "TracksLayer.h"
8 #include "GeoDataModel.h"
9 #include "KGeoTag.h"
10
11 // Marble includes
12 #include <marble/GeoPainter.h>
13
14 // C++ includes
15 #include <utility>
16
17 static QStringList s_renderPosition { QStringLiteral("SURFACE") };
18
TracksLayer(QObject * parent,GeoDataModel * geoDataModel,QPen * trackPen)19 TracksLayer::TracksLayer(QObject *parent, GeoDataModel *geoDataModel, QPen *trackPen)
20 : QObject(parent),
21 m_geoDataModel(geoDataModel),
22 m_trackPen(trackPen)
23 {
24 }
25
renderPosition() const26 QStringList TracksLayer::renderPosition() const
27 {
28 return s_renderPosition;
29 }
30
render(Marble::GeoPainter * painter,Marble::ViewportParams *,const QString &,Marble::GeoSceneLayer *)31 bool TracksLayer::render(Marble::GeoPainter *painter, Marble::ViewportParams *, const QString &,
32 Marble::GeoSceneLayer *)
33 {
34 painter->setPen(*m_trackPen);
35
36 for (const auto &segments : m_geoDataModel->marbleTracks()) {
37 for (const auto &segment : segments) {
38 painter->drawPolyline(segment);
39 }
40 }
41
42 return true;
43 }
44