File indexing completed on 2024-04-28 03:48:57

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2013 Mayank Madan <maddiemadan@gmail.com>
0004 //
0005 
0006 
0007 #ifndef MARBLE_GEODATAFLYTO_H
0008 #define MARBLE_GEODATAFLYTO_H
0009 
0010 #include "GeoDataTourPrimitive.h"
0011 #include "MarbleGlobal.h"
0012 
0013 namespace Marble {
0014 
0015 class GeoDataAbstractView;
0016 class GeoDataFlyToPrivate;
0017 
0018 /**
0019  */
0020 class GEODATA_EXPORT GeoDataFlyTo: public GeoDataTourPrimitive
0021 {
0022 public:
0023     enum FlyToMode {
0024         Bounce,
0025         Smooth
0026     };
0027 
0028     GeoDataFlyTo();
0029 
0030     GeoDataFlyTo( const GeoDataFlyTo &other );
0031 
0032     GeoDataFlyTo& operator=( const GeoDataFlyTo &other );
0033     bool operator==( const GeoDataFlyTo& other ) const;
0034     bool operator!=( const GeoDataFlyTo& other ) const;
0035 
0036     ~GeoDataFlyTo() override;
0037 
0038     /** Provides type information for downcasting a GeoNode */
0039     const char* nodeType() const override;
0040 
0041     double duration() const;
0042 
0043     void setDuration( double duration );
0044 
0045     const GeoDataAbstractView *view() const;
0046 
0047     GeoDataAbstractView *view();
0048 
0049     void setView( GeoDataAbstractView *view );
0050 
0051     FlyToMode flyToMode() const;
0052 
0053     void setFlyToMode( const FlyToMode flyToMode );
0054 
0055 private:
0056     GeoDataFlyToPrivate* const d;
0057 };
0058 
0059 }
0060 
0061 #endif