File indexing completed on 2024-05-05 03:50:39
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2014 Calin Cruceru <crucerucalincristian@gmail.com> 0004 // 0005 0006 #ifndef MERGINGPOLYLINENODESANIMATION_H 0007 #define MERGINGPOLYLINENODESANIMATION_H 0008 0009 #include <QObject> 0010 #include <QTimer> 0011 0012 #include "GeoDataCoordinates.h" 0013 0014 0015 namespace Marble 0016 { 0017 0018 class PolylineAnnotation; 0019 class GeoDataLineString; 0020 0021 class MergingPolylineNodesAnimation : public QObject 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 explicit MergingPolylineNodesAnimation( PolylineAnnotation *polyline ); 0027 ~MergingPolylineNodesAnimation() override; 0028 0029 public Q_SLOTS: 0030 void startAnimation(); 0031 0032 Q_SIGNALS: 0033 void nodesMoved(); 0034 void animationFinished(); 0035 0036 private Q_SLOTS: 0037 void updateNodes(); 0038 0039 private: 0040 qreal nodesDistance(); 0041 GeoDataCoordinates newCoords(); 0042 0043 QTimer *m_timer; 0044 0045 const int m_firstNodeIndex; 0046 const int m_secondNodeIndex; 0047 0048 GeoDataLineString *m_lineString; 0049 0050 const GeoDataCoordinates m_firstInitialCoords; 0051 const GeoDataCoordinates m_secondInitialCoords; 0052 }; 0053 0054 } // namespace Marble 0055 0056 #endif // MERGINGPOLYLINENODESANIMATION_H