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