浏览代码

0414 修改缩放和解析命令

caizm 2 年之前
父节点
当前提交
f425162519

+ 10 - 17
CAE_Solution/src/VTK/Manager/meshmanager.cpp

@@ -14,7 +14,7 @@
 
 
 
 
 
 
-MeshManager* MeshManager::m_pInstance = 0;
+//MeshManager* MeshManager::m_pInstance = 0;
 
 
 /**
 /**
   * @brief singleton methed, get class instance.
   * @brief singleton methed, get class instance.
@@ -24,14 +24,14 @@ MeshManager* MeshManager::m_pInstance = 0;
   * @author shiting
   * @author shiting
   * @date 20220729
   * @date 20220729
   */
   */
-MeshManager* MeshManager::getInstance()
-{
-    if (m_pInstance == 0)
-    {
-        m_pInstance = new MeshManager;
-    }
-    return m_pInstance;
-}
+//MeshManager* MeshManager::getInstance()
+//{
+//    if (m_pInstance == 0)
+//    {
+//        m_pInstance = new MeshManager;
+//    }
+//    return m_pInstance;
+//}
 
 
 /**
 /**
   * @brief the constructor.
   * @brief the constructor.
@@ -248,14 +248,7 @@ void MeshManager::DisplayMesh(QVTKRenderer *qvtkRenderer)
     }
     }
 }
 }
 
 
-/**
-  * @brief highlight patches of a zone.
-  *
-  * @param[in] the zone index and patches indices to be highlighted.
-  * @return 
-  * @author shiting
-  * @date 20220819
-  */
+
 
 
 
 
 
 

+ 3 - 3
CAE_Solution/src/VTK/Manager/meshmanager.h

@@ -18,11 +18,11 @@ class QVTKRenderer;
 
 
 class MeshManager
 class MeshManager
 {
 {
-private:
+public:
     MeshManager();
     MeshManager();
-    static MeshManager *m_pInstance;
+    //static MeshManager *m_pInstance;
 public:
 public:
-    static MeshManager* getInstance();
+    //static MeshManager* getInstance();
     ~MeshManager();
     ~MeshManager();
     bool LoadData(const QString &datafile);
     bool LoadData(const QString &datafile);
 
 

+ 59 - 29
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp

@@ -31,7 +31,7 @@ handlePool::handlePool(QTabWidget *w)
 handlePool::~handlePool()
 handlePool::~handlePool()
 {
 {
     qDeleteAll(map_render);
     qDeleteAll(map_render);
-
+    qDeleteAll(map_manager);
 }
 }
 
 
 /*
 /*
@@ -46,17 +46,7 @@ void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
     QVTKRenderer* render_;
     QVTKRenderer* render_;
     json_object->FromJSON(recvmsg);
     json_object->FromJSON(recvmsg);
 
 
-    if(map_render.contains(json_object->proId)){
-        render_ = map_render.value(json_object->proId);
-
-    }else{
-        render_ = new QVTKRenderer();
-        map_render.insert(json_object->proId,render_);
-        render_->init();
-        w->addTab(render_->GetWidget(),"test");
-    }
-    operateRender(json_object->action,render_);
-
+    operateRender(json_object,render_);//解析命令
 
 
     std::string img_ = render_->img.toStdString();
     std::string img_ = render_->img.toStdString();
     std::string json_ = json_object->ToJson(img_);
     std::string json_ = json_object->ToJson(img_);
@@ -70,18 +60,42 @@ void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
  * @ret:void
  * @ret:void
  * @birth: creadted by czm in 20230406
  * @birth: creadted by czm in 20230406
  */
  */
-void handlePool::operateRender(QString action,QVTKRenderer* render_)
+void handlePool::operateRender(vtkJsonObject* object,QVTKRenderer* render_)
 {
 {
-    if(action == "init"){
+    if(object->action == "init"){
         //render_->init();
         //render_->init();
         //emit sendWidget_handlePoolToWidget(render_->GetWidget());
         //emit sendWidget_handlePoolToWidget(render_->GetWidget());
+        if(map_render.contains(object->proId)){
+            render_ = map_render.value(object->proId);
+
+        }else{
+            render_ = new QVTKRenderer();
+            map_render.insert(object->proId,render_);
+            render_->init();
+            w->addTab(render_->GetWidget(),"test");
+        }
+    }else if(object->action == "loaddata"){
+        if(!map_render.contains(object->proId))return;
+            render_ = map_render.value(object->proId);
+
+        QString m_filePath="F:\\czm\\adicode\\CAE_Solution\\CAE_Solution\\tf.ugrid";
+        //QString m_filePath = "/cephfs/hcfd/solverdown/31f117acb7e74232a3267b091391eab2/hcfd/data_in";
+        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);
+        }else{
+            meshmanager = map_manager.value(object->proId);
+            meshmanager->Clear();
+            delete meshmanager;
+            meshmanager = new MeshManager();
+        }
+        //MeshManager *meshmanager = MeshManager::getInstance();
 
 
-
-    }else if(action == "loaddata"){
-        //QString m_filePath="F:\\czm\\adicode\\CAE_Solution\\CAE_Solution\\tf.ugrid";
-        QString m_filePath = "/cephfs/hcfd/solverdown/31f117acb7e74232a3267b091391eab2/hcfd/data_in";
-        if(m_filePath.isEmpty())return;
-        MeshManager *meshmanager = MeshManager::getInstance();
         bool f = meshmanager->LoadData(m_filePath);
         bool f = meshmanager->LoadData(m_filePath);
         if(f){
         if(f){
             if(render_){
             if(render_){
@@ -91,23 +105,39 @@ void handlePool::operateRender(QString action,QVTKRenderer* render_)
         }
         }
         //cout<<"action:"<<action.toStdString()<<endl;
         //cout<<"action:"<<action.toStdString()<<endl;
         //render_->CaptureWindowImages();
         //render_->CaptureWindowImages();
-    }else if(action == "zoomout"){//缩小
+    }else if(object->action == "zoomout"){//缩小
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->ZoomOut();
         render_->camera_->ZoomOut();
-    }else if(action == "zoomin"){
+    }else if(object->action == "zoomin"){
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->ZoomIn();
         render_->camera_->ZoomIn();
-    }else if(action == "AlignToPlusAxisX"){//正x轴对齐
+    }else if(object->action == "AlignToPlusAxisX"){//正x轴对齐
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->AlignToPlusAxisX();
         render_->camera_->AlignToPlusAxisX();
-    }else if(action == "AlignToPlusAxisY"){//正y轴对齐
+    }else if(object->action == "AlignToPlusAxisY"){//正y轴对齐
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->AlignToPlusAxisY();
         render_->camera_->AlignToPlusAxisY();
-    }else if(action == "AlignToPlusAxisZ"){//正z轴对齐
+    }else if(object->action == "AlignToPlusAxisZ"){//正z轴对齐
         render_->camera_->AlignToPlusAxisZ();
         render_->camera_->AlignToPlusAxisZ();
-    }else if(action == "AlignToMinusAxisX"){//负x轴对齐
+    }else if(object->action == "AlignToMinusAxisX"){//负x轴对齐
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->AlignToMinusAxisX();
         render_->camera_->AlignToMinusAxisX();
-    }else if(action == "AlignToMinusAxisY"){//负y轴对齐
+    }else if(object->action == "AlignToMinusAxisY"){//负y轴对齐
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->AlignToMinusAxisY();
         render_->camera_->AlignToMinusAxisY();
-    }else if(action == "AlignToMinusAxisZ"){//负z轴对齐
+    }else if(object->action == "AlignToMinusAxisZ"){//负z轴对齐
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->AlignToMinusAxisZ();
         render_->camera_->AlignToMinusAxisZ();
-    }else if(action == "RelocateToCenter"){
+    }else if(object->action == "RelocateToCenter"){
+        if(!map_render.contains(object->proId))return;
+        render_ = map_render.value(object->proId);
         render_->camera_->RelocateToCenter();
         render_->camera_->RelocateToCenter();
     }
     }
     render_->CaptureWindowImages();
     render_->CaptureWindowImages();

+ 2 - 1
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.h

@@ -17,11 +17,12 @@ public:
     handlePool(QTabWidget* w);
     handlePool(QTabWidget* w);
     ~handlePool();
     ~handlePool();
 
 
-    void operateRender(QString,QVTKRenderer*);
+    void operateRender(vtkJsonObject*,QVTKRenderer*);
 
 
 
 
 public:
 public:
     QMap<QString,QVTKRenderer*> map_render;
     QMap<QString,QVTKRenderer*> map_render;
+    QMap<QString,MeshManager*> map_manager;
     QTabWidget* w;
     QTabWidget* w;
 
 
 signals:
 signals: