|
@@ -25,9 +25,9 @@ handlePool::handlePool(QTabWidget *w)
|
|
this->w=w;
|
|
this->w=w;
|
|
map_contourdisplay.clear();
|
|
map_contourdisplay.clear();
|
|
map_linedisplay.clear();
|
|
map_linedisplay.clear();
|
|
- map_manager.clear();
|
|
|
|
- map_render.clear();
|
|
|
|
- map_resultmanager.clear();
|
|
|
|
|
|
+ qmapManager.clear();
|
|
|
|
+ qmapRender.clear();
|
|
|
|
+ qmapResultmanager.clear();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -39,11 +39,11 @@ handlePool::handlePool(QTabWidget *w)
|
|
*/
|
|
*/
|
|
handlePool::~handlePool()
|
|
handlePool::~handlePool()
|
|
{
|
|
{
|
|
- qDeleteAll(map_render);
|
|
|
|
- qDeleteAll(map_manager);
|
|
|
|
|
|
+ qDeleteAll(qmapRender);
|
|
|
|
+ qDeleteAll(qmapManager);
|
|
qDeleteAll(map_contourdisplay);
|
|
qDeleteAll(map_contourdisplay);
|
|
qDeleteAll(map_linedisplay);
|
|
qDeleteAll(map_linedisplay);
|
|
- qDeleteAll(map_resultmanager);
|
|
|
|
|
|
+ qDeleteAll(qmapResultmanager);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -76,80 +76,47 @@ void handlePool::operateRender(vtkJsonObject* object,QVTKRenderer* render_)
|
|
object = NULL;
|
|
object = NULL;
|
|
return;
|
|
return;
|
|
}else if(object->action == "loaddata"){
|
|
}else if(object->action == "loaddata"){
|
|
- if(!map_render.contains(object->proId)){
|
|
|
|
- render_ = new QVTKRenderer();
|
|
|
|
- map_render.insert(object->proId,render_);
|
|
|
|
- render_->init();
|
|
|
|
- w->addTab(render_->GetWidget(),object->proId);
|
|
|
|
- }else{
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
- }
|
|
|
|
- QString m_filePath = object->filePath;
|
|
|
|
- if(m_filePath.isEmpty()){
|
|
|
|
- cout<<"file path is Empty!"<<endl;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- MeshManager* meshmanager = NULL;
|
|
|
|
- if(!map_manager.contains(object->proId)){
|
|
|
|
- meshmanager = new MeshManager();
|
|
|
|
- map_manager.insert(object->proId,meshmanager);
|
|
|
|
- bool f = meshmanager->LoadData(m_filePath);
|
|
|
|
- if(f){
|
|
|
|
- if(render_){
|
|
|
|
- meshmanager->DisplayMesh(render_);
|
|
|
|
- render_->ZoomToExtents();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else{
|
|
|
|
- meshmanager = map_manager.value(object->proId);
|
|
|
|
- render_->CaptureWindowImages();
|
|
|
|
- if(!render_->img.isEmpty()){
|
|
|
|
- std::string img_ = render_->img.toStdString();
|
|
|
|
- std::string json_ = object->ToJson("img",img_);
|
|
|
|
- emit sendImg_handlePoolToSendstate(json_);//信号
|
|
|
|
- }
|
|
|
|
- delete object;
|
|
|
|
- object = NULL;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+ judgeLoaddata(object,render_);
|
|
|
|
+ return;
|
|
}else if(object->action == "zoomout"){//缩小
|
|
}else if(object->action == "zoomout"){//缩小
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->ZoomOut();
|
|
render_->camera_->ZoomOut();
|
|
}else if(object->action == "zoomin"){
|
|
}else if(object->action == "zoomin"){
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->ZoomIn();
|
|
render_->camera_->ZoomIn();
|
|
}else if(object->action == "AlignToPlusAxisX"){//正x轴对齐
|
|
}else if(object->action == "AlignToPlusAxisX"){//正x轴对齐
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->AlignToPlusAxisX();
|
|
render_->camera_->AlignToPlusAxisX();
|
|
}else if(object->action == "AlignToPlusAxisY"){//正y轴对齐
|
|
}else if(object->action == "AlignToPlusAxisY"){//正y轴对齐
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->AlignToPlusAxisY();
|
|
render_->camera_->AlignToPlusAxisY();
|
|
}else if(object->action == "AlignToPlusAxisZ"){//正z轴对齐
|
|
}else if(object->action == "AlignToPlusAxisZ"){//正z轴对齐
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->AlignToPlusAxisZ();
|
|
render_->camera_->AlignToPlusAxisZ();
|
|
}else if(object->action == "AlignToMinusAxisX"){//负x轴对齐
|
|
}else if(object->action == "AlignToMinusAxisX"){//负x轴对齐
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->AlignToMinusAxisX();
|
|
render_->camera_->AlignToMinusAxisX();
|
|
}else if(object->action == "AlignToMinusAxisY"){//负y轴对齐
|
|
}else if(object->action == "AlignToMinusAxisY"){//负y轴对齐
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->AlignToMinusAxisY();
|
|
render_->camera_->AlignToMinusAxisY();
|
|
}else if(object->action == "AlignToMinusAxisZ"){//负z轴对齐
|
|
}else if(object->action == "AlignToMinusAxisZ"){//负z轴对齐
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->AlignToMinusAxisZ();
|
|
render_->camera_->AlignToMinusAxisZ();
|
|
- }else if(object->action == "TransformToIsometric"){
|
|
|
|
- if(!map_render.contains(object->proId))return;
|
|
|
|
- render_ = map_render.value(object->proId);
|
|
|
|
|
|
+ }else if(object->action == "TransformToIsometric"){//等距视图
|
|
|
|
+ if(!qmapRender.contains(object->proId))return;
|
|
|
|
+ render_ = qmapRender.value(object->proId);
|
|
render_->camera_->TransformToIsometric();
|
|
render_->camera_->TransformToIsometric();
|
|
}else if(object->action == "ResultImport"){//导入结果
|
|
}else if(object->action == "ResultImport"){//导入结果
|
|
- if(!resultImport(object,render_))return;
|
|
|
|
|
|
+ resultImport(object,render_);
|
|
|
|
+ return;
|
|
}else if(object->action == "ContourDisplay"){//显示云图
|
|
}else if(object->action == "ContourDisplay"){//显示云图
|
|
if(!result_contourdisplay(object,render_)){
|
|
if(!result_contourdisplay(object,render_)){
|
|
cout<<"please import tecplot result first!"<<endl;
|
|
cout<<"please import tecplot result first!"<<endl;
|
|
@@ -161,45 +128,67 @@ void handlePool::operateRender(vtkJsonObject* object,QVTKRenderer* render_)
|
|
}
|
|
}
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- render_->CaptureWindowImages();
|
|
|
|
- if(!render_->img.isEmpty()){
|
|
|
|
- std::string img_ = render_->img.toStdString();
|
|
|
|
- std::string json_ = object->ToJson("img",img_);
|
|
|
|
- emit sendImg_handlePoolToSendstate(json_);//信号
|
|
|
|
- }
|
|
|
|
- delete object;
|
|
|
|
- object = NULL;
|
|
|
|
|
|
+ send_picture(object,render_);//发送图片
|
|
}
|
|
}
|
|
|
|
|
|
-//void handlePool::loadTecplotFile(QString fileName)
|
|
|
|
-//{
|
|
|
|
-// vtkNew<vtkTecplotReader> reader;
|
|
|
|
-// if (fileName == "") return;
|
|
|
|
-// reader->SetFileName(fileName.toStdString().c_str());
|
|
|
|
-// reader->Update();
|
|
|
|
-
|
|
|
|
-// vtkNew<vtkAppendFilter> filter;
|
|
|
|
-// filter->AddInputData(reader->GetOutput()->GetBlock(0));
|
|
|
|
-// filter->Update();
|
|
|
|
-
|
|
|
|
-// vtkUnstructuredGrid* grid = filter->GetOutput();
|
|
|
|
-// vtkPoints* points = grid->GetPoints();
|
|
|
|
-// vtkCellArray* cells = grid->GetCells();
|
|
|
|
|
|
+/*
|
|
|
|
+ * @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;
|
|
|
|
|
|
-// vtkNew<vtkPolyData> polydata;
|
|
|
|
-// polydata->SetPoints(points);
|
|
|
|
-// polydata->SetPolys(cells);
|
|
|
|
|
|
+ meshmanager = new MeshManager();
|
|
|
|
|
|
-// vtkNew<vtkPolyDataMapper> mapper;
|
|
|
|
-// mapper->SetInputData(polydata);
|
|
|
|
-// mapper->Update();
|
|
|
|
|
|
+ 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_);
|
|
|
|
+}
|
|
|
|
|
|
-// //to do
|
|
|
|
-// vtkActor* actor_ = vtkActor::New();
|
|
|
|
-// actor_->SetMapper(mapper);
|
|
|
|
-// actor_->GetProperty()->SetColor(1, 1, 1);
|
|
|
|
-// this->actor = actor_;
|
|
|
|
-//}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* @brief: import result file
|
|
* @brief: import result file
|
|
@@ -214,39 +203,75 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
|
|
cout<< "No Tecplot file is ready to read!"<<endl;
|
|
cout<< "No Tecplot file is ready to read!"<<endl;
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- ResultMeshManager* rsMeshManager = NULL;
|
|
|
|
- if(map_resultmanager.contains(object_->proId)){
|
|
|
|
- rsMeshManager = map_resultmanager.value(object_->proId);
|
|
|
|
- return true;//同一个proid加载不同的file或结果,要销毁上一个结果和记录
|
|
|
|
- //怎样判断和上次加载的file或结果不同?//to do
|
|
|
|
|
|
+ //判断有无窗口
|
|
|
|
+ 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{
|
|
}else{
|
|
- rsMeshManager = new ResultMeshManager();
|
|
|
|
- map_resultmanager.insert(object_->proId,rsMeshManager);
|
|
|
|
- for(int i =0;i<fileName_list.size();i++){
|
|
|
|
- //bool f =rsMeshManager->LoadData(fileName_list[i]);
|
|
|
|
- bool f =rsMeshManager->LoadData(object_->filePath+"/"+fileName_list[i]);
|
|
|
|
- if(f){
|
|
|
|
- rsMeshManager->SetSaveIndex(i);
|
|
|
|
- if(renderer_){
|
|
|
|
- rsMeshManager->DisplayMesh(renderer_);
|
|
|
|
- }
|
|
|
|
|
|
+ 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();
|
|
}
|
|
}
|
|
- rsMeshManager->ShowAll();
|
|
|
|
- rsMeshManager->DisplayMeshByIndex(0);
|
|
|
|
- rsMeshManager->SetNameTypeMap();
|
|
|
|
- renderer_->ZoomToExtents();
|
|
|
|
}
|
|
}
|
|
- emit sendImg_handlePoolToSendstate(object_->ToJson("importResult",buildResultImport_msg(rsMeshManager).toStdString()));
|
|
|
|
- renderer_->CaptureWindowImages();
|
|
|
|
- if(!renderer_->img.isEmpty()){
|
|
|
|
- std::string img_ = renderer_->img.toStdString();
|
|
|
|
- std::string json_ = object_->ToJson("img",img_);
|
|
|
|
- emit sendImg_handlePoolToSendstate(json_);//信号
|
|
|
|
|
|
+
|
|
|
|
+ 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();
|
|
|
|
|
|
- delete object_;
|
|
|
|
- object_ = NULL;
|
|
|
|
|
|
+ LineDisplayW *linedw = new LineDisplayW();
|
|
|
|
+ rsMeshManager->SetLineWidget(linedw);
|
|
|
|
+ rsMeshManager->SetWidgetRange();
|
|
|
|
+ rsMeshManager->SetWidgetScalarName();
|
|
|
|
+
|
|
|
|
+ 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",buildResultImport_msg(rsMeshManager)));//发送结果数据
|
|
|
|
+ send_picture(object_,renderer_);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
/*
|
|
/*
|
|
@@ -258,22 +283,17 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
|
|
bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* render_)
|
|
bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* render_)
|
|
{
|
|
{
|
|
ContourDisplay* condis = NULL;
|
|
ContourDisplay* condis = NULL;
|
|
- if(map_resultmanager.contains(object_->proId)) return false;
|
|
|
|
|
|
+
|
|
|
|
+ if(!qmapResultmanager.contains(object_->proId)) return false;
|
|
|
|
+ render_ = qmapRender[object_->proId];
|
|
if(map_contourdisplay.contains(object_->proId)){
|
|
if(map_contourdisplay.contains(object_->proId)){
|
|
- condis = map_contourdisplay.value(object_->proId);
|
|
|
|
|
|
+ condis = map_contourdisplay.value(object_->proId);//to do
|
|
}else{
|
|
}else{
|
|
- condis = new ContourDisplay(map_resultmanager.value(object_->proId));
|
|
|
|
|
|
+ condis = new ContourDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
|
|
map_contourdisplay.insert(object_->proId,condis);
|
|
map_contourdisplay.insert(object_->proId,condis);
|
|
condis->contourdisplay_execute(object_);
|
|
condis->contourdisplay_execute(object_);
|
|
}
|
|
}
|
|
- render_->CaptureWindowImages();
|
|
|
|
- if(!render_->img.isEmpty()){
|
|
|
|
- std::string img_ = render_->img.toStdString();
|
|
|
|
- std::string json_ = object_->ToJson("img",img_);
|
|
|
|
- emit sendImg_handlePoolToSendstate(json_);//信号
|
|
|
|
- }
|
|
|
|
- delete object_;
|
|
|
|
- object_ = NULL;
|
|
|
|
|
|
+ send_picture(object_,render_);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -286,22 +306,16 @@ bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* rend
|
|
bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_)
|
|
bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_)
|
|
{
|
|
{
|
|
LineDisplay* linedis = NULL;
|
|
LineDisplay* linedis = NULL;
|
|
- if(map_resultmanager.contains(object_->proId))return false;
|
|
|
|
|
|
+ if(!qmapResultmanager.contains(object_->proId))return false;
|
|
|
|
+ render_ = qmapRender[object_->proId];
|
|
if(map_linedisplay.contains(object_->proId)){
|
|
if(map_linedisplay.contains(object_->proId)){
|
|
linedis = map_linedisplay.value(object_->proId);
|
|
linedis = map_linedisplay.value(object_->proId);
|
|
}else{
|
|
}else{
|
|
- linedis = new LineDisplay(map_resultmanager.value(object_->proId));
|
|
|
|
|
|
+ linedis = new LineDisplay(qmapResultmanager.value(object_->proId)->resultMeshManager_);
|
|
map_linedisplay.insert(object_->proId,linedis);
|
|
map_linedisplay.insert(object_->proId,linedis);
|
|
linedis->linedisplay_execute(object_);
|
|
linedis->linedisplay_execute(object_);
|
|
}
|
|
}
|
|
- render_->CaptureWindowImages();
|
|
|
|
- if(!render_->img.isEmpty()){
|
|
|
|
- std::string img_ = render_->img.toStdString();
|
|
|
|
- std::string json_ = object_->ToJson("img",img_);
|
|
|
|
- emit sendImg_handlePoolToSendstate(json_);//信号
|
|
|
|
- }
|
|
|
|
- delete object_;
|
|
|
|
- object_ = NULL;
|
|
|
|
|
|
+ send_picture(object_,render_);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -335,46 +349,85 @@ bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_
|
|
* @ret: msg(QString)
|
|
* @ret: msg(QString)
|
|
* @birth: created by czm in 20230424
|
|
* @birth: created by czm in 20230424
|
|
*/
|
|
*/
|
|
-QString handlePool::buildResultImport_msg(ResultMeshManager *cmanager)
|
|
|
|
|
|
+QMap<QString,string> handlePool::buildResultImport_msg(ResultMeshManager *cmanager)
|
|
{
|
|
{
|
|
- QString msg;
|
|
|
|
- msg+="NameTypeMap(";
|
|
|
|
- for(auto it=cmanager->GetNameTypeMap().begin();it!=cmanager->GetNameTypeMap().end();it++){
|
|
|
|
- msg+=QString::fromStdString(it->first);
|
|
|
|
- msg+=" ";
|
|
|
|
- msg+=QString::number(it->second);
|
|
|
|
|
|
+ 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.replace(msg.size()-1,1,")");
|
|
|
|
- msg+="ScalarName_vector(";
|
|
|
|
|
|
+ msg = msg.erase(msg.size()-1);
|
|
|
|
+ map_tmp.insert("nameTypes",msg);
|
|
|
|
+ msg.clear();
|
|
for(int i=0;i<cmanager->GetMeshScalarNameVec().size();i++){
|
|
for(int i=0;i<cmanager->GetMeshScalarNameVec().size();i++){
|
|
- if(i == cmanager->GetMeshScalarNameVec().size()-1){
|
|
|
|
- msg+=QString::fromStdString(cmanager->GetMeshScalarNameVec()[i]);
|
|
|
|
- msg+=")";
|
|
|
|
- }
|
|
|
|
- msg += QString::fromStdString(cmanager->GetMeshScalarNameVec()[i]);
|
|
|
|
- msg+=",";
|
|
|
|
|
|
+ msg += removeSpaces(cmanager->GetMeshScalarNameVec()[i]);
|
|
|
|
+ msg += ",";
|
|
}
|
|
}
|
|
- msg += "MinRange(";
|
|
|
|
- msg += QString::number(cmanager->getRange()[0]);
|
|
|
|
- msg += ")MaxRange(";
|
|
|
|
- msg += QString::number(cmanager->getRange()[1]);
|
|
|
|
- msg += ")scalarName(";
|
|
|
|
- msg += QString::fromStdString(cmanager->getScalarName());
|
|
|
|
- msg += ")";
|
|
|
|
|
|
+ msg = msg.erase(msg.size()-1);
|
|
|
|
+ map_tmp.insert("scalarNames",msg);
|
|
|
|
+ msg.clear();
|
|
|
|
|
|
- return msg;
|
|
|
|
|
|
+ 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: get map which save render
|
|
|
|
|
|
+ * @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
|
|
* @param: void
|
|
* @ret: QMap<QString, QVTKRenderer *>
|
|
* @ret: QMap<QString, QVTKRenderer *>
|
|
* @birth: created by czm in 20230420
|
|
* @birth: created by czm in 20230420
|
|
*/
|
|
*/
|
|
QMap<QString, QVTKRenderer *> handlePool::getMapRender()
|
|
QMap<QString, QVTKRenderer *> handlePool::getMapRender()
|
|
{
|
|
{
|
|
- return this->map_render;
|
|
|
|
|
|
+ return this->qmapRender;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -383,9 +436,39 @@ QMap<QString, QVTKRenderer *> handlePool::getMapRender()
|
|
* @ret: QMap<QString, ResultMeshManager *>
|
|
* @ret: QMap<QString, ResultMeshManager *>
|
|
* @birth: created by czm in 20230420
|
|
* @birth: created by czm in 20230420
|
|
*/
|
|
*/
|
|
-QMap<QString, ResultMeshManager *> handlePool::getMapResultManager()
|
|
|
|
|
|
+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_)
|
|
{
|
|
{
|
|
- return this->map_resultmanager;
|
|
|
|
|
|
+ pid_resultManager *resultManager_p = new pid_resultManager();
|
|
|
|
+ resultManager_p->resultMeshManager_ = rmanager_;
|
|
|
|
+ resultManager_p->fileName = object->getFileName();
|
|
|
|
+ resultManager_p->filePath = object->filePath;
|
|
|
|
+ return resultManager_p;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -394,8 +477,8 @@ QMap<QString, ResultMeshManager *> handlePool::getMapResultManager()
|
|
* @ret: QMap<QString, MeshManager *>
|
|
* @ret: QMap<QString, MeshManager *>
|
|
* @birth: created by czm in 20230420
|
|
* @birth: created by czm in 20230420
|
|
*/
|
|
*/
|
|
-QMap<QString, MeshManager *> handlePool::getMapManager()
|
|
|
|
|
|
+QMap<QString, pid_meshManager *> handlePool::getMapManager()
|
|
{
|
|
{
|
|
- return this->map_manager;
|
|
|
|
|
|
+ return this->qmapManager;
|
|
}
|
|
}
|
|
|
|
|