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

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2009 Gaurav Gupta <1989.gaurav@googlemail.com>
0004 //
0005 
0006 #ifndef MARBLE_GEODATAABSTRACTVIEW_H
0007 #define MARBLE_GEODATAABSTRACTVIEW_H
0008 
0009 #include "MarbleGlobal.h"
0010 #include "GeoDataObject.h"
0011 
0012 #include "geodata_export.h"
0013 
0014 namespace Marble
0015 {
0016 class GeoDataCoordinates;
0017 class GeoDataTimeSpan;
0018 class GeoDataTimeStamp;
0019 class GeoDataAbstractViewPrivate;
0020 
0021 /**
0022  * @see GeoDataLookAt
0023  */
0024 class GEODATA_EXPORT GeoDataAbstractView : public GeoDataObject
0025 {
0026  public:
0027     GeoDataAbstractView();
0028 
0029     ~GeoDataAbstractView() override;
0030 
0031     GeoDataAbstractView( const GeoDataAbstractView &other );
0032 
0033     GeoDataAbstractView& operator=( const GeoDataAbstractView &other );
0034 
0035     bool operator==(const GeoDataAbstractView &other) const;
0036     inline bool operator!=(const GeoDataAbstractView &other) const { return !(*this == other); }
0037 
0038     virtual GeoDataAbstractView *copy() const = 0;
0039 
0040     const GeoDataTimeSpan& timeSpan() const;
0041 
0042     GeoDataTimeSpan& timeSpan();
0043 
0044     void setTimeSpan( const GeoDataTimeSpan &timeSpan );
0045 
0046     GeoDataTimeStamp& timeStamp();
0047 
0048     const GeoDataTimeStamp& timeStamp() const;
0049 
0050     void setTimeStamp( const GeoDataTimeStamp &timeStamp );
0051 
0052     AltitudeMode altitudeMode() const;
0053 
0054     void setAltitudeMode(const AltitudeMode altitudeMode);
0055 
0056     GeoDataCoordinates coordinates() const;
0057 
0058 private:
0059     GeoDataAbstractViewPrivate* const d;
0060 
0061 protected:
0062     bool equals(const GeoDataAbstractView &other) const;
0063 
0064     using GeoDataObject::equals;
0065 };
0066 
0067 } // namespace Marble
0068 
0069 #endif