#include "OperatorsLight.h" #include "GUIFrame/MainWindow.h" #include "GUIDialog/LightWidget.h" #include "PostGraphAdaptor/PostGraphObjectManager.h" #include "PostGraphAdaptor/PostGraphObjectLight.h" #include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h" #include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h" #include "FITK_Component/FITKWidget/FITKTabWidget.h" #include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostData.h" #include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPost3DManager.h" #include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostLight.h" #include "FITK_Interface/FITKInterfaceCFDPost/FITKCFDPostLightManager.h" namespace OperModel { bool OperatorsLight::execGUI() { GUI::MainWindow* mainWin = dynamic_cast(FITKAPP->getGlobalData()->getMainWindow()); if (mainWin == nullptr)return false; Comp::FITKTabWidget* eventWidget = mainWin->getEventWidget(); if (eventWidget == nullptr)return false; if (_senderName == "actionLight") { if (_isChecked) { GUI::LightWidget* lightWidget = new GUI::LightWidget(this); eventWidget->addTab(lightWidget, tr("Light")); } else { int index = eventWidget->findTabIndex(tr("Light")); QWidget* widget = eventWidget->widget(index); if (widget) { delete widget; widget = nullptr; } eventWidget->removeTab(index); } if (eventWidget->count() > 0)eventWidget->show(); else eventWidget->hide(); } else if (_senderName == "actionLightDelete") { int objID = -1; argValue(objID_String, objID); if (objID <= 0)return false; //移除灯光可视化 Interface::PostGraphObjectManager* actorManager = Interface::PostGraphObjectManager::getInstance(); if (actorManager == nullptr)return false; Interface::PostGraphLightManager* lightObjManager = actorManager->getGraphLightManager(); if (lightObjManager == nullptr)return false; for (int i = 0; i < lightObjManager->getDataCount(); i++) { Interface::PostGraphObjectLight* lightObj = lightObjManager->getDataByIndex(i); if(lightObj == nullptr)continue; if (lightObj->getLightData() == nullptr)continue; if (objID == lightObj->getLightData()->getDataObjectID()) { lightObjManager->removeDataObj(lightObj); } } //移除灯光数据 Interface::FITKCFDPostLightManager* lightDataManager = FITKAPP->getGlobalData()->getPostData()->getPostLightManager(); if (lightDataManager == nullptr)return false; lightDataManager->removeDataByID(objID); } return false; } bool OperatorsLight::execProfession() { return false; } }