|
@@ -0,0 +1,491 @@
|
|
|
+#include "handlepool.h"
|
|
|
+#include <iostream>
|
|
|
+#include <vtkTecplotReader.h>
|
|
|
+#include <vtkAppendFilter.h>
|
|
|
+#include <vtkMultiBlockDataSet.h>
|
|
|
+#include <vtkUnstructuredGrid.h>
|
|
|
+#include <vtkNew.h>
|
|
|
+#include <vtkSphereSource.h>
|
|
|
+#include <vtkPolyDataMapper.h>
|
|
|
+#include <vtkActor.h>
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief:the constructor
|
|
|
+ * @param:
|
|
|
+ * @ret:
|
|
|
+ * @birth: creadted by czm in 20230406
|
|
|
+ */
|
|
|
+handlePool::handlePool(QObject *parent) : QObject(parent)
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+handlePool::handlePool(QTabWidget *w)
|
|
|
+{
|
|
|
+ this->w=w;
|
|
|
+ map_contourdisplay.clear();
|
|
|
+ map_linedisplay.clear();
|
|
|
+ qmapManager.clear();
|
|
|
+ qmapRender.clear();
|
|
|
+ qmapResultmanager.clear();
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief:the destructor
|
|
|
+ * @param:
|
|
|
+ * @ret:
|
|
|
+ * @birth: creadted by czm in 20230406
|
|
|
+ */
|
|
|
+handlePool::~handlePool()
|
|
|
+{
|
|
|
+ qDeleteAll(qmapRender);
|
|
|
+ qDeleteAll(qmapManager);
|
|
|
+ qDeleteAll(map_contourdisplay);
|
|
|
+ qDeleteAll(map_linedisplay);
|
|
|
+ qDeleteAll(qmapResultmanager);
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: handle msg from recvstate(slot)(处理来自接收状态机的消息,槽函数)
|
|
|
+ * @param:recv msg
|
|
|
+ * @ret:void
|
|
|
+ * @birth: creadted by czm in 20230406
|
|
|
+ */
|
|
|
+void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
|
|
|
+{
|
|
|
+ std::cout<<"recvmsg"<<recvmsg<<std::endl;
|
|
|
+ vtkJsonObject* json_object = new vtkJsonObject();
|
|
|
+ QVTKRenderer* render_=NULL;
|
|
|
+ json_object->FromJSON(recvmsg);
|
|
|
+
|
|
|
+ operateRender(json_object,render_);//解析命令
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: Operate render according to commands(根据命令操作render)
|
|
|
+ * @param: jsonObject->action render
|
|
|
+ * @ret:void
|
|
|
+ * @birth: creadted by czm in 20230406
|
|
|
+ */
|
|
|
+void handlePool::operateRender(vtkJsonObject* object,QVTKRenderer* render_)
|
|
|
+{
|
|
|
+ if(object->action == "init"){
|
|
|
+ delete object;
|
|
|
+ object = NULL;
|
|
|
+ return;
|
|
|
+ }else if(object->action == "loaddata"){
|
|
|
+ judgeLoaddata(object,render_);
|
|
|
+ return;
|
|
|
+ }else if(object->action == "zoomout"){//缩小
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->ZoomOut();
|
|
|
+ }else if(object->action == "zoomin"){
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->ZoomIn();
|
|
|
+ }else if(object->action == "AlignToPlusAxisX"){//正x轴对齐
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->AlignToPlusAxisX();
|
|
|
+ }else if(object->action == "AlignToPlusAxisY"){//正y轴对齐
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->AlignToPlusAxisY();
|
|
|
+ }else if(object->action == "AlignToPlusAxisZ"){//正z轴对齐
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->AlignToPlusAxisZ();
|
|
|
+ }else if(object->action == "AlignToMinusAxisX"){//负x轴对齐
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->AlignToMinusAxisX();
|
|
|
+ }else if(object->action == "AlignToMinusAxisY"){//负y轴对齐
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->AlignToMinusAxisY();
|
|
|
+ }else if(object->action == "AlignToMinusAxisZ"){//负z轴对齐
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->AlignToMinusAxisZ();
|
|
|
+ }else if(object->action == "TransformToIsometric"){//等距视图
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ render_->camera_->TransformToIsometric();
|
|
|
+ }else if(object->action == "ResultImport"){//导入结果
|
|
|
+ resultImport(object,render_);
|
|
|
+ return;
|
|
|
+ }else if(object->action == "ContourDisplay"){//显示云图
|
|
|
+ if(!result_contourdisplay(object,render_)){
|
|
|
+ cout<<"please import tecplot result first!"<<endl;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }else if(object->action == "LineDisplay"){//显示等值线图
|
|
|
+ if(!result_linedisplay(object,render_)){
|
|
|
+ cout<<"please import tecplot result first!"<<endl;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ send_picture(object,render_);//发送图片
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: deal with msg about loaddata
|
|
|
+ * @param: vtkJsonObject QVTKRenderer
|
|
|
+ * @ret: bool
|
|
|
+ * @birth: created by czm in 20230425
|
|
|
+ */
|
|
|
+void handlePool::judgeLoaddata(vtkJsonObject *object, QVTKRenderer *render_)
|
|
|
+{
|
|
|
+ if(!qmapRender.contains(object->proId)){//判断有无窗口
|
|
|
+ render_ = new QVTKRenderer();
|
|
|
+ qmapRender.insert(object->proId,render_);
|
|
|
+ render_->init();
|
|
|
+ w->addTab(render_->GetWidget(),object->proId);
|
|
|
+ }else{
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
|
+ auto flag = render_->widgetFlag;
|
|
|
+ if(flag == QVTKRenderer::WidgetModel::NoModel){
|
|
|
+ }else if(flag == QVTKRenderer::WidgetModel::UgridModel){//判断窗口当前模型
|
|
|
+ if(qmapManager.value(object->proId)->filePath == object->filePath){
|
|
|
+ send_picture(object,render_);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ render_->HideAllActors();
|
|
|
+ render_->RemoveAllActors();
|
|
|
+ }else if(flag == QVTKRenderer::WidgetModel::ResultModel){
|
|
|
+ render_->HideAllActors();
|
|
|
+ render_->RemoveAllActors();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //QString m_filePath = object->filePath;//测试路径
|
|
|
+ QString m_filePath = "F:\\czm\\vtkfile\\tfg.ugrid";
|
|
|
+ QFileInfo fileinfo_(m_filePath);
|
|
|
+ if(!fileinfo_.isFile()){
|
|
|
+ cout<<"file path is Empty!"<<endl;
|
|
|
+ send_picture(object,render_);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ MeshManager* meshmanager = NULL;
|
|
|
+
|
|
|
+ meshmanager = new MeshManager();
|
|
|
+
|
|
|
+ bool f = meshmanager->LoadData(m_filePath);
|
|
|
+ if(f){
|
|
|
+ if(render_){
|
|
|
+ meshmanager->DisplayMesh(render_);
|
|
|
+ render_->ZoomToExtents();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ qmapRender.value(object->proId)->widgetFlag = QVTKRenderer::WidgetModel::UgridModel;//设置widget中有模型
|
|
|
+ if(!qmapManager.contains(object->proId)){//判断加载模型和当前模型是不是一样
|
|
|
+ qmapManager.insert(object->proId,set_map_meshManager(object,meshmanager));
|
|
|
+ }else{
|
|
|
+ delete qmapManager.value(object->proId);//析构原来的
|
|
|
+ qmapManager[object->proId] = (set_map_meshManager(object,meshmanager));
|
|
|
+ }
|
|
|
+ send_picture(object,render_);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: import result file
|
|
|
+ * @param: vtkobject* and renderer
|
|
|
+ * @ret: void
|
|
|
+ * @birth: created by czm in 20230420
|
|
|
+ */
|
|
|
+bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
|
|
|
+{
|
|
|
+ QStringList fileName_list=object_->getFileName().split(",");
|
|
|
+ if(fileName_list.isEmpty()){
|
|
|
+ cout<< "No Tecplot file is ready to read!"<<endl;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //判断有无窗口
|
|
|
+ if(!qmapRender.contains(object_->proId)){
|
|
|
+ renderer_ = new QVTKRenderer();
|
|
|
+ qmapRender.insert(object_->proId,renderer_);
|
|
|
+ renderer_->init();
|
|
|
+ w->addTab(renderer_->GetWidget(),object_->proId);
|
|
|
+ renderer_->widgetFlag = QVTKRenderer::WidgetModel::NoModel;
|
|
|
+ }else{
|
|
|
+ renderer_ = qmapRender[object_->proId];
|
|
|
+ auto flag = renderer_->widgetFlag;
|
|
|
+ if(flag==QVTKRenderer::WidgetModel::UgridModel){
|
|
|
+ renderer_ = qmapRender.value(object_->proId);
|
|
|
+ renderer_->HideAllActors();
|
|
|
+ renderer_->RemoveAllActors();
|
|
|
+ }else if(flag ==QVTKRenderer::WidgetModel::ResultModel){
|
|
|
+ if(qmapResultmanager.value(object_->proId)->fileName == object_->getFileName()){//to do 详细比对文件名
|
|
|
+ send_picture(object_,renderer_);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ //qmapResultmanager.value(object_->proId)->resultMeshManager_->HideAllActors();
|
|
|
+// renderer_->HideAllActors();
|
|
|
+// renderer_->RemoveAllActors();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ object_->filePath = "C:\\Users\\Administrator\\Desktop\\Postprocess_Binary";//测试路径
|
|
|
+ QDir dir(object_->filePath);
|
|
|
+ if(!dir.exists()){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ ResultMeshManager* rsMeshManager = new ResultMeshManager();
|
|
|
+ rsMeshManager->Clear();
|
|
|
+ bool flag = true;
|
|
|
+ for(int i =0;i<fileName_list.size();i++){
|
|
|
+ bool f =rsMeshManager->LoadData(object_->filePath+"/"+fileName_list[i]);
|
|
|
+ if(f){
|
|
|
+ rsMeshManager->SetSaveIndex(i);
|
|
|
+ if(renderer_){
|
|
|
+ rsMeshManager->DisplayMesh(renderer_);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(flag)
|
|
|
+ {
|
|
|
+ rsMeshManager->HideAllActors();
|
|
|
+ rsMeshManager->ShowAll();
|
|
|
+ rsMeshManager->DisplayMeshByIndex(0);
|
|
|
+ rsMeshManager->SetNameTypeMap();
|
|
|
+ rsMeshManager->InitWidgetsParameter();
|
|
|
+ renderer_->ZoomToExtents();
|
|
|
+ }
|
|
|
+
|
|
|
+// ContourDisplayW *contourdw = new ContourDisplayW();//云图窗口参数初始化
|
|
|
+// rsMeshManager->SetCotourWidget(contourdw);
|
|
|
+// rsMeshManager->SetWidgetRange();
|
|
|
+// rsMeshManager->SetWidgetScalarName();
|
|
|
+
|
|
|
+ LineDisplayW *linedw = new LineDisplayW();//等值线
|
|
|
+ rsMeshManager->SetLineWidget(linedw);
|
|
|
+
|
|
|
+ renderer_->widgetFlag = QVTKRenderer::WidgetModel::ResultModel;//设置当前窗口模型状态
|
|
|
+ if(qmapResultmanager.contains(object_->proId)){//加载不同的结果文件
|
|
|
+ delete qmapResultmanager.value(object_->proId);
|
|
|
+ qmapResultmanager[object_->proId] = (set_map_resultManager(object_,rsMeshManager));
|
|
|
+ }else{
|
|
|
+ qmapResultmanager[object_->proId]=(set_map_resultManager(object_,rsMeshManager));
|
|
|
+ }
|
|
|
+ emit sendImg_handlePoolToSendstate(object_->ToJson("importResult_contour",buildResultImport_msg(rsMeshManager)));//发送结果数据
|
|
|
+ emit sendImg_handlePoolToSendstate(object_->ToJson("importResult_line",buildResultImport_msg(rsMeshManager)));//发送结果数据
|
|
|
+
|
|
|
+ send_picture(object_,renderer_);
|
|
|
+ return true;
|
|
|
+}
|
|
|
+/*
|
|
|
+ * @brief: analysis msg about contourdisplay
|
|
|
+ * @param: object and render
|
|
|
+ * @ret: bool
|
|
|
+ * @birth: created by czm in 20230421
|
|
|
+ */
|
|
|
+bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* render_)
|
|
|
+{
|
|
|
+ ContourDisplay* condis = NULL;
|
|
|
+
|
|
|
+ if(!qmapResultmanager.contains(object_->proId)) return false;
|
|
|
+ render_ = qmapRender[object_->proId];
|
|
|
+ if(map_contourdisplay.contains(object_->proId)){
|
|
|
+ condis = map_contourdisplay.value(object_->proId);//to do
|
|
|
+ }else{
|
|
|
+ condis = new ContourDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
|
|
|
+ map_contourdisplay.insert(object_->proId,condis);
|
|
|
+ }
|
|
|
+ condis->contourdisplay_execute(object_);
|
|
|
+ send_picture(object_,render_);
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: analysis msg about linedisplay
|
|
|
+ * @param: object
|
|
|
+ * @ret: bool
|
|
|
+ * @birth: created by czm in 20230424
|
|
|
+ */
|
|
|
+bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_)
|
|
|
+{
|
|
|
+ LineDisplay* linedis = NULL;
|
|
|
+ if(!qmapResultmanager.contains(object_->proId))return false;
|
|
|
+ render_ = qmapRender[object_->proId];
|
|
|
+ if(map_linedisplay.contains(object_->proId)){
|
|
|
+ linedis = map_linedisplay.value(object_->proId);
|
|
|
+ }else{
|
|
|
+ linedis = new LineDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
|
|
|
+ map_linedisplay.insert(object_->proId,linedis);
|
|
|
+ }
|
|
|
+ linedis->linedisplay_execute(object_);
|
|
|
+ send_picture(object_,render_);
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: save the tecplot filename into QStringList
|
|
|
+ * @param: filePath
|
|
|
+ * @ret: QStringList
|
|
|
+ * @birth: created by czm in 20230420
|
|
|
+ */
|
|
|
+//QStringList handlePool::getFileNameList(QString filePath)
|
|
|
+//{
|
|
|
+// QStringList string_list;
|
|
|
+// QDir dir(filePath); //需不需要加"\\"?
|
|
|
+// if(!dir.exists()){
|
|
|
+// cout <<"filePath error!please check again!"<<endl;
|
|
|
+// return string_list;
|
|
|
+// }
|
|
|
+// dir.setFilter(QDir::Files);
|
|
|
+// QStringList list = dir.entryList(QDir::Files);
|
|
|
+// foreach (QFileInfo file, list) {
|
|
|
+// if(file.fileName().split(".").back() == "plt"){
|
|
|
+// string_list.append(file.fileName());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return string_list;
|
|
|
+//}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: build result file mash which need to be sent to java
|
|
|
+ * @param: resultmeshManager
|
|
|
+ * @ret: msg(QString)
|
|
|
+ * @birth: created by czm in 20230424
|
|
|
+ */
|
|
|
+QMap<QString,string> handlePool::buildResultImport_msg(ResultMeshManager *cmanager)
|
|
|
+{
|
|
|
+ QMap<QString,string> map_tmp;
|
|
|
+ cmanager->SetNameTypeMap();
|
|
|
+ map<string,int> map_ = cmanager->GetNameTypeMap();
|
|
|
+ string msg;
|
|
|
+ for(map<string,int>::iterator it=map_.begin();it!=map_.end();it++){
|
|
|
+ msg+=removeSpaces(it->first);
|
|
|
+ msg+="#";
|
|
|
+ msg+=to_string(it->second);//0-point scalar 1-cell scalar
|
|
|
+ msg+=",";
|
|
|
+ }
|
|
|
+ msg = msg.erase(msg.size()-1);
|
|
|
+ map_tmp.insert("nameTypes",msg);
|
|
|
+ msg.clear();
|
|
|
+ for(int i=0;i<cmanager->GetMeshScalarNameVec().size();i++){
|
|
|
+ msg += removeSpaces(cmanager->GetMeshScalarNameVec()[i]);
|
|
|
+ msg += ",";
|
|
|
+ }
|
|
|
+ msg = msg.erase(msg.size()-1);
|
|
|
+ map_tmp.insert("scalarNames",msg);
|
|
|
+ msg.clear();
|
|
|
+
|
|
|
+ msg = to_string(cmanager->getRange()[0]);
|
|
|
+ map_tmp.insert("range0",msg);
|
|
|
+ msg.clear();
|
|
|
+ msg = to_string(cmanager->getRange()[1]);
|
|
|
+ map_tmp.insert("range1",msg);
|
|
|
+ msg.clear();
|
|
|
+ msg = cmanager->GetMeshScalarNameVec()[0];
|
|
|
+ map_tmp.insert("scalarName",removeSpaces(msg));
|
|
|
+ return map_tmp;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: send picture
|
|
|
+ * @param: vtkJsonObject QVTKRenderer
|
|
|
+ * @ret: void
|
|
|
+ * @birth: created by czm in 20230425
|
|
|
+ */
|
|
|
+void handlePool::send_picture(vtkJsonObject *object, QVTKRenderer *render_)
|
|
|
+{
|
|
|
+ render_->CaptureWindowImages();
|
|
|
+ if(!render_->img.isEmpty()){
|
|
|
+ std::string img_ = render_->img.toStdString();
|
|
|
+ QMap<QString,string> map;
|
|
|
+ map["img"] = img_;
|
|
|
+ std::string json_ = object->ToJson("img",map);
|
|
|
+ emit sendImg_handlePoolToSendstate(json_);//信号
|
|
|
+ }
|
|
|
+ delete object;
|
|
|
+ object = NULL;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: remove string's spaces
|
|
|
+ * @param: string
|
|
|
+ * @ret: string
|
|
|
+ * @birth: created by czm in 20230426
|
|
|
+ */
|
|
|
+string handlePool::removeSpaces(string str)//删除字符串中的\u0000
|
|
|
+{
|
|
|
+ QChar h0 = 0x00;
|
|
|
+ QString str_;
|
|
|
+ if(QString::fromStdString(str).contains(h0)){
|
|
|
+ str_=QString::fromStdString(str).replace(h0,"");
|
|
|
+ }
|
|
|
+ return str_.toStdString();
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: get map which save qvtkrender
|
|
|
+ * @param: void
|
|
|
+ * @ret: QMap<QString, QVTKRenderer *>
|
|
|
+ * @birth: created by czm in 20230420
|
|
|
+ */
|
|
|
+QMap<QString, QVTKRenderer *> handlePool::getMapRender()
|
|
|
+{
|
|
|
+ return this->qmapRender;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: get map which save ResultMeshManager
|
|
|
+ * @param: void
|
|
|
+ * @ret: QMap<QString, ResultMeshManager *>
|
|
|
+ * @birth: created by czm in 20230420
|
|
|
+ */
|
|
|
+QMap<QString, pid_resultManager *> handlePool::getMapResultManager()
|
|
|
+{
|
|
|
+ return this->qmapResultmanager;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: create a pid_meshManager
|
|
|
+ * @param: vtkJsonObject MeshManager
|
|
|
+ * @ret: map_meshManager
|
|
|
+ * @birth: created by czm in 20230425
|
|
|
+ */
|
|
|
+pid_meshManager *handlePool::set_map_meshManager(vtkJsonObject *object, MeshManager *mmanager_)
|
|
|
+{
|
|
|
+ pid_meshManager* meshManager_p = new pid_meshManager();
|
|
|
+ meshManager_p->meshManager_ = mmanager_;
|
|
|
+ meshManager_p->fileName = object->getFileName();
|
|
|
+ meshManager_p->filePath = object->filePath;
|
|
|
+ return meshManager_p;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: create a pid_resultManager
|
|
|
+ * @param: vtkJsonObject ResultMeshManager
|
|
|
+ * @ret: pid_resultManager
|
|
|
+ * @birth: created by czm in 20230425
|
|
|
+ */
|
|
|
+pid_resultManager *handlePool::set_map_resultManager(vtkJsonObject *object, ResultMeshManager *rmanager_)
|
|
|
+{
|
|
|
+ pid_resultManager *resultManager_p = new pid_resultManager();
|
|
|
+ resultManager_p->resultMeshManager_ = rmanager_;
|
|
|
+ resultManager_p->fileName = object->getFileName();
|
|
|
+ resultManager_p->filePath = object->filePath;
|
|
|
+ return resultManager_p;
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * @brief: get map which save meshmanager
|
|
|
+ * @param: void
|
|
|
+ * @ret: QMap<QString, MeshManager *>
|
|
|
+ * @birth: created by czm in 20230420
|
|
|
+ */
|
|
|
+QMap<QString, pid_meshManager *> handlePool::getMapManager()
|
|
|
+{
|
|
|
+ return this->qmapManager;
|
|
|
+}
|
|
|
+
|