File indexing completed on 2025-01-05 03:59:11
0001 /* 0002 SPDX-FileCopyrightText: 2008 Torsten Rahn <rahn@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef MARBLE_GEOSCENELAYER_H 0008 #define MARBLE_GEOSCENELAYER_H 0009 0010 #include <QString> 0011 #include <QVector> 0012 0013 #include "digikam_export.h" 0014 0015 #include "GeoDocument.h" 0016 0017 namespace Marble 0018 { 0019 0020 class GeoSceneAbstractDataset; 0021 class GeoSceneFilter; 0022 class GeoSceneLayerPrivate; 0023 0024 /** 0025 * @short Layer of a GeoScene document. 0026 */ 0027 0028 class DIGIKAM_EXPORT GeoSceneLayer : public GeoNode 0029 { 0030 public: 0031 explicit GeoSceneLayer( const QString& name ); 0032 ~GeoSceneLayer() override; 0033 0034 const char* nodeType() const override; 0035 0036 /** 0037 * @brief Add a data set to the legend 0038 * @param dataset the new data set 0039 */ 0040 void addDataset( GeoSceneAbstractDataset* ); 0041 0042 const GeoSceneAbstractDataset * dataset( const QString& ) const; 0043 GeoSceneAbstractDataset * dataset( const QString& ); 0044 0045 const GeoSceneAbstractDataset * groundDataset() const; 0046 GeoSceneAbstractDataset * groundDataset(); 0047 0048 QVector<GeoSceneAbstractDataset*> datasets() const; 0049 0050 QString name() const; 0051 0052 QString backend() const; 0053 void setBackend( const QString& plugin ); 0054 0055 /** 0056 * @brief returns whether the data is organized in quad tiles. 0057 */ 0058 bool isTiled() const; 0059 void setTiled( bool ); 0060 0061 QString role() const; 0062 void setRole( const QString& type ); 0063 0064 const GeoSceneFilter * filter() const; 0065 GeoSceneFilter * filter(); 0066 void addFilter( GeoSceneFilter * filter ); 0067 void removeFilter( GeoSceneFilter * filter ); 0068 0069 private: 0070 Q_DISABLE_COPY( GeoSceneLayer ) 0071 0072 GeoSceneLayerPrivate * const d; 0073 }; 0074 0075 } 0076 0077 #endif