#pragma once
#ifndef __SIMULATIONSARTOOL__SARSATALLITESIMULATIONWORKFLOW__H__
#define __SIMULATIONSARTOOL__SARSATALLITESIMULATIONWORKFLOW__H__
#include "simulationsartool_global.h"
#include <QtWidgets/QMainWindow>
#include "ToolBoxWidget.h"
#include "QToolAbstract.h"


extern "C"  SIMULATIONSARTOOL_EXPORT void initSimulationSARToolSARSateSimulationWorkflow(ToolBoxWidget* toolbox);



class SIMULATIONSARTOOL_EXPORT QPolyfitSatelliteGPSModelToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QPolyfitSatelliteGPSModelToolButton(QWidget* parent = nullptr);
	~QPolyfitSatelliteGPSModelToolButton();
public:
	virtual void run() override;

};

class SIMULATIONSARTOOL_EXPORT QGeneratorGeoSimulationRsaterToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QGeneratorGeoSimulationRsaterToolButton(QWidget* parent = nullptr);
	~QGeneratorGeoSimulationRsaterToolButton();
public:
	virtual void run() override;

};

class SIMULATIONSARTOOL_EXPORT QGeneratorMapGeoAndSltLookTableToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QGeneratorMapGeoAndSltLookTableToolButton(QWidget* parent = nullptr);
	~QGeneratorMapGeoAndSltLookTableToolButton();
public:
	virtual void run() override;

};

class SIMULATIONSARTOOL_EXPORT QSimulationSlrSARRasterToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QSimulationSlrSARRasterToolButton(QWidget* parent = nullptr);
	~QSimulationSlrSARRasterToolButton();
public:
	virtual void run() override;

};




class SIMULATIONSARTOOL_EXPORT QEchoDataSimulationSARRFPCToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QEchoDataSimulationSARRFPCToolButton(QWidget* parent = nullptr);
	~QEchoDataSimulationSARRFPCToolButton();
public:
	virtual void run() override;

};


class SIMULATIONSARTOOL_EXPORT QInSARImageNetGeneratorToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QInSARImageNetGeneratorToolButton(QWidget* parent = nullptr);
	~QInSARImageNetGeneratorToolButton();
public:
	virtual void run() override;

};

class SIMULATIONSARTOOL_EXPORT QMapLooktableToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QMapLooktableToolButton(QWidget* parent = nullptr);
	~QMapLooktableToolButton();
public:
	virtual void run() override;

};

class SIMULATIONSARTOOL_EXPORT QSimulationBPImageMultiProductionLevel1_2ToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QSimulationBPImageMultiProductionLevel1_2ToolButton(QWidget* parent = nullptr);
	~QSimulationBPImageMultiProductionLevel1_2ToolButton();
public:
	virtual void run() override;

};

class SIMULATIONSARTOOL_EXPORT QSimulationBPImageL1BToolButton : public QToolAbstract {
	Q_OBJECT
public:
	QSimulationBPImageL1BToolButton(QWidget* parent = nullptr);
	~QSimulationBPImageL1BToolButton();
public:
	virtual void run() override;

};


#endif
