1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
//
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2014 Dennis Nienhüser <nienhueser@kde.org>
//
#ifndef SQUAD_INTERPOLATION
#define SQUAD_INTERPOLATION
#include <marble/MarbleWidget.h>
#include <marble/MarbleMap.h>
#include <marble/MarbleModel.h>
#include <marble/GeoPainter.h>
#include <marble/GeoDataLineString.h>
#include <marble/LayerInterface.h>
#include <QApplication>
namespace Marble {
class MyPaintLayer : public QObject, public LayerInterface
{
Q_OBJECT
public:
// Constructor
explicit MyPaintLayer( MarbleWidget* widget );
// LayerInterface
QStringList renderPosition() const;
bool render( GeoPainter *painter, ViewportParams *viewport,
const QString& renderPos = "NONE", GeoSceneLayer * layer = 0 );
GeoDataLatLonBox center() const;
private Q_SLOTS:
void addInterpolatedPoint();
private:
void addRandomCity( double minDistanceKm=500, double maxDistanceKm=1500 );
static GeoDataCoordinates basePoint( const GeoDataCoordinates &q1, const GeoDataCoordinates &q2, const GeoDataCoordinates &q3 );
MarbleWidget* m_widget;
GeoDataLineString m_cities;
GeoDataLineString m_interpolated;
double m_fraction;
double m_delta;
int m_index;
};
}
#endif // SQUAD_INTERPOLATION
|