551 lines
25 KiB
C++
551 lines
25 KiB
C++
|
||
#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 参数调用
|