#ifndef QGSPOINTCONVERTERPLUGIN_H
#define QGSPOINTCONVERTERPLUGIN_H

#include "QgsPointConverterPlugin_global.h"
#include "qgisplugin.h"

#include <QObject>
class QAction;
class QgsGeometry;
class QTextStream;

/**A plugin that converts vector layers to delimited text point files.
The vertices of polygon/line type layers are converted to point features*/

class QGSPOINTCONVERTERPLUGINSHARED_EXPORT QgsPointConverterPlugin: public QObject,public QgisPlugin
{
    Q_OBJECT

public:
    QgsPointConverterPlugin();
    QgsPointConverterPlugin(QgisInterface* iface);
    ~QgsPointConverterPlugin();
    void initGui();
    void unload();
private:
    QgisInterface* mIface;
    QAction* mAction;
    void convertPoint(QgsGeometry* geom, const QString& attributeString,QTextStream& stream) const;
    void convertMultiPoint(QgsGeometry* geom, const QString& attributeString,QTextStream& stream) const;
    void convertLineString(QgsGeometry* geom, const QString& attributeString,QTextStream& stream) const;
    void convertMultiLineString(QgsGeometry* geom, const QString& attributeString,QTextStream& stream) const;
    void convertPolygon(QgsGeometry* geom, const QString& attributeString,QTextStream& stream) const;
    void convertMultiPolygon(QgsGeometry* geom, const QString& attributeString,QTextStream& stream) const;
private slots:
    void convertToPoint();
};

#endif // QGSPOINTCONVERTERPLUGIN_H
