#include "SARSatalliteSimulationWorkflow.h"
#include "QtCreateGPSPointsDialog.h"
#include "QResampleRefrenceRaster.h"
#include "DEMLLA2XYZTool.h"


void initBaseToolSARSateSimulationWorkflow(ToolBoxWidget* toolbox)
{
	// 1. 两行根数生成轨道节点
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"GF3B仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"GF3C仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT1A仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT1B仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"HJ2E仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"HJ2F仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT04仿真流程"}, new TLE2SatePositionVelocityToolButton(toolbox));

	// 3. 对齐地类与地形影像
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"GF3B仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"GF3C仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT1A仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT1B仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"HJ2E仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"HJ2F仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT04仿真流程"}, new QAligendLandClsAndDEMToolButton(toolbox));


	// 4. 计算地固坐标与坡面矢量影像
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"GF3B仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"GF3C仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT1A仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT1B仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"HJ2E仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"HJ2F仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));
	emit toolbox->addBoxToolItemInPathSIGNAL(QVector<QString>{u8"大场景仿真流程", u8"LT04仿真流程"}, new QDEMLLA2XYZSloperVectorToolButton(toolbox));





	
}

TLE2SatePositionVelocityToolButton::TLE2SatePositionVelocityToolButton(QWidget* parent)
{
	this->toolname = QString(u8" 两行根数生成轨道节点");
}

TLE2SatePositionVelocityToolButton::~TLE2SatePositionVelocityToolButton()
{
}

void TLE2SatePositionVelocityToolButton::run()
{
	QtCreateGPSPointsDialog* dialog = new QtCreateGPSPointsDialog;
	dialog->setWindowTitle(u8"两行根数生成轨道节点");
	dialog->show();
}

QAligendLandClsAndDEMToolButton::QAligendLandClsAndDEMToolButton(QWidget* parent)
{
	this->toolname = QString(u8" 对齐地类与地形影像");
}

QAligendLandClsAndDEMToolButton::~QAligendLandClsAndDEMToolButton()
{
}

void QAligendLandClsAndDEMToolButton::run()
{
	QResampleRefrenceRaster* dialog = new QResampleRefrenceRaster;
	dialog->setWindowTitle(u8"对齐地类与地形（根据地形栅格重采样地类影像）");
	dialog->show();
}

QDEMLLA2XYZSloperVectorToolButton::QDEMLLA2XYZSloperVectorToolButton(QWidget* parent)
{
	this->toolname = QString(u8" 地形生成地面目标坐标与坡面矢量");
}

QDEMLLA2XYZSloperVectorToolButton::~QDEMLLA2XYZSloperVectorToolButton()
{
}

void QDEMLLA2XYZSloperVectorToolButton::run()
{
	DEMLLA2XYZTool* dialog = new DEMLLA2XYZTool();
	dialog->setWindowTitle(u8"根据地形栅格生成地面目标坐标点与坡面矢量");
	dialog->show();
}
