File indexing completed on 2024-04-28 15:39:08

0001 // SPDX-FileCopyrightText: 2021 Tobias Leupold <tl at stonemx dot de>
0002 //
0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 
0005 // Local includes
0006 #include "TracksLayer.h"
0007 #include "GeoDataModel.h"
0008 #include "KGeoTag.h"
0009 
0010 // Marble includes
0011 #include <marble/GeoPainter.h>
0012 
0013 // C++ includes
0014 #include <utility>
0015 
0016 static QStringList s_renderPosition { QStringLiteral("SURFACE") };
0017 
0018 TracksLayer::TracksLayer(QObject *parent, GeoDataModel *geoDataModel, QPen *trackPen)
0019     : QObject(parent),
0020       m_geoDataModel(geoDataModel),
0021       m_trackPen(trackPen)
0022 {
0023 }
0024 
0025 QStringList TracksLayer::renderPosition() const
0026 {
0027     return s_renderPosition;
0028 }
0029 
0030 bool TracksLayer::render(Marble::GeoPainter *painter, Marble::ViewportParams *, const QString &,
0031                          Marble::GeoSceneLayer *)
0032 {
0033     painter->setPen(*m_trackPen);
0034 
0035     for (const auto &segments : m_geoDataModel->marbleTracks()) {
0036         for (const auto &segment : segments) {
0037             painter->drawPolyline(segment);
0038         }
0039     }
0040 
0041     return true;
0042 }