LAMPCAE/src/PluginWBFZExchangePlugin/WBFZExchangePlugin.cpp

551 lines
25 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "IO/IOConfig.h"
#include "ModelData/modelDataBase.h"
#include "ModuleBase/ThreadControl.h"
#include "ModuleBase/ThreadTaskManager.h"
#include "WBFZExchangePlugin.h"
#include "DialogPCLStatisticalRemoveFilter.h"
#include "DialogPCLRadiusOutlierRemoval.h"
#include "DialogPCLGuassFilter.h"
#include "DialogPCLBilateralFilter.h"
#include "DialogPCLGPMesh.h"
#include "DialogPCLPoissonMesh.h"
#include "Settings/BusAPI.h"
#include <QFileInfo>
#include <QString>
#include <QMessageBox>
#include "Common/DebugLogger.h"
#include "AllHead.h"
#include "TaskTreeClass.h"
#include "TaskNodeList.h"
#include "EchoTableEditWindow.h"
#include "SqliteDBMainWindow.h"
#include "LAMPImageCreateClass.h"
#include "OCCTLine2Face.h"
#include "MeasurementDataInputDialog.h"
#include "FEKORCSScatterSettingDialog.h"
//#include "dialogechodatashow.h"
namespace WBFZ {
GUI::MainWindow* WBFZ::WBFZExchangePlugin::_mainwindow = nullptr;
WBFZExchangePlugin::WBFZExchangePlugin(GUI::MainWindow* m)
{
_describe = "WBFZExchangePlugin Installed Successfully";
_mainwindow = m;
// 点云操作
connect(_mainwindow, SIGNAL(on_pclStatisticalRemoveFilter(GUI::MainWindow*)), this,
SLOT(pclStatisticalRemoveFilter(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_pclRadiusOutlierRemoval(GUI::MainWindow*)), this,
SLOT(pclRadiusOutlierRemoval(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_pclGuassFilter(GUI::MainWindow*)), this,
SLOT(pclGuassFilter(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_pclBilateralFilter(GUI::MainWindow*)), this,
SLOT(pclBilateralFilter(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_pclGPMesh(GUI::MainWindow*)), this,
SLOT(pclGPMesh(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_pclPoissonMesh(GUI::MainWindow*)), this,
SLOT(pclPoissonMesh(GUI::MainWindow*)));
// FEKO
connect(_mainwindow, SIGNAL(on_actionImageSetting(GUI::MainWindow*)), this,
SLOT(actionImageSetting(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_actionFEKO2csv(GUI::MainWindow*)), this,
SLOT(actionFEKO2csv(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_actionScatterExport(GUI::MainWindow*)), this,
SLOT(actionScatterExport(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_actionFEKOImage(GUI::MainWindow*)), this,
SLOT(actionFEKOImage(GUI::MainWindow*)));
connect(_mainwindow, SIGNAL(on_actionantScatteringFEKOSetting(GUI::MainWindow*)), this,
SLOT(actionantScatteringFEKOSetting(GUI::MainWindow*)));
// 属性表
connect(_mainwindow, SIGNAL(on_actionAttriutionDBShow(GUI::MainWindow*)), this,
SLOT(actionAttriutionDBShow(GUI::MainWindow*)));
connect(_mainwindow,SIGNAL(on_actionImageShowToolTriggleSIGNAL(GUI::MainWindow* )),this,SLOT(actionImageShowToolShow(GUI::MainWindow*)));
connect(_mainwindow,SIGNAL(on_actionRCShowToolSIGNAL(GUI::MainWindow* )),this,SLOT(actionactionRCShowTool(GUI::MainWindow*)));
connect(_mainwindow,SIGNAL(actionGenerateImportModelScript(int ,GUI::MainWindow* ,QStringList,QStringList ,QString )),this,SLOT(actionGenerateImportModelScript(int ,GUI::MainWindow* ,QStringList,QStringList ,QString )));
connect(_mainwindow,SIGNAL(on_actionLine2FaceSIGNAL()),this,SLOT(actionLine2FaceSLOT()));
// 仿真成像
connect(_mainwindow,SIGNAL(on_actionFEKOImageSetting_StripImage_SIGNAL()), this,SLOT(on_actionFEKOImageSetting_StripImage_SIGNAL()));
connect(_mainwindow,SIGNAL(on_actionFEKOImageSetting_SCaneImage_SIGNAL()), this,SLOT(on_actionFEKOImageSetting_SCaneImage_SIGNAL()));
connect(_mainwindow,SIGNAL(on_actionFEKOImageSetting_ISARImage_SIGNAL()), this,SLOT(on_actionFEKOImageSetting_ISARImage_SIGNAL()));
connect(_mainwindow,SIGNAL(on_actionFEKOImageSetting_CircleImage_SIGNAL()), this,SLOT(on_actionFEKOImageSetting_CircleImage_SIGNAL()));
// 散射设置
connect(_mainwindow,SIGNAL(on_actionRCSScatterSettingSIGNAL()), this,SLOT(on_actionRCSScatterSettingSLOT()));
// 室内测量成像
connect(_mainwindow,SIGNAL(on_actionImportRoomMeasurementImage_SIGNAL()), this,SLOT(on_actionImportRoomMeasurementImage_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionForestTargetStructMeasurement_SIGNAL()), this,SLOT(onactionForestTargetStructMeasurement_SIGNAL()));
// 散射测量参数输入界面
connect(_mainwindow,SIGNAL(onactionForestTargetStructMeasurement_SIGNAL()),this,SLOT(onactionForestTargetStructMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionForestTargetPhysicochemicalMeasurement_SIGNAL()),this,SLOT(onactionForestTargetPhysicochemicalMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionCropTargetStructMeasurement_SIGNAL()),this,SLOT(onactionCropTargetStructMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionCropTargetPhysicochemicalMeasurement_SIGNAL()),this,SLOT(onactionCropTargetPhysicochemicalMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionGrassLandTargetStructMeasurement_SIGNAL()),this,SLOT(onactionGrassLandTargetStructMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionGrassLandTargetPhysicochemicalMeasurement_SIGNAL()),this,SLOT(onactionGrassLandTargetPhysicochemicalMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionWaterBodyTargetSalinityMeasurement_SIGNAL()),this,SLOT(onactionWaterBodyTargetSalinityMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionSoilTargetRoughnessMeasurement_SIGNAL()),this,SLOT(onactionSoilTargetRoughnessMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionSoilTargetHumidityMeasurement_SIGNAL()),this,SLOT(onactionSoilTargetHumidityMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionDynamicWaterBodyTargetWindSpeedMeasurement_SIGNAL()),this,SLOT(onactionDynamicWaterBodyTargetWindSpeedMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionDynamicWaterBodyTargetWaveHeightMeasurement_SIGNAL()),this,SLOT(onactionDynamicWaterBodyTargetWaveHeightMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionRoadTargetRoughnessMeasurement_SIGNAL()),this,SLOT(onactionRoadTargetRoughnessMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionPreArtificialTarget3DMeasurement_SIGNAL()),this,SLOT(onactionPreArtificialTarget3DMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionGeometricSceneMeasurement_SIGNAL()),this,SLOT(onactionGeometricSceneMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionRadioSceneMeasurement_SIGNAL()),this,SLOT(onactionRadioSceneMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionLandScaneRoughnessMeasurement_SIGNAL()),this,SLOT(onactionLandScaneRoughnessMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionLandScaneHumidityMeasurement_SIGNAL()),this,SLOT(onactionLandScaneHumidityMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionWaterScaneWindSpeedMeasurement_SIGNAL()),this,SLOT(onactionWaterScaneWindSpeedMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionWaterScaneWaveHeightMeasurement_SIGNAL()),this,SLOT(onactionWaterScaneWaveHeightMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionForestScaneStructMeasurement_SIGNAL()),this,SLOT(onactionForestScaneStructMeasurement_SIGNAL()));
connect(_mainwindow,SIGNAL(onactionForestScanePhysicochemicalMeasurement_SIGNAL()),this,SLOT(onactionForestScanePhysicochemicalMeasurement_SIGNAL()));
DebugInfo("WBFZExchangePlugin::WBFZExchangePlugin has init \n");
}
bool WBFZExchangePlugin::install()
{
if(_mainwindow == nullptr)
return false;
PluginBase::install();
DebugInfo("WBFZExchangePlugin::WBFZExchangePlugin has install PluginBase::install\n ");
return true;
}
bool WBFZExchangePlugin::uninstall()
{
PluginBase::uninstall();
return true;
}
void WBFZExchangePlugin::reTranslate(QString) {}
GUI::MainWindow* WBFZExchangePlugin::getMWpt()
{
return _mainwindow;
}
// 事件绑定
void WBFZExchangePlugin::pclStatisticalRemoveFilter(GUI::MainWindow* m)
{
DebugInfo("WBFZExchangePlugin::pclStatisticalRemoveFilter has init\n");
MainWidget::DialogPCLStatisticalRemoveFilter dlg(m);
dlg.exec();
}
void WBFZExchangePlugin::pclRadiusOutlierRemoval(GUI::MainWindow* m)
{
DebugInfo("WBFZExchangePlugin::pclRadiusOutlierRemoval has init\n");
MainWidget::DialogPCLRadiusOutlierRemoval dlg(m);
dlg.exec();
}
void WBFZExchangePlugin::pclGuassFilter(GUI::MainWindow* m)
{
DebugInfo("WBFZExchangePlugin::pclGuassFilter has init\n");
MainWidget::DialogPCLGuassFilter dlg(m);
dlg.exec();
}
void WBFZExchangePlugin::pclBilateralFilter(GUI::MainWindow* m)
{
DebugInfo("WBFZExchangePlugin::pclBilateralFilter has init\n");
MainWidget::DialogPCLBilateralFilter dlg(m);
dlg.exec();
}
void WBFZExchangePlugin::pclGPMesh(GUI::MainWindow* m)
{
DebugInfo(" WBFZExchangePlugin::pclGPMesh has init\n");
MainWidget::DialogPCLGPMesh dlg(m);
dlg.exec();
}
// FEKO 设置
void WBFZExchangePlugin::actionImageSetting(GUI::MainWindow* m)
{
DebugInfo(" WBFZExchangePlugin::actionImageSetting has init\n");
FEKOImageSettingFun(m);
}
void WBFZExchangePlugin::actionFEKO2csv(GUI::MainWindow* m)
{
DebugInfo(" WBFZExchangePlugin::actionFEKO2csv has init\n");
FEKO2csvFun(m);
}
void WBFZExchangePlugin::actionScatterExport(GUI::MainWindow* m)
{
DebugInfo(" WBFZExchangePlugin::actionScatterExport has init\n");
ScatterExportFun(m);
}
void WBFZExchangePlugin::actionFEKOImage(GUI::MainWindow* m)
{
DebugInfo(" WBFZExchangePlugin::actionFEKOImage has init\n");
FEKOImageFun(m);
}
void WBFZExchangePlugin::actionantScatteringFEKOSetting(GUI::MainWindow* m)
{
DebugInfo(" WBFZExchangePlugin::actionantScatteringFEKOSetting has init\n");
antScatteringFEKOSettingFun(m);
}
void WBFZExchangePlugin::actionAttriutionDBShow(GUI::MainWindow* m) {
DebugInfo(" WBFZExchangePlugin::actionAttriutionDBShow has init\n");
SqliteDBMainWindow* w = new SqliteDBMainWindow(m);
w->show();
}
void WBFZExchangePlugin::actionImageShowToolShow(GUI::MainWindow* m) {
DebugInfo(" WBFZExchangePlugin::actionImageShowToolShow has init\n");
LAMPDataShowClass* w = new LAMPDataShowClass(m);
w->show();
}
void WBFZExchangePlugin::actionactionRCShowTool(GUI::MainWindow* m) {
// DebugInfo(" WBFZExchangePlugin::actionactionRCShowTool has init\n");
// WBCLFZ::DialogEchoDataShow* w = new WBCLFZ::DialogEchoDataShow(m);
// w->show();
}
void WBFZExchangePlugin::pclPoissonMesh(GUI::MainWindow* m) {
DebugInfo(" WBFZExchangePlugin::pclPoissonMesh has init\n");
MainWidget::DialogPCLPoissonMesh dlg(m);
dlg.exec();
}
void WBFZExchangePlugin::actionGenerateImportModelScript(int TaskID, GUI::MainWindow* m,
QStringList stlPath,QStringList geoList,
QString scriptPath)
{
scriptPath = scriptPath.replace(".lua", "_model_init_script.lua");
// 写入导入模型脚本
Setting::BusAPI::instance()->findTask(TaskID)->setState(Setting::TaskDescState::Running);
// 创建lua脚本内存
QString scripttext = "";
scripttext =scripttext +"app=cf.GetApplication()"+"\n";
scripttext =scripttext +"project=app.Project --- get current project"+"\n";
for(QString filepath:stlPath){
QFileInfo fileinfo(filepath);
QString filename = fileinfo.fileName();
scripttext =scripttext +QString("project.Importer.Mesh:Import(\"%1\")").arg(filepath);
scripttext=scripttext+"\n";
}
for(QString filepath:geoList){
QFileInfo fileinfo(filepath);
QString filename = fileinfo.fileName();
scripttext =scripttext +QString("project.Importer.Geometry:Import(\"%1\")").arg(filepath);
scripttext=scripttext+"\n";
}
// 创建文件对象
QFile file(scriptPath);
// 打开文件以供写入,如果文件不存在将创建新文件
if(file.open(QIODevice::WriteOnly | QIODevice::Text)) {
// 创建文本流并设置编码为UTF-8
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << scripttext;
// 关闭文件
file.close();
QMessageBox::information(m, u8"提示",u8"文件写入成功:\t"+scriptPath);
Setting::BusAPI::instance()->findTask(TaskID)->setState(Setting::TaskDescState::Finished);
} else {
qDebug() << "Could not open file for writing.";
QMessageBox::information(nullptr, QString::fromUtf8(u8"提示"),
QString::fromUtf8(u8"文件写入失败"));
Setting::BusAPI::instance()->findTask(TaskID)->setState(Setting::TaskDescState::Failed);
}
}
void WBFZExchangePlugin::actionLine2FaceSLOT() {
MergeSelectLine2Face(WBFZExchangePlugin::getMWpt());
}
void WBFZExchangePlugin::on_actionFEKOImageSetting_StripImage_SIGNAL() {
DebugInfo(" FEKOImageSettingFun has init\n");
// 参数界面设置
FEKOImageSettingTaskNodeClass* imageNode = new FEKOImageSettingTaskNodeClass();
DebugInfo(" FEKOImageSettingFun has init imageNode\n");
QString xmlfilepath = getSaveFilePath(_mainwindow, QString::fromUtf8(u8"任务xml"), QString::fromUtf8(u8"xml文件 (*.xml)"));
imageNode->loadXmlFile(xmlfilepath);
DebugInfo(" FEKOImageSettingFun has init loadXmlFile\n");
imageNode->TaskWindows->setOCCTDocument(_mainwindow);
//this->addTaskNode(imageNode);
DebugInfo(" FEKOImageSettingFun has init ExcuteTask\n");
imageNode->ExcuteTask("strip");
}
void WBFZExchangePlugin::on_actionFEKOImageSetting_SCaneImage_SIGNAL() {
DebugInfo(" FEKOImageSettingFun has init\n");
// 参数界面设置
FEKOImageSettingTaskNodeClass* imageNode = new FEKOImageSettingTaskNodeClass();
DebugInfo(" FEKOImageSettingFun has init imageNode\n");
QString xmlfilepath = getSaveFilePath(_mainwindow, QString::fromUtf8(u8"任务xml"), QString::fromUtf8(u8"xml文件 (*.xml)"));
imageNode->loadXmlFile(xmlfilepath);
DebugInfo(" FEKOImageSettingFun has init loadXmlFile\n");
imageNode->TaskWindows->setOCCTDocument(_mainwindow);
//this->addTaskNode(imageNode);
DebugInfo(" FEKOImageSettingFun has init ExcuteTask\n");
imageNode->ExcuteTask("scane");
}
void WBFZExchangePlugin::on_actionFEKOImageSetting_ISARImage_SIGNAL() {
DebugInfo(" FEKOImageSettingFun has init\n");
// 参数界面设置
FEKOImageSettingTaskNodeClass* imageNode = new FEKOImageSettingTaskNodeClass();
DebugInfo(" FEKOImageSettingFun has init imageNode\n");
QString xmlfilepath = getSaveFilePath(_mainwindow, QString::fromUtf8(u8"任务xml"), QString::fromUtf8(u8"xml文件 (*.xml)"));
imageNode->loadXmlFile(xmlfilepath);
DebugInfo(" FEKOImageSettingFun has init loadXmlFile\n");
imageNode->TaskWindows->setOCCTDocument(_mainwindow);
//this->addTaskNode(imageNode);
DebugInfo(" FEKOImageSettingFun has init ExcuteTask\n");
imageNode->ExcuteTask("isar");
}
void WBFZExchangePlugin::on_actionFEKOImageSetting_CircleImage_SIGNAL() {
DebugInfo(" FEKOImageSettingFun has init\n");
// 参数界面设置
FEKOImageSettingTaskNodeClass* imageNode = new FEKOImageSettingTaskNodeClass();
DebugInfo(" FEKOImageSettingFun has init imageNode\n");
QString xmlfilepath = getSaveFilePath(_mainwindow, QString::fromUtf8(u8"任务xml"), QString::fromUtf8(u8"xml文件 (*.xml)"));
imageNode->loadXmlFile(xmlfilepath);
DebugInfo(" FEKOImageSettingFun has init loadXmlFile\n");
imageNode->TaskWindows->setOCCTDocument(_mainwindow);
//this->addTaskNode(imageNode);
DebugInfo(" FEKOImageSettingFun has init ExcuteTask\n");
imageNode->ExcuteTask("cicle");
}
void WBFZExchangePlugin::on_actionImportRoomMeasurementImage_SIGNAL() {
// 导入室内测量成像结果
QString fileName = QFileDialog::getOpenFileName(
nullptr, // 父窗口
tr(u8"选择M1B极化文件"), // 标题
QString(), // 默认路径
tr(u8"ALL File(*.*);;ENVI Bin(*.bin);;ENVI Data(*.dat);;ENVI Data(*.data);;tiff影像(*.tif);;tiff影像(*.tiff)") // 文件过滤器
);
// 如果用户选择了文件
if (!fileName.isEmpty()) {
QString m1bfilepath=fileName;
LAMPDataShowClass* datashow=new LAMPDataShowClass();
datashow->show();
datashow->load_complex_data(m1bfilepath);
}
else {
QMessageBox::information(nullptr, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。"));
}
}
void WBFZExchangePlugin::on_actionRCSScatterSettingSLOT() {
// 散射界面设置
FEKORCSScatterSettingDialog* dialog=new FEKORCSScatterSettingDialog(_mainwindow);
dialog->setWindowTitle((u8"仿真RCS参数设置"));
dialog->show();
}
void WBFZExchangePlugin::onactionForestTargetStructMeasurement_SIGNAL() {
qDebug()<<u8"森林结构";
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::ForestTargetStructMeasurement);
dialog->setWindowTitle((u8"森林目标结构参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionSoilTargetRoughnessMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::SoilTargetRoughnessMeasurement);
dialog->setWindowTitle((u8"土壤粗糙度参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionForestTargetPhysicochemicalMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::ForestTargetPhysicochemicalMeasurement);
dialog->setWindowTitle((u8"森林目标理化特性参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionCropTargetStructMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::CropTargetStructMeasurement);
dialog->setWindowTitle((u8"农作物目标结构参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionCropTargetPhysicochemicalMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::CropTargetPhysicochemicalMeasurement);
dialog->setWindowTitle((u8"农作物目标理化特性参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionGrassLandTargetStructMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::GrassLandTargetStructMeasurement);
dialog->setWindowTitle((u8"草地目标结构参数参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionGrassLandTargetPhysicochemicalMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::GrassLandTargetPhysicochemicalMeasurement);
dialog->setWindowTitle((u8"草地目标理化特性参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionWaterBodyTargetSalinityMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::WaterBodyTargetSalinityMeasurement);
dialog->setWindowTitle((u8"水体盐度参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionSoilTargetHumidityMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::SoilTargetHumidityMeasurement);
dialog->setWindowTitle((u8"土壤湿度参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionDynamicWaterBodyTargetWindSpeedMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::DynamicWaterBodyTargetWindSpeedMeasurement);
dialog->setWindowTitle((u8"水体表面风速参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionDynamicWaterBodyTargetWaveHeightMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::DynamicWaterBodyTargetWaveHeightMeasurement);
dialog->setWindowTitle((u8"水体表面浪高参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionRoadTargetRoughnessMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::RoadTargetRoughnessMeasurement);
dialog->setWindowTitle((u8"路面粗糙度参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionPreArtificialTarget3DMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::PreArtificialTarget3DMeasurement);
dialog->setWindowTitle((u8"人工目标三维结构"));
dialog->show();
}
void WBFZExchangePlugin::onactionGeometricSceneMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::GeometricSceneMeasurement);
dialog->setWindowTitle((u8"几何校正参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionRadioSceneMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::RadioSceneMeasurement);
dialog->setWindowTitle((u8"辐射校正参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionLandScaneRoughnessMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::LandScaneRoughnessMeasurement);
dialog->setWindowTitle((u8"陆表粗糙度参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionLandScaneHumidityMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::LandScaneHumidityMeasurement);
dialog->setWindowTitle((u8"陆表湿度参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionWaterScaneWindSpeedMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::WaterScaneWindSpeedMeasurement);
dialog->setWindowTitle((u8"水体表面风速参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionWaterScaneWaveHeightMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::WaterScaneWaveHeightMeasurement);
dialog->setWindowTitle((u8"水体表面浪高参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionForestScaneStructMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::ForestScaneStructMeasurement);
dialog->setWindowTitle((u8"植被场景结构参数"));
dialog->show();
}
void WBFZExchangePlugin::onactionForestScanePhysicochemicalMeasurement_SIGNAL() {
MeasurementDataInputDialog* dialog=new MeasurementDataInputDialog(_mainwindow,MeasurementInputType::ForestScanePhysicochemicalMeasurement);
dialog->setWindowTitle((u8"植被场景理化特性参数"));
dialog->show();
}
} // namespace WBFZ
void Register(GUI::MainWindow* m, QList<Plugins::PluginBase*>* ps)
{
Plugins::PluginBase* p = new WBFZ::WBFZExchangePlugin(m);
ps->append(p);
}
void FEKOImageSettingFun(GUI::MainWindow* m)
{
DebugInfo(" FEKOImageSettingFun has init\n");
// 参数界面设置
FEKOImageSettingTaskNodeClass* imageNode = new FEKOImageSettingTaskNodeClass();
imageNode->TaskWindows->setOCCTDocument(m);
DebugInfo(" FEKOImageSettingFun has init imageNode\n");
QString xmlfilepath = getSaveFilePath(m, QString::fromUtf8(u8"任务xml"), QString::fromUtf8(u8"xml文件 (*.xml)"));
imageNode->loadXmlFile(xmlfilepath);
DebugInfo(" FEKOImageSettingFun has init loadXmlFile\n");
imageNode->TaskWindows->setOCCTDocument(m);
//this->addTaskNode(imageNode);
DebugInfo(" FEKOImageSettingFun has init ExcuteTask\n");
imageNode->ExcuteTask();
}
void FEKO2csvFun(GUI::MainWindow* m)
{
DebugInfo(" FEKO2csvFun has init\n");
QString xmlfilepath = getSaveFilePath(m, QString::fromUtf8(u8"设置FEKO结果导入任务xml"),
QString::fromUtf8(u8"xml文件 (*.xml)"));
DebugInfo(" xml file path %s \n",xmlfilepath.toStdString().c_str());
FEKOResultImportTaskNode* fekoresulttask = new FEKOResultImportTaskNode();
fekoresulttask->loadXmlFile(xmlfilepath);
fekoresulttask->ExcuteTask();
}
void ScatterExportFun(GUI::MainWindow* m)
{
DebugInfo(" ScatterExportFun has init\n");
EchoTableEditWindow* echoEditwindow = new EchoTableEditWindow(m);
echoEditwindow->show();
}
void FEKOImageFun(GUI::MainWindow* m)
{
DebugInfo(" FEKOImageFun has init\n");
LAMPImageCreateClass* imagewindows = new LAMPImageCreateClass;
imagewindows->on_pushButton_loadfekosimulationxml_clicked();
imagewindows->show();
}
void antScatteringFEKOSettingFun(GUI::MainWindow* m)
{
DebugInfo(" antScatteringFEKOSettingFun has init\n");
FEKOScatterSettingTaskNodeClass* scattertasknode=new FEKOScatterSettingTaskNodeClass();
scattertasknode->TaskWindows->setDocument3d(m);
QString xmlfilepath = getSaveFilePath(m, QString::fromUtf8(u8"任务xml"),
QString::fromUtf8(u8"xml文件 (*.xml)"));
scattertasknode->loadXmlFile(xmlfilepath);
scattertasknode->TaskWindows->setDocument3d(m);
//this->addTaskNode(scattertasknode);
DebugInfo(" antScatteringFEKOSettingFun ExcuteTask t\n");
scattertasknode->ExcuteTask();
}
// FEKO 参数调用