File indexing completed on 2024-05-19 03:51:50

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 <geodata_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 GEODATA_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