File indexing completed on 2024-05-12 03:50:14

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2013 Mayank Madan <maddiemadan@gmail.com>
0004 // SPDX-FileCopyrightText: 2013 Sanjiban Bairagya <sanjiban22393@gmail.com>
0005 //
0006 
0007 #ifndef GEODATAMODEL_H
0008 #define GEODATAMODEL_H
0009 
0010 #include "GeoDataGeometry.h"
0011 #include "MarbleGlobal.h"
0012 #include "GeoDataLink.h"
0013 
0014 namespace Marble {
0015 
0016 class GeoDataCoordinates;
0017 class GeoDataLink;
0018 class GeoDataLocation;
0019 class GeoDataOrientation;
0020 class GeoDataResourceMap;
0021 class GeoDataScale;
0022 class GeoDataModelPrivate;
0023 
0024 /**
0025  */
0026 class GEODATA_EXPORT GeoDataModel: public GeoDataGeometry
0027 {
0028 public:
0029     GeoDataModel();
0030 
0031     GeoDataModel( const GeoDataModel &other );
0032 
0033     GeoDataModel& operator=( const GeoDataModel &other );
0034 
0035     const char *nodeType() const override;
0036 
0037     EnumGeometryId geometryId() const override;
0038 
0039     GeoDataGeometry *copy() const override;
0040 
0041     bool operator==( const GeoDataModel &other ) const;
0042     bool operator!=( const GeoDataModel &other ) const;
0043 
0044     ~GeoDataModel() override;
0045 
0046     const GeoDataLink& link() const;
0047     GeoDataLink& link();
0048     void setLink( const GeoDataLink &link );
0049 
0050     const GeoDataCoordinates& coordinates() const;
0051     GeoDataCoordinates& coordinates();
0052     void setCoordinates(const GeoDataCoordinates &coordinates);
0053 
0054     const GeoDataScale& scale() const;
0055     GeoDataScale& scale();
0056     void setScale(const GeoDataScale &scale);
0057 
0058     const GeoDataOrientation& orientation() const;
0059     GeoDataOrientation& orientation();
0060     void setOrientation( const GeoDataOrientation &orientation);
0061 
0062     const GeoDataLocation& location() const;
0063     GeoDataLocation& location();
0064     void setLocation( const GeoDataLocation &location);
0065 
0066     const GeoDataResourceMap& resourceMap() const;
0067     GeoDataResourceMap& resourceMap();
0068     void setResourceMap( const GeoDataResourceMap &map);
0069 
0070     QString sourceHref() const;
0071     QString targetHref() const;
0072     void setSourceHref(const QString &sourceHref);
0073     void setTargetHref(const QString &targetHref);
0074 
0075 private:
0076     Q_DECLARE_PRIVATE(GeoDataModel)
0077 };
0078 
0079 }
0080 
0081 
0082 #endif // GEODATAMODEL_H