#include "OperatorsInitial.h" #include "GUIFrame/PropertyWidget.h" #include "OperatorsInterface/TreeEventOperator.h" #include "GUIDialog/GUICalculateDialog/InitialWidget.h" #include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h" #include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h" #include "FITK_Interface/FITKInterfaceFlowOF/FITKOFPhysicsData.h" #include "FITK_Interface/FITKInterfaceFlowOF/FITKOFInitialConditions.h" namespace ModelOper { OperatorsInitial::OperatorsInitial() { } OperatorsInitial::~OperatorsInitial() { } bool OperatorsInitial::execGUI() { GUI::MainWindow* mainWindow = dynamic_cast(FITKAPP->getGlobalData()->getMainWindow()); if (mainWindow == nullptr)return false; GUI::PropertyWidget* propertyWidget = mainWindow->getPropertyWidget(); if (propertyWidget == nullptr)return false; auto phyData = FITKAPP->getGlobalData()->getPhysicsData(); if (phyData == nullptr)return false; auto initData = phyData->getInitialConditions(); if (initData == nullptr)return false; if (_senderName == "actionInitialEdit") { GUI::InitialWidget* widget = new GUI::InitialWidget(this, propertyWidget); propertyWidget->setWidget(widget); } else if(_senderName == "actionInitialDeleteGeo") { //几何删除后,求解器节点patch删除对应的patch对象,并更新界面 int geoId = -1; argValue("objID", geoId); int pathNum = initData->getPatchCount(); for (int i = 0; i < pathNum; i++) { auto patch = initData->getPatch(i); if (patch == nullptr)continue; if (geoId == patch->getGeometryId()) { initData->removePatch(i); break; } } GUI::InitialWidget* initWidget = dynamic_cast(propertyWidget->getCurrentWidget()); if (initWidget) { initWidget->updateWidget(); } } return true; } bool OperatorsInitial::execProfession() { GUI::MainWindow* mainWindow = dynamic_cast(FITKAPP->getGlobalData()->getMainWindow()); if (mainWindow == nullptr)return false; GUI::PropertyWidget* propertyWidget = mainWindow->getPropertyWidget(); if (propertyWidget == nullptr)return false; auto phyData = FITKAPP->getGlobalData()->getPhysicsData(); if (phyData == nullptr)return false; auto initData = phyData->getInitialConditions(); if (initData == nullptr)return false; if (_senderName == "actionInitialEdit") { } else if (_senderName == "actionInitialDeleteGeo") { } return true; } }