Browse Source

0509 更换boost解析json

caizm 2 years ago
parent
commit
cafd9d4b46
27 changed files with 794 additions and 341 deletions
  1. 2 0
      CAE_Solution/CAE_Solution.pro
  2. 2 2
      CAE_Solution/conf/conf_recv.txt
  3. 2 2
      CAE_Solution/conf/conf_send.txt
  4. 2 0
      CAE_Solution/src/Rabbitmq/rabbitClient/rabbitclient.cpp
  5. 58 58
      CAE_Solution/src/VTK/Manager/ResultMeshManager.cpp
  6. 2 2
      CAE_Solution/src/VTK/Manager/ResultMeshManager.h
  7. 1 1
      CAE_Solution/src/VTK/display/contourdisplay.cpp
  8. 2 2
      CAE_Solution/src/VTK/display/contourdisplay.h
  9. 1 1
      CAE_Solution/src/VTK/display/linedisplay.cpp
  10. 2 2
      CAE_Solution/src/VTK/display/linedisplay.h
  11. 14 1
      CAE_Solution/src/VTK/display/slicewidget.cpp
  12. 4 2
      CAE_Solution/src/VTK/display/slicewidget.h
  13. 1 1
      CAE_Solution/src/VTK/display/solidsurfacewidget.cpp
  14. 2 2
      CAE_Solution/src/VTK/display/solidsurfacewidget.h
  15. 4 4
      CAE_Solution/src/VTK/display/vectordisplay.cpp
  16. 2 2
      CAE_Solution/src/VTK/display/vectordisplay.h
  17. 54 114
      CAE_Solution/src/VTK/widget/slicedisplaywidget.cpp
  18. 14 6
      CAE_Solution/src/VTK/widget/slicedisplaywidget.h
  19. 1 1
      CAE_Solution/src/main.cpp
  20. 79 78
      CAE_Solution/src/src.pro
  21. 235 0
      CAE_Solution/src/threadPool_and_statemachine/dealWith/boostjsonobject.cpp
  22. 43 0
      CAE_Solution/src/threadPool_and_statemachine/dealWith/boostjsonobject.h
  23. 4 3
      CAE_Solution/src/threadPool_and_statemachine/dealWith/dealWith.pri
  24. 66 0
      CAE_Solution/src/threadPool_and_statemachine/dealWith/display_struct.h
  25. 165 32
      CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp
  26. 30 23
      CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.h
  27. 2 2
      CAE_Solution/src/threadPool_and_statemachine/dealWith/map_manager.h

+ 2 - 0
CAE_Solution/CAE_Solution.pro

@@ -4,3 +4,5 @@ SUBDIRS += \
     src \
     src \
     tests
     tests
 
 
+
+

+ 2 - 2
CAE_Solution/conf/conf_recv.txt

@@ -4,6 +4,6 @@ userName:admin
 password:admin
 password:admin
 
 
 channel_id:1
 channel_id:1
-queue_name:BLOCKcaein
+queue_name:BLOCKcaeint
 exchange_name:BLOCKMQ-EXCHANGE
 exchange_name:BLOCKMQ-EXCHANGE
-keys_name:caein
+keys_name:caeint

+ 2 - 2
CAE_Solution/conf/conf_send.txt

@@ -4,6 +4,6 @@ userName:admin
 password:admin
 password:admin
 
 
 channel_id:1
 channel_id:1
-queue_name:BLOCKcaeout
+queue_name:BLOCKcaeoutt
 exchange_name:BLOCKMQ-EXCHANGE
 exchange_name:BLOCKMQ-EXCHANGE
-keys_name:caeout
+keys_name:caeoutt

+ 2 - 0
CAE_Solution/src/Rabbitmq/rabbitClient/rabbitclient.cpp

@@ -144,6 +144,8 @@ int rabbitClient::recvMsg()
                 t = '{' + t + '}';
                 t = '{' + t + '}';
             }
             }
             emit sendmsg_recvclientToRecvstate(t);//信号
             emit sendmsg_recvclientToRecvstate(t);//信号
+             //0509
+            //emit sendmsg_recvclientToRecvstate(str);
         }
         }
         QThread::sleep(1);
         QThread::sleep(1);
     }
     }

+ 58 - 58
CAE_Solution/src/VTK/Manager/ResultMeshManager.cpp

@@ -71,7 +71,7 @@ ResultMeshManager::ResultMeshManager()
     lineWidget_ = NULL;
     lineWidget_ = NULL;
     vectorWidget_ = NULL;
     vectorWidget_ = NULL;
     solidSurfaceW_ = NULL;
     solidSurfaceW_ = NULL;
-    //sliceW_ = NULL;
+    sliceW_ = NULL;
     streamW_ = NULL;
     streamW_ = NULL;
 //    xyplot2dW_ = NULL;
 //    xyplot2dW_ = NULL;
 
 
@@ -1096,15 +1096,15 @@ void ResultMeshManager::SetSurfaceSolidWidget(SolidSurfaceWidget* w)
   * @author zhaoyu
   * @author zhaoyu
   * @date 20230301
   * @date 20230301
   */
   */
-//void ResultMeshManager::SetSliceWidget(SsliceWidget* w)
-//{
-//    sliceW_ = w;
-//    if (meshObj_ != NULL)
-//    {
-//        sliceW_->GetZoneId(GetShowZoneId());
-//        sliceW_->GetScalarName(GetMeshScalarNameVec());
-//    }
-//}
+void ResultMeshManager::SetSliceWidget(SsliceWidget* w)
+{
+    sliceW_ = w;
+    if (meshObj_ != NULL)
+    {
+        sliceW_->GetZoneId(GetShowZoneId());
+        sliceW_->GetScalarName(GetMeshScalarNameVec());
+    }
+}
 
 
 /**
 /**
   * @brief init stream Widget pointer
   * @brief init stream Widget pointer
@@ -1346,11 +1346,11 @@ void ResultMeshManager::InitWidgetsParameter()
         vectorWidget_->GetData_w(GetMeshScalarNameVec());
         vectorWidget_->GetData_w(GetMeshScalarNameVec());
         vectorWidget_->SetScaleFactor(scaleFactor_);
         vectorWidget_->SetScaleFactor(scaleFactor_);
     }
     }
-//    if (sliceW_ != NULL)
-//    {
-//        sliceW_->GetScalarName(GetMeshScalarNameVec());
-//        sliceW_->GetZoneId(GetShowZoneId());
-//    }
+    if (sliceW_ != NULL)
+    {
+        sliceW_->GetScalarName(GetMeshScalarNameVec());
+        sliceW_->GetZoneId(GetShowZoneId());
+    }
     if (streamW_ != NULL)
     if (streamW_ != NULL)
     {
     {
         streamW_->SetData_u(GetMeshScalarNameVec());
         streamW_->SetData_u(GetMeshScalarNameVec());
@@ -1467,19 +1467,19 @@ vector<int> ResultMeshManager::GetShowZoneId()
     return zoneId;
     return zoneId;
 }
 }
 
 
-//void ResultMeshManager::InitSliceWidget()
-//{
-//    HideAllUnshadeMeshActors();
-//    HideAllGlyphActors();
-//    HideAllContourActors();
-//    HideStreamActors();
-//    HideXyplot2dSliceActors();
+void ResultMeshManager::InitSliceWidget()
+{
+    HideAllUnshadeMeshActors();
+    HideAllGlyphActors();
+    HideAllContourActors();
+    HideStreamActors();
+    HideXyplot2dSliceActors();
 
 
-//    if (solidSurfaceW_ != NULL)
-//    {
-//        solidSurfaceW_->SetShowHideState(true);
-//    }
-//}
+    if (solidSurfaceW_ != NULL)
+    {
+        solidSurfaceW_->SetShowHideState(true);
+    }
+}
 
 
 
 
 /**
 /**
@@ -1729,37 +1729,37 @@ void ResultMeshManager::SetAllSliceState(vector<int> sliceId, vector<bool> solid
   * @author zhaoyu
   * @author zhaoyu
   * @date 20230301
   * @date 20230301
   */
   */
-//void ResultMeshManager::UpdataSliceWidgetParameter()
-//{
-//    if (sliceW_ == NULL)
-//    {
-//        return;
-//    }
-//    vector<int> sliceWId = sliceW_->GetSliceId();
-//    vector<vector<double>> normalVec;
-//    vector<vector<double>> originVec;
-//    for (int i = 0; i < sliceWId.size(); i ++)
-//    {
-//        double *data;
-//        data = unSliceVec_.at(sliceWId.at(i))->GetSlicePlaneNormal();
-//        vector<double> normal;
-//        normal.push_back(data[0]);
-//        normal.push_back(data[1]);
-//        normal.push_back(data[2]);
-//        normalVec.push_back(normal);
-//        double *data2;
-//        data2 = unSliceVec_.at(sliceWId.at(i))->GetSlicePlaneOrigin();
-//        vector<double> origin;
-//        origin.push_back(data2[0]);
-//        origin.push_back(data2[1]);
-//        origin.push_back(data2[2]);
-//        originVec.push_back(origin);
-//    }
-//    sliceW_->normal.clear();
-//    sliceW_->position.clear();
-//    sliceW_->normal = normalVec;
-//    sliceW_->position = originVec;
-//}
+void ResultMeshManager::UpdataSliceWidgetParameter()
+{
+    if (sliceW_ == NULL)
+    {
+        return;
+    }
+    vector<int> sliceWId = sliceW_->GetSliceId();
+    vector<vector<double>> normalVec;
+    vector<vector<double>> originVec;
+    for (int i = 0; i < sliceWId.size(); i ++)
+    {
+        double *data;
+        data = unSliceVec_.at(sliceWId.at(i))->GetSlicePlaneNormal();
+        vector<double> normal;
+        normal.push_back(data[0]);
+        normal.push_back(data[1]);
+        normal.push_back(data[2]);
+        normalVec.push_back(normal);
+        double *data2;
+        data2 = unSliceVec_.at(sliceWId.at(i))->GetSlicePlaneOrigin();
+        vector<double> origin;
+        origin.push_back(data2[0]);
+        origin.push_back(data2[1]);
+        origin.push_back(data2[2]);
+        originVec.push_back(origin);
+    }
+    sliceW_->normal.clear();
+    sliceW_->position.clear();
+    sliceW_->normal = normalVec;
+    sliceW_->position = originVec;
+}
 
 
 /**
 /**
   * @brief updata the source consisting of all current grids
   * @brief updata the source consisting of all current grids

+ 2 - 2
CAE_Solution/src/VTK/Manager/ResultMeshManager.h

@@ -74,7 +74,7 @@ public:
     void SetVectorWidget(VectorW* w);
     void SetVectorWidget(VectorW* w);
     //void SetAnimationWidget(ContourInimationW* w);
     //void SetAnimationWidget(ContourInimationW* w);
     void SetSurfaceSolidWidget(SolidSurfaceWidget* w);
     void SetSurfaceSolidWidget(SolidSurfaceWidget* w);
-    //void SetSliceWidget(SsliceWidget* w);
+    void SetSliceWidget(SsliceWidget* w);
     void SetStremWidget(StreamDisplayWidget* w);
     void SetStremWidget(StreamDisplayWidget* w);
     //void SetTextWidget(TextWidget* w);
     //void SetTextWidget(TextWidget* w);
     void SetXyplotWidget(XYPlot_2D* w);
     void SetXyplotWidget(XYPlot_2D* w);
@@ -167,7 +167,7 @@ public:
     VectorW* vectorWidget_;
     VectorW* vectorWidget_;
     //ContourInimationW* animationWidget_;
     //ContourInimationW* animationWidget_;
     SolidSurfaceWidget* solidSurfaceW_;
     SolidSurfaceWidget* solidSurfaceW_;
-    //SsliceWidget* sliceW_;
+    SsliceWidget* sliceW_;
     StreamDisplayWidget* streamW_;
     StreamDisplayWidget* streamW_;
     //TextWidget* textW_;
     //TextWidget* textW_;
     //XYPlot_2D* xyplot2dW_;
     //XYPlot_2D* xyplot2dW_;

+ 1 - 1
CAE_Solution/src/VTK/display/contourdisplay.cpp

@@ -37,7 +37,7 @@ ContourDisplay::~ContourDisplay()
  * @ret:void
  * @ret:void
  * @birth: created by czm in 20230420
  * @birth: created by czm in 20230420
  */
  */
-void ContourDisplay::contourdisplay_execute(vtkJsonObject* jsonObj_)
+void ContourDisplay::contourdisplay_execute(boostJsonObject* jsonObj_)
 {
 {
 
 
     //apply setting data.
     //apply setting data.

+ 2 - 2
CAE_Solution/src/VTK/display/contourdisplay.h

@@ -5,7 +5,7 @@
 #include <map>
 #include <map>
 #include <string>
 #include <string>
 #include "../Manager/ResultMeshManager.h"
 #include "../Manager/ResultMeshManager.h"
-#include "../../threadPool_and_statemachine/dealWith/vtkjsonobject.h"
+#include "../../threadPool_and_statemachine/dealWith/boostjsonobject.h"
 #include "../widget/contourdispalyWidget.h"
 #include "../widget/contourdispalyWidget.h"
 
 
 
 
@@ -17,7 +17,7 @@ public:
     QString getName() {
     QString getName() {
         return QObject::tr("Contour");
         return QObject::tr("Contour");
     }
     }
-    virtual void contourdisplay_execute(vtkJsonObject*);
+    virtual void contourdisplay_execute(boostJsonObject*);
 
 
     ResultMeshManager* getResultMeshManager();
     ResultMeshManager* getResultMeshManager();
     double* getRange();
     double* getRange();

+ 1 - 1
CAE_Solution/src/VTK/display/linedisplay.cpp

@@ -34,7 +34,7 @@ LineDisplay::~LineDisplay()
  * @ret: void
  * @ret: void
  * @birth: created by czm in 20230424
  * @birth: created by czm in 20230424
  */
  */
-void LineDisplay::linedisplay_execute(vtkJsonObject* jsonObj_)
+void LineDisplay::linedisplay_execute(boostJsonObject* jsonObj_)
 { 
 { 
     //string str = static_cast<LineDisplayW*>(m_pWidget)->GetScalarName();
     //string str = static_cast<LineDisplayW*>(m_pWidget)->GetScalarName();
     //if (!str.empty())
     //if (!str.empty())

+ 2 - 2
CAE_Solution/src/VTK/display/linedisplay.h

@@ -4,7 +4,7 @@
 #include <map>
 #include <map>
 #include <string>
 #include <string>
 #include "../Manager/ResultMeshManager.h"
 #include "../Manager/ResultMeshManager.h"
-#include "../../threadPool_and_statemachine/dealWith/vtkjsonobject.h"
+#include "../../threadPool_and_statemachine/dealWith/boostjsonobject.h"
 
 
 
 
 class LineDisplay
 class LineDisplay
@@ -15,7 +15,7 @@ public:
     virtual QString getName() {
     virtual QString getName() {
         return QObject::tr("Line");
         return QObject::tr("Line");
     }
     }
-    virtual void linedisplay_execute(vtkJsonObject*);
+    virtual void linedisplay_execute(boostJsonObject*);
 
 
     ResultMeshManager* getResultMeshManager();
     ResultMeshManager* getResultMeshManager();
     double* getRange();
     double* getRange();

+ 14 - 1
CAE_Solution/src/VTK/display/slicewidget.cpp

@@ -20,6 +20,7 @@ SliceWidget::SliceWidget(ResultMeshManager* rs)
  */
  */
 SliceWidget::~SliceWidget()
 SliceWidget::~SliceWidget()
 {
 {
+    this->Cmanager = NULL;
 }
 }
 
 
 /*
 /*
@@ -28,7 +29,7 @@ SliceWidget::~SliceWidget()
  * @ret: void
  * @ret: void
  * @birth: created by czm in 20230424
  * @birth: created by czm in 20230424
  */
  */
-void SliceWidget::slicewidget_execute(QString str)
+void SliceWidget::slicewidget_execute(boostJsonObject* object)
 {
 {
     //apply setting data.
     //apply setting data.
 //    ResultMeshManager::getInstance()->InitSliceWidget();
 //    ResultMeshManager::getInstance()->InitSliceWidget();
@@ -39,5 +40,17 @@ void SliceWidget::slicewidget_execute(QString str)
 //                                                           static_cast<SsliceWidget*>(m_pWidget)->GetVName(),static_cast<SsliceWidget*>(m_pWidget)->GetLevel(),
 //                                                           static_cast<SsliceWidget*>(m_pWidget)->GetVName(),static_cast<SsliceWidget*>(m_pWidget)->GetLevel(),
 //                                                           static_cast<SsliceWidget*>(m_pWidget)->GetPlaneState(), static_cast<SsliceWidget*>(m_pWidget)->GetLabelState());
 //                                                           static_cast<SsliceWidget*>(m_pWidget)->GetPlaneState(), static_cast<SsliceWidget*>(m_pWidget)->GetLabelState());
 //        static_cast<SsliceWidget*>(m_pWidget)->SetCurrWidget(index);
 //        static_cast<SsliceWidget*>(m_pWidget)->SetCurrWidget(index);
+    this->Cmanager->InitSliceWidget();
+    SsliceWidget * sswidget = this->Cmanager->sliceW_;
+    this->Cmanager->SetAllSliceState(sswidget->GetSliceId(),
+                                     sswidget->GetSolidState(),
+                                     sswidget->GetPlaneWidgetState(),
+                                     sswidget->GetNormal(),
+                                     sswidget->GetPosition(),
+                                     sswidget->GetType(),
+                                     sswidget->GetVName(),
+                                     sswidget->GetLevel(),
+                                     sswidget->GetPlaneState(),
+                                     sswidget->GetLabelState());
 }
 }
 
 

+ 4 - 2
CAE_Solution/src/VTK/display/slicewidget.h

@@ -1,6 +1,9 @@
 #pragma once
 #pragma once
 #include <QObject>
 #include <QObject>
 #include "../Manager/ResultMeshManager.h"
 #include "../Manager/ResultMeshManager.h"
+#include "../../threadPool_and_statemachine/dealWith/boostjsonobject.h"
+#include "../widget/Sslicewidget.h"
+#include "../widget/slicedisplaywidget.h"
 
 
 class SliceWidget
 class SliceWidget
 {
 {
@@ -9,8 +12,7 @@ public:
     virtual ~SliceWidget();
     virtual ~SliceWidget();
     virtual QString getName() { return QObject::tr("Slice"); }
     virtual QString getName() { return QObject::tr("Slice"); }
 
 
-    virtual void slicewidget_execute(QString str);
+    virtual void slicewidget_execute(boostJsonObject*);
 private:
 private:
     ResultMeshManager* Cmanager;
     ResultMeshManager* Cmanager;
-
 };
 };

+ 1 - 1
CAE_Solution/src/VTK/display/solidsurfacewidget.cpp

@@ -28,7 +28,7 @@ SolidSurface::~SolidSurface()
  * @ret: void
  * @ret: void
  * @birth: created by czm in 20230505
  * @birth: created by czm in 20230505
  */
  */
-void SolidSurface::solidsurfce_execute(vtkJsonObject* jsonObj_)
+void SolidSurface::solidsurfce_execute(boostJsonObject* jsonObj_)
 {
 {
     //apply setting data.
     //apply setting data.
 //    ResultMeshManager::getInstance()->SetSurfaceShowHideFlag(static_cast<SolidSurfaceWidget*>(m_pWidget)->GetShowHideState());
 //    ResultMeshManager::getInstance()->SetSurfaceShowHideFlag(static_cast<SolidSurfaceWidget*>(m_pWidget)->GetShowHideState());

+ 2 - 2
CAE_Solution/src/VTK/display/solidsurfacewidget.h

@@ -1,7 +1,7 @@
 #pragma once
 #pragma once
 #include <QObject>
 #include <QObject>
 #include "../Manager/ResultMeshManager.h"
 #include "../Manager/ResultMeshManager.h"
-#include "../../threadPool_and_statemachine/dealWith/vtkjsonobject.h"
+#include "../../threadPool_and_statemachine/dealWith/boostjsonobject.h"
 #include "../widget/solidsurfaceDisplaywidget.h"
 #include "../widget/solidsurfaceDisplaywidget.h"
 
 
 class SolidSurface
 class SolidSurface
@@ -11,7 +11,7 @@ public:
     virtual ~SolidSurface();
     virtual ~SolidSurface();
     virtual QString getName() { return QObject::tr("SolidSurface"); }
     virtual QString getName() { return QObject::tr("SolidSurface"); }
 
 
-    virtual void solidsurfce_execute(vtkJsonObject*);
+    virtual void solidsurfce_execute(boostJsonObject*);
 
 
     ResultMeshManager* getResultMeshManager();
     ResultMeshManager* getResultMeshManager();
 private:
 private:

+ 4 - 4
CAE_Solution/src/VTK/display/vectordisplay.cpp

@@ -29,7 +29,7 @@ Vectordisplay::~Vectordisplay()
  * @ret: void
  * @ret: void
  * @birth: created by czm in 20230504
  * @birth: created by czm in 20230504
  */
  */
-void Vectordisplay::vectordisplay_execute(vtkJsonObject* object)
+void Vectordisplay::vectordisplay_execute(boostJsonObject* object)
 {
 {
 
 
     //apply setting data.
     //apply setting data.
@@ -37,11 +37,11 @@ void Vectordisplay::vectordisplay_execute(vtkJsonObject* object)
     //ResultMeshManager::getInstance()->SetVectorScaleFactor(static_cast<VectorW*>(m_pWidget)->GetScaleFactor());
     //ResultMeshManager::getInstance()->SetVectorScaleFactor(static_cast<VectorW*>(m_pWidget)->GetScaleFactor());
     //ResultMeshManager::getInstance()->SetVectorScalarIndex(static_cast<VectorW*>(m_pWidget)->GetUVWIndex());
     //ResultMeshManager::getInstance()->SetVectorScalarIndex(static_cast<VectorW*>(m_pWidget)->GetUVWIndex());
     Cmanager->vectorWidget_->SetScaleFactor(object->vc_struct->scaleFactor);
     Cmanager->vectorWidget_->SetScaleFactor(object->vc_struct->scaleFactor);
-    QString u_ = QString(QLatin1String(object->vc_struct->dataU));
+    QString u_ = QString::fromStdString(object->vc_struct->dataU);//char*转string乱码,必须这么转
     string value_U = u_.toStdString();
     string value_U = u_.toStdString();
-    QString v_ = QString(QLatin1String(object->vc_struct->dataV));
+    QString v_ = QString::fromStdString(object->vc_struct->dataV);
     string value_V = v_.toStdString();
     string value_V = v_.toStdString();
-    QString w_ = QString(QLatin1String(object->vc_struct->dataW));
+    QString w_ = QString::fromStdString(object->vc_struct->dataW);
     string value_W = w_.toStdString();
     string value_W = w_.toStdString();
     int index_u = find(Cmanager->vectorWidget_->dataU.begin(),Cmanager->vectorWidget_->dataU.end(),value_U)-Cmanager->vectorWidget_->dataU.begin();
     int index_u = find(Cmanager->vectorWidget_->dataU.begin(),Cmanager->vectorWidget_->dataU.end(),value_U)-Cmanager->vectorWidget_->dataU.begin();
     int index_v = find(Cmanager->vectorWidget_->dataV.begin(),Cmanager->vectorWidget_->dataV.end(),value_V)-Cmanager->vectorWidget_->dataV.begin();
     int index_v = find(Cmanager->vectorWidget_->dataV.begin(),Cmanager->vectorWidget_->dataV.end(),value_V)-Cmanager->vectorWidget_->dataV.begin();

+ 2 - 2
CAE_Solution/src/VTK/display/vectordisplay.h

@@ -2,7 +2,7 @@
 #include <QObject>
 #include <QObject>
 #include <vector>
 #include <vector>
 #include "../Manager/ResultMeshManager.h"
 #include "../Manager/ResultMeshManager.h"
-#include "../../threadPool_and_statemachine/dealWith/vtkjsonobject.h"
+#include "../../threadPool_and_statemachine/dealWith/boostjsonobject.h"
 
 
 class Vectordisplay
 class Vectordisplay
 {
 {
@@ -11,7 +11,7 @@ public:
     virtual ~Vectordisplay();
     virtual ~Vectordisplay();
     virtual QString getName() { return QObject::tr("vector"); }
     virtual QString getName() { return QObject::tr("vector"); }
 
 
-    virtual void vectordisplay_execute(vtkJsonObject*);
+    virtual void vectordisplay_execute(boostJsonObject*);
 
 
     ResultMeshManager* getResultMeshManager();
     ResultMeshManager* getResultMeshManager();
 private:
 private:

+ 54 - 114
CAE_Solution/src/VTK/widget/slicedisplaywidget.cpp

@@ -13,6 +13,18 @@ SliceDisplayWidget::SliceDisplayWidget()
 * @date 20230214
 * @date 20230214
 */
 */
 {
 {
+    solid_state = true;
+    sectionalPlane_state = true;
+    sectonalContour_state = true;
+    scalarValue_state = false;
+    type_vector.push_back(QString("contour").toStdString());
+    type_vector.push_back(QString("line").toStdString());
+    Position_x = 0;
+    Position_y = 0;
+    Position_z = 0;
+    normal_x = 1;
+    normal_y = 0;
+    normal_z = 0;
 }
 }
 
 
 /**
 /**
@@ -47,9 +59,6 @@ void SliceDisplayWidget::SetAreaRange(vector<int> AreaRange)
  */
  */
 void SliceDisplayWidget::SetNormal(vector<double> setnormal)
 void SliceDisplayWidget::SetNormal(vector<double> setnormal)
 {
 {
-    //  ldt_x->setText(QString::number(setnormal.at(0)));
-    //  ldt_y->setText(QString::number(setnormal.at(1)));
-    //  ldt_z->setText(QString::number(setnormal.at(2)));
       normal_x = setnormal.at(0);
       normal_x = setnormal.at(0);
       normal_y = setnormal.at(1);
       normal_y = setnormal.at(1);
       normal_z = setnormal.at(2);
       normal_z = setnormal.at(2);
@@ -66,9 +75,6 @@ void SliceDisplayWidget::SetNormal(vector<double> setnormal)
 vector<double> SliceDisplayWidget::GetNormal()
 vector<double> SliceDisplayWidget::GetNormal()
 {
 {
     vector<double> Getnormal;
     vector<double> Getnormal;
-    //    Getnormal.push_back(ldt_x->text().toDouble());
-    //    Getnormal.push_back(ldt_y->text().toDouble());
-    //    Getnormal.push_back(ldt_z->text().toDouble());
     Getnormal.push_back(normal_x);
     Getnormal.push_back(normal_x);
     Getnormal.push_back(normal_y);
     Getnormal.push_back(normal_y);
     Getnormal.push_back(normal_z);
     Getnormal.push_back(normal_z);
@@ -85,9 +91,6 @@ vector<double> SliceDisplayWidget::GetNormal()
  */
  */
 void SliceDisplayWidget::SetPosition(vector<double> setPosition)
 void SliceDisplayWidget::SetPosition(vector<double> setPosition)
 {
 {
-//    ldt_xp->setText(QString::number(setPosition.at(0)));
-//    ldt_yp->setText(QString::number(setPosition.at(1)));
-//    ldt_zp->setText(QString::number(setPosition.at(2)));
     this->Position_x = setPosition.at(0);
     this->Position_x = setPosition.at(0);
     this->Position_y = setPosition.at(1);
     this->Position_y = setPosition.at(1);
     this->Position_z = setPosition.at(2);
     this->Position_z = setPosition.at(2);
@@ -104,9 +107,6 @@ void SliceDisplayWidget::SetPosition(vector<double> setPosition)
 vector<double> SliceDisplayWidget::GetPosition()
 vector<double> SliceDisplayWidget::GetPosition()
 {
 {
     vector<double> Getposition;
     vector<double> Getposition;
-//    Getposition.push_back(ldt_xp->text().toDouble());
-//    Getposition.push_back(ldt_yp->text().toDouble());
-//    Getposition.push_back(ldt_zp->text().toDouble());
     Getposition.push_back(Position_x);
     Getposition.push_back(Position_x);
     Getposition.push_back(Position_y);
     Getposition.push_back(Position_y);
     Getposition.push_back(Position_z);
     Getposition.push_back(Position_z);
@@ -123,12 +123,6 @@ vector<double> SliceDisplayWidget::GetPosition()
  */
  */
 void SliceDisplayWidget::SetPositionRange(vector<double> PositionRange)
 void SliceDisplayWidget::SetPositionRange(vector<double> PositionRange)
 {
 {
-//    QString strx = (QString("(%1, %2)").arg(PositionRange.at(0)).arg(PositionRange.at(1)));
-//    lbl_xs->setText(strx);
-//    QString stry = (QString("(%1, %2)").arg(PositionRange.at(2)).arg(PositionRange.at(3)));
-//    lbl_ys->setText(stry);
-//    QString strz = (QString("(%1, %2)").arg(PositionRange.at(4)).arg(PositionRange.at(5)));
-//    lbl_zs->setText(strz);
     this->Position_x_range[0] = PositionRange.at(0);
     this->Position_x_range[0] = PositionRange.at(0);
     this->Position_x_range[1] = PositionRange.at(1);
     this->Position_x_range[1] = PositionRange.at(1);
     this->Position_y_range[0] = PositionRange.at(2);
     this->Position_y_range[0] = PositionRange.at(2);
@@ -148,9 +142,6 @@ void SliceDisplayWidget::SetPositionRange(vector<double> PositionRange)
 vector<double> SliceDisplayWidget::GetPositionRange()
 vector<double> SliceDisplayWidget::GetPositionRange()
 {
 {
     vector<double> positionrange;
     vector<double> positionrange;
-//    positionrange.push_back(lbl_xs->text().toDouble());
-//    positionrange.push_back(lbl_ys->text().toDouble());
-//    positionrange.push_back(lbl_zs->text().toDouble());
     positionrange.push_back(Position_x_range[0]);
     positionrange.push_back(Position_x_range[0]);
     positionrange.push_back(Position_x_range[1]);
     positionrange.push_back(Position_x_range[1]);
     positionrange.push_back(Position_y_range[0]);
     positionrange.push_back(Position_y_range[0]);
@@ -170,26 +161,12 @@ vector<double> SliceDisplayWidget::GetPositionRange()
  */
  */
 void SliceDisplayWidget::SetSolidCondition(bool SoildC)
 void SliceDisplayWidget::SetSolidCondition(bool SoildC)
 {
 {
-//    if(SoildC)
-//    {
-//        ckx_soild->setChecked(true);
-//    }
-//    else
-//    {
-//        ckx_soild->setChecked(false);
-//    }
+    this->solid_state = SoildC;
     //是否选择实线的复选框
     //是否选择实线的复选框
 }
 }
 bool SliceDisplayWidget::GetSoildCondition()
 bool SliceDisplayWidget::GetSoildCondition()
 {
 {
-//    if(ckx_soild->isChecked())
-//    {
-        return true;//to do
-//    }
-//    else
-//    {
-//        return false;
-//    }
+    return this->solid_state;
 }
 }
 /**
 /**
  * @brief set plane_checkbox condition is true/false.
  * @brief set plane_checkbox condition is true/false.
@@ -202,14 +179,7 @@ bool SliceDisplayWidget::GetSoildCondition()
  */
  */
 void SliceDisplayWidget::SetPlaneCondition(bool PlaneC)
 void SliceDisplayWidget::SetPlaneCondition(bool PlaneC)
 {
 {
-//    if(PlaneC)
-//    {
-//        ckx_plane->setChecked(true);
-//    }
-//    else
-//    {
-//        ckx_plane->setChecked(false);
-//    }
+    this->sectionalPlane_state = PlaneC;
     //设置plane是否选择
     //设置plane是否选择
 }
 }
 /**
 /**
@@ -223,14 +193,7 @@ void SliceDisplayWidget::SetPlaneCondition(bool PlaneC)
  */
  */
 bool SliceDisplayWidget::GetPlaneCondition()
 bool SliceDisplayWidget::GetPlaneCondition()
 {
 {
-//    if(ckx_plane->isChecked())
-//    {
-        return true;// to do
-//    }
-//    else
-//    {
-//        return false;
-//    }
+    return this->sectionalPlane_state;
 }
 }
 /**
 /**
  * @brief set scalarvalue_checkbox condition is true/false.
  * @brief set scalarvalue_checkbox condition is true/false.
@@ -243,14 +206,7 @@ bool SliceDisplayWidget::GetPlaneCondition()
  */
  */
 void SliceDisplayWidget::SetScalarValueCondition(bool ScalarVC)
 void SliceDisplayWidget::SetScalarValueCondition(bool ScalarVC)
 {
 {
-//    if(ScalarVC)
-//    {
-//        ckx_valueshow->setChecked(true);
-//    }
-//    else
-//    {
-//        ckx_valueshow->setChecked(false);
-//    }
+    this->scalarValue_state = ScalarVC;
     //设置scalarValue是否选中
     //设置scalarValue是否选中
 }
 }
 /**
 /**
@@ -264,14 +220,7 @@ void SliceDisplayWidget::SetScalarValueCondition(bool ScalarVC)
  */
  */
 bool SliceDisplayWidget::GetScalarValueCondition()
 bool SliceDisplayWidget::GetScalarValueCondition()
 {
 {
-//    if(ckx_valueshow->isChecked())
-//    {
-        return true;//to do
-//    }
-//    else
-//    {
-//        return false;
-//    }
+    return this->scalarValue_state;
 }
 }
 /**
 /**
  * @brief set sectionalplanecondiyion_checkbox condition is true/false.
  * @brief set sectionalplanecondiyion_checkbox condition is true/false.
@@ -284,14 +233,7 @@ bool SliceDisplayWidget::GetScalarValueCondition()
  */
  */
 void SliceDisplayWidget::SetSectionalPlaneCondition(bool SPlaneC)
 void SliceDisplayWidget::SetSectionalPlaneCondition(bool SPlaneC)
 {
 {
-//    if(SPlaneC)
-//    {
-//        ckx_planeshow->setChecked(true);
-//    }
-//    else
-//    {
-//        ckx_planeshow->setChecked(false);
-//    }
+    this->sectonalContour_state = SPlaneC;
 }
 }
 /**
 /**
  * @brief get sectionalplanecondiyion_checkbox condition is true/false.
  * @brief get sectionalplanecondiyion_checkbox condition is true/false.
@@ -304,14 +246,7 @@ void SliceDisplayWidget::SetSectionalPlaneCondition(bool SPlaneC)
  */
  */
 bool SliceDisplayWidget::GetSectionalPlaneCondition()
 bool SliceDisplayWidget::GetSectionalPlaneCondition()
 {
 {
-//    if(ckx_planeshow->isChecked())
-//    {
-       return true;//to do
-//    }
-//    else
-//    {
-//        return false;
-//    }
+    return this->sectonalContour_state;
 }
 }
 /**
 /**
  * @brief set colorlevel.
  * @brief set colorlevel.
@@ -341,6 +276,29 @@ vector<int> SliceDisplayWidget::GetColorLevel()
     level.push_back(this->colorLevel);
     level.push_back(this->colorLevel);
     return level;
     return level;
 }
 }
+
+/*
+ * @brief: get the area range
+ * @param: void
+ * @ret: QString
+ * @birth: created by czm in 20230506
+ */
+QString SliceDisplayWidget::getAreaRange()
+{
+    return this->AreaRange;
+}
+
+/*
+ * @brief: get vector type
+ * @param: void
+ * @ret: vector
+ * @birth: created by czm in 20230506
+ */
+vector<string> SliceDisplayWidget::GetVectorType()
+{
+    return this->type_vector;
+}
+
 /**
 /**
  * @brief accept data from variable_vector.
  * @brief accept data from variable_vector.
  *
  *
@@ -374,10 +332,20 @@ void SliceDisplayWidget::SetVariableName(vector<string> variableName)
 vector<string> SliceDisplayWidget::GetVariableName()
 vector<string> SliceDisplayWidget::GetVariableName()
 {
 {
     vector<string> variablename;
     vector<string> variablename;
-    //variablename.push_back(cbx_name->currentText().toStdString());
     variablename.push_back(current_variablename);
     variablename.push_back(current_variablename);
     return variablename;
     return variablename;
 }
 }
+
+/*
+ * @brief: get vector of variablename
+ * @param: void
+ * @ret: vector
+ * @birth: created by czm in 20230508
+ */
+vector<string> SliceDisplayWidget::GetVariableName_vector()
+{
+    return this->variableName;
+}
 /**
 /**
  * @brief get type.
  * @brief get type.
  * @param[in]
  * @param[in]
@@ -389,7 +357,6 @@ vector<string> SliceDisplayWidget::GetVariableName()
 vector<string> SliceDisplayWidget::GetType()
 vector<string> SliceDisplayWidget::GetType()
 {
 {
     vector<string> type;
     vector<string> type;
-    //type.push_back(cbx_type->currentText().toStdString());
     type.push_back(current_type);
     type.push_back(current_type);
     return type;
     return type;
 }
 }
@@ -406,30 +373,3 @@ SliceDisplayWidget::~SliceDisplayWidget()
 {
 {
 
 
 }
 }
-///**
-//* @brief set Text function
-//*
-//* detail data information
-//* @param[in/out]
-//* @return
-//* @author hejingjing
-//* @date 20230324
-//*/
-//void SliceDisplayWidget::initText()
-//{
-//    gbx_slice->setTitle(QApplication::translate("SliceDisplayWidget","Slice"));
-//    lbl_range->setText(QApplication::translate("SliceDisplayWidget","Area_range"));
-//    ckx_soild->setText(QApplication::translate("SliceDisplayWidget","Solid"));
-//    ckx_plane->setText(QApplication::translate("SliceDisplayWidget","Sectional plane"));
-//    gbx_normal->setTitle(QApplication::translate("SliceDisplayWidget","Normal"));
-//    gbx_position->setTitle(QApplication::translate("SliceDisplayWidget","Position"));
-//    gbx_contour->setTitle(QApplication::translate("SliceDisplayWidget","Contour"));
-//    lbl_type->setText(QApplication::translate("SliceDisplayWidget","Type"));
-//    cbx_type->addItem(QApplication::translate("SliceDisplayWidget","contour"));
-//    cbx_type->addItem(QApplication::translate("SliceDisplayWidget","line"));
-//    lbl_name->setText(QApplication::translate("SliceDisplayWidget","variable name"));
-//    lbl_color->setText(QApplication::translate("SliceDisplayWidget","color_level"));
-//    ckx_planeshow->setText(QApplication::translate("SliceDisplayWidget","Sectional Contour"));
-//    ckx_valueshow->setText(QApplication::translate("SliceDisplayWidget","Scalar Value"));
-//}
-

+ 14 - 6
CAE_Solution/src/VTK/widget/slicedisplaywidget.h

@@ -28,24 +28,32 @@ public:
     vector<string> GetType();
     vector<string> GetType();
     void SetVariableName(vector<string> variableName);
     void SetVariableName(vector<string> variableName);
     vector<string> GetVariableName();
     vector<string> GetVariableName();
+    vector<string> GetVariableName_vector();
     void SetColorLevel(int level);
     void SetColorLevel(int level);
     vector<int> GetColorLevel();
     vector<int> GetColorLevel();
-    //void initText();
+    QString getAreaRange();
+    vector<string> GetVectorType();
 
 
-public:
-    double normal_x;
+private:
+    double normal_x;//normal
     double normal_y;
     double normal_y;
     double normal_z;
     double normal_z;
-    double Position_x;
+    double Position_x;//position
     double Position_y;
     double Position_y;
     double Position_z;
     double Position_z;
-    double Position_x_range[2];
+    double Position_x_range[2];//range
     double Position_y_range[2];
     double Position_y_range[2];
     double Position_z_range[2];
     double Position_z_range[2];
     QString AreaRange;
     QString AreaRange;
     int colorLevel;
     int colorLevel;
-    vector<string> variableName;
+    vector<string> variableName;//name
     string current_variablename;
     string current_variablename;
     string current_type;
     string current_type;
+    bool solid_state;
+    bool sectionalPlane_state;
+    bool sectonalContour_state;
+    bool scalarValue_state;
+
+    vector<string> type_vector;
 };
 };
 #endif // SLICEWIDGET_H
 #endif // SLICEWIDGET_H

+ 1 - 1
CAE_Solution/src/main.cpp

@@ -20,7 +20,7 @@ VTK_MODULE_INIT(vtkRenderingFreeType)
 #include <QMutex>
 #include <QMutex>
 #include "widget.h"
 #include "widget.h"
 #include "threadPool_and_statemachine/dealWith/handlepool.h"
 #include "threadPool_and_statemachine/dealWith/handlepool.h"
-#include "threadPool_and_statemachine/dealWith/vtkjsonobject.h"
+#include "threadPool_and_statemachine/dealWith/boostjsonobject.h"
 #include "VTK/Manager/ResultMeshManager.h"
 #include "VTK/Manager/ResultMeshManager.h"
 
 
 
 

+ 79 - 78
CAE_Solution/src/src.pro

@@ -496,84 +496,85 @@ unix:!macx: PRE_TARGETDEPS += $$PWD/../Libs/rabbitmq/centos8/librabbitmq.a
 ##############################################################################
 ##############################################################################
 #添加外部库boost
 #添加外部库boost
 
 
-#CONFIG(release, debug|release):{
-#win32: LIBS += -L$$PWD/../Libs/boost/win/lib/ -llibboost_atomic-vc140-mt-x64-1_73 \
-#                                              -llibboost_chrono-vc140-mt-x64-1_73 \
-#                                              -llibboost_container-vc140-mt-x64-1_73 \
-#                                              -llibboost_context-vc140-mt-x64-1_73 \
-#                                              -llibboost_contract-vc140-mt-x64-1_73 \
-#                                              -llibboost_coroutine-vc140-mt-x64-1_73 \
-#                                              -llibboost_date_time-vc140-mt-x64-1_73 \
-#                                              -llibboost_exception-vc140-mt-x64-1_73 \
-#                                              -llibboost_filesystem-vc140-mt-x64-1_73 \
-#                                              -llibboost_graph-vc140-mt-x64-1_73 \
-#                                              -llibboost_iostreams-vc140-mt-x64-1_73 \
-#                                              -llibboost_locale-vc140-mt-x64-1_73 \
-#                                              -llibboost_math_c99-vc140-mt-x64-1_73 \
-#                                              -llibboost_math_c99f-vc140-mt-x64-1_73 \
-#                                              -llibboost_math_c99l-vc140-mt-x64-1_73 \
-#                                              -llibboost_math_tr1-vc140-mt-x64-1_73 \
-#                                              -llibboost_math_tr1f-vc140-mt-x64-1_73 \
-#                                              -llibboost_math_tr1l-vc140-mt-x64-1_73 \
-#                                              -llibboost_nowide-vc140-mt-x64-1_73 \
-#                                              -llibboost_prg_exec_monitor-vc140-mt-x64-1_73 \
-#                                              -llibboost_program_options-vc140-mt-x64-1_73 \
-#                                              -llibboost_random-vc140-mt-x64-1_73 \
-#                                              -llibboost_regex-vc140-mt-x64-1_73 \
-#                                              -llibboost_serialization-vc140-mt-x64-1_73 \
-#                                              -llibboost_stacktrace_noop-vc140-mt-x64-1_73 \
-#                                              -llibboost_stacktrace_windbg-vc140-mt-x64-1_73 \
-#                                              -llibboost_stacktrace_windbg_cached-vc140-mt-x64-1_73 \
-#                                              -llibboost_system-vc140-mt-x64-1_73 \
-#                                              -llibboost_test_exec_monitor-vc140-mt-x64-1_73 \
-#                                              -llibboost_thread-vc140-mt-x64-1_73 \
-#                                              -llibboost_timer-vc140-mt-x64-1_73 \
-#                                              -llibboost_type_erasure-vc140-mt-x64-1_73 \
-#                                              -llibboost_unit_test_framework-vc140-mt-x64-1_73 \
-#                                              -llibboost_wave-vc140-mt-x64-1_73 \
-#                                              -llibboost_wserialization-vc140-mt-x64-1_73
-#}
-
-#CONFIG(release, debug|release):{
-#win32: LIBS += -L$$PWD/../Libs/boost/win/lib/ -llibboost_atomic-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_chrono-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_container-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_context-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_contract-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_coroutine-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_date_time-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_exception-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_filesystem-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_graph-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_iostreams-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_locale-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_math_c99-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_math_c99f-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_math_c99l-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_math_tr1-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_math_tr1f-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_math_tr1l-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_nowide-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_prg_exec_monitor-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_program_options-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_random-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_regex-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_serialization-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_stacktrace_noop-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_stacktrace_windbg-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_stacktrace_windbg_cached-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_system-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_test_exec_monitor-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_thread-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_timer-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_type_erasure-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_unit_test_framework-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_wave-vc140-mt-gd-x64-1_73 \
-#                                              -llibboost_wserialization-vc140-mt-gd-x64-1_73
-#}
-
-#INCLUDEPATH += $$PWD/../Libs/boost/win/include/boost-1_73
-#DEPENDPATH += $$PWD/../Libs/boost/win/include/boost-1_73
+CONFIG(release, debug|release):{
+win32: LIBS += -L$$PWD/../Libs/boost/win/lib/ -llibboost_atomic-vc140-mt-x64-1_73 \
+                                              -llibboost_chrono-vc140-mt-x64-1_73 \
+                                              -llibboost_container-vc140-mt-x64-1_73 \
+                                              -llibboost_context-vc140-mt-x64-1_73 \
+                                              -llibboost_contract-vc140-mt-x64-1_73 \
+                                              -llibboost_coroutine-vc140-mt-x64-1_73 \
+                                              -llibboost_date_time-vc140-mt-x64-1_73 \
+                                              -llibboost_exception-vc140-mt-x64-1_73 \
+                                              -llibboost_filesystem-vc140-mt-x64-1_73 \
+                                              -llibboost_graph-vc140-mt-x64-1_73 \
+                                              -llibboost_iostreams-vc140-mt-x64-1_73 \
+                                              -llibboost_locale-vc140-mt-x64-1_73 \
+                                              -llibboost_math_c99-vc140-mt-x64-1_73 \
+                                              -llibboost_math_c99f-vc140-mt-x64-1_73 \
+                                              -llibboost_math_c99l-vc140-mt-x64-1_73 \
+                                              -llibboost_math_tr1-vc140-mt-x64-1_73 \
+                                              -llibboost_math_tr1f-vc140-mt-x64-1_73 \
+                                              -llibboost_math_tr1l-vc140-mt-x64-1_73 \
+                                              -llibboost_nowide-vc140-mt-x64-1_73 \
+                                              -llibboost_prg_exec_monitor-vc140-mt-x64-1_73 \
+                                              -llibboost_program_options-vc140-mt-x64-1_73 \
+                                              -llibboost_random-vc140-mt-x64-1_73 \
+                                              -llibboost_regex-vc140-mt-x64-1_73 \
+                                              -llibboost_serialization-vc140-mt-x64-1_73 \
+                                              -llibboost_stacktrace_noop-vc140-mt-x64-1_73 \
+                                              -llibboost_stacktrace_windbg-vc140-mt-x64-1_73 \
+                                              -llibboost_stacktrace_windbg_cached-vc140-mt-x64-1_73 \
+                                              -llibboost_system-vc140-mt-x64-1_73 \
+                                              -llibboost_test_exec_monitor-vc140-mt-x64-1_73 \
+                                              -llibboost_thread-vc140-mt-x64-1_73 \
+                                              -llibboost_timer-vc140-mt-x64-1_73 \
+                                              -llibboost_type_erasure-vc140-mt-x64-1_73 \
+                                              -llibboost_unit_test_framework-vc140-mt-x64-1_73 \
+                                              -llibboost_wave-vc140-mt-x64-1_73 \
+                                              -llibboost_wserialization-vc140-mt-x64-1_73
+}
+
+CONFIG(debug, debug|release):{
+win32: LIBS += -L$$PWD/../Libs/boost/win/lib/ -llibboost_atomic-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_chrono-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_container-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_context-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_contract-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_coroutine-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_date_time-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_exception-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_filesystem-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_graph-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_iostreams-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_locale-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_math_c99-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_math_c99f-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_math_c99l-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_math_tr1-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_math_tr1f-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_math_tr1l-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_nowide-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_prg_exec_monitor-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_program_options-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_random-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_regex-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_serialization-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_stacktrace_noop-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_stacktrace_windbg-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_stacktrace_windbg_cached-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_system-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_test_exec_monitor-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_thread-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_timer-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_type_erasure-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_unit_test_framework-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_wave-vc140-mt-gd-x64-1_73 \
+                                              -llibboost_wserialization-vc140-mt-gd-x64-1_73
+}
+
+INCLUDEPATH += $$PWD/../Libs/boost/win/include/boost-1_73
+DEPENDPATH += $$PWD/../Libs/boost/win/include/boost-1_73
+
 
 
 
 
 
 

+ 235 - 0
CAE_Solution/src/threadPool_and_statemachine/dealWith/boostjsonobject.cpp

@@ -0,0 +1,235 @@
+#include "boostjsonobject.h"
+
+/*
+ * @brief: the constructor
+ * @param:
+ * @ret:
+ * @birth: created by czm in 20230508
+ */
+boostJsonObject::boostJsonObject()
+{
+    cd_struct = NULL;
+    ld_struct = NULL;
+    vc_struct = NULL;
+    sf_struct = NULL;
+    sd_struct = NULL;
+}
+
+/*
+ * @brief: the destructor
+ * @param:
+ * @ret:
+ * @birth: created by czm in 20230508
+ */
+boostJsonObject::~boostJsonObject()
+{
+    if(cd_struct){
+        delete cd_struct;
+        cd_struct = NULL;
+    }
+    if(ld_struct){
+        delete ld_struct;
+        ld_struct = NULL;
+    }
+    if(vc_struct){
+        delete vc_struct;
+        vc_struct = NULL;
+    }
+    if(sf_struct){
+        delete sf_struct;
+        sf_struct = NULL;
+    }
+    if(sd_struct){
+        delete sd_struct;
+        sd_struct = NULL;
+    }
+    qDeleteAll(vec_sd_struct);
+}
+
+/*
+ * @brief: parsing json msg(使用boost解析json数据)
+ * @param: json msg
+ * @brief: void
+ * @birth: created by czm in 20230508
+ */
+void boostJsonObject::FromJson(string msg)
+{
+    stringstream msgs;
+    msgs<<msg;
+    ptree root;
+    read_json(msgs,root);//boost 方法
+    try{
+        this->usrId = root.get<string>("usrId");
+        this->solverConfigid = root.get<string>("solverConfigid");
+        this->proId = root.get<string>("proId");
+        this->paramJson = root.get<string>("paramJson");
+        this->action = root.get<string>("action");
+    }catch(exception ex){
+        cout<<ex.what()<<endl;
+        return;
+    }
+    FromParamJson(this->paramJson);
+}
+
+/*
+ * @brief: operator =(重载=符号)
+ * @param: vtkJsonObject
+ * @brief: this pointer
+ * @birth: created by czm in 20230508
+ */
+boostJsonObject *boostJsonObject::operator=(boostJsonObject *object)
+{
+    this->usrId = object->usrId;
+    this->solverConfigid = object->solverConfigid;
+    this->proId = object->proId;
+    this->filePath = object->filePath;
+    this->fileType = object->fileType;
+    this->fileName = object->fileName;
+    this->action = object->action;
+    this->paramJson = object->paramJson;
+    this->cd_struct = object->cd_struct;
+    this->ld_struct = object->ld_struct;
+    this->vc_struct = object->vc_struct;
+    this->sf_struct = object->sf_struct;
+    this->sd_struct = object->sd_struct;
+    this->vec_sd_struct = object->vec_sd_struct;
+    return this;
+}
+
+/*
+ * @brief: Build JSON message(组成json数据)
+ * @param: img file
+ * @brief: josn msg
+ * @birth: created by czm in 20230508
+ */
+string boostJsonObject::ToJson(string type, QMap<QString, string> map_)
+{
+    ptree root,item;
+    root.put("usrId",this->usrId);
+    root.put("solverConfigid",this->solverConfigid);
+    root.put("proId",this->proId);
+    root.put("action",this->action);
+    if(type == "img"){
+        root.put("img",map_["img"]);
+    }else if(type == "importResult_contour"){
+        item.put("msgType","contour_param");
+        item.put("scalarName",map_["scalarName"]);
+        item.put("scalarNames",map_["scalarNames"]);
+        item.put("nameTypes",map_["nameTypes"]);
+        item.put("range0",map_["range0"]);
+        item.put("range1",map_["range1"]);
+    }else if(type == "importResult_line"){
+        item.put("msgType","line_param");
+        item.put("scalarName",map_["scalarName"]);
+        item.put("scalarNames",map_["scalarNames"]);
+        item.put("nameTypes",map_["nameTypes"]);
+        item.put("range0",map_["range0"]);
+        item.put("range1",map_["range1"]);
+    }else if(type == "contourDisplay"){
+        item.put("msgType","contourDisplay_range");
+        item.put("minRange",map_["minRange"]);
+        item.put("maxRange",map_["maxRange"]);
+    }else if(type == "importResult_vector"){
+        item.put("msgType","vector_param");
+        item.put("dataU",map_["dataU"]);
+        item.put("dataV",map_["dataV"]);
+        item.put("dataW",map_["dataW"]);
+        item.put("scaleFactor",map_["scaleFactor"]);
+    }else if(type == "importResult_solidsurface"){
+        item.put("msgType","solidsurface_param");
+        item.put("r",map_["r"]);
+        item.put("g",map_["g"]);
+        item.put("b",map_["b"]);
+        item.put("transparency",map_["transparency"]);
+        item.put("showHideState",map_["showHideState"]);
+    }else if(type == "addPage_slice"){
+        item.put("msgType","addPage_slice_param");
+        item.put("position_x",map_["position_x"]);
+        item.put("position_y",map_["position_y"]);
+        item.put("position_z",map_["position_z"]);
+        item.put("min_position_x",map_["min_position_x"]);
+        item.put("max_position_x",map_["max_position_x"]);
+        item.put("min_position_y",map_["min_position_y"]);
+        item.put("max_position_y",map_["max_position_y"]);
+        item.put("min_position_z",map_["min_position_z"]);
+        item.put("max_position_z",map_["max_position_z"]);
+        item.put("variableName",map_["variableName"]);
+        item.put("arearange",map_["arearange"]);
+    }else if(type == "update_slice"){
+        //to do
+    }
+    stringstream tmp;
+    json_parser::write_json(tmp,item);
+    root.put("paramJson",tmp.str());
+    stringstream mmsg;
+    json_parser::write_json (mmsg,root);
+    return mmsg.str();
+
+    //boost::json::object json_obj;
+
+}
+
+/*
+ * @brief: analysis paramjson
+ * @param: paramjson
+ * @ret: void
+ * @birth: created by czm in 20230508
+ */
+void boostJsonObject::FromParamJson(string param)
+{
+    if(param.empty())return;
+    stringstream params;
+    params<<param;
+    ptree root;
+    read_json(params,root);
+    try{
+        this->filePath = root.get<string>("filePath");
+        this->fileType = root.get<string>("fileType");
+        this->fileName = root.get<string>("fileName");
+        if(this->action == "ContourDisplay"){
+            this->cd_struct = new contourDisplay_struct();
+            cd_struct->level = root.get<int>("level");
+            QString range = QString::fromStdString(root.get<string>("range"));
+            QStringList range_list = range.split(",");
+            cd_struct->range[0] = range_list[0].toDouble();
+            cd_struct->range[1] = range_list[1].toDouble();
+            cd_struct->scalarName = root.get<string>("scalarName");
+        }else if(this->action == "LineDisplay"){
+            this->ld_struct = new contourDisplay_struct();
+            ld_struct->level = root.get<int>("level");
+            QString range = QString::fromStdString(root.get<string>("range"));
+            QStringList range_list = range.split(",");
+            ld_struct->range[0] = range_list[0].toDouble();
+            ld_struct->range[1] = range_list[1].toDouble();
+            ld_struct->scalarName = root.get<string>("scalarName");
+        }else if(this->action == "VectorDisplay"){
+            vc_struct = new vectorDisplay_struct();
+            vc_struct->dataU = root.get<string>("dataU");
+            vc_struct->dataV = root.get<string>("dataV");
+            vc_struct->dataW = root.get<string>("dataW");
+            vc_struct->scaleFactor = root.get<double>("scaleFactor");
+        }else if(this->action == "SolidSurfaceDisplay"){
+            sf_struct = new solidsurfaceDisplay_struct();
+            sf_struct->r = root.get<double>("r");
+            sf_struct->g = root.get<double>("g");
+            sf_struct->b = root.get<double>("b");
+            sf_struct->transparency = root.get<double>("transparency");
+            sf_struct->showhidestate = root.get<bool>("showHideState");
+        }else if(this->action == "SliceDisplayAdd"){
+            sd_struct = new sliceDisplay_struct();
+            sd_struct->index = root.get<double>("index");
+        }else if(this->action == "SliceDisplayUpdate"){
+            //do nothing
+        }else if(this->action == "SliceDisplayDel"){
+            sd_struct = new sliceDisplay_struct();
+            sd_struct->index = root.get<double>("index");
+        }else if(this->action == "SliceDisplayApply"){
+            //to do
+        }
+    }catch(exception ex){
+        cout<<ex.what()<<endl;;
+        return;
+    }
+}
+
+

+ 43 - 0
CAE_Solution/src/threadPool_and_statemachine/dealWith/boostjsonobject.h

@@ -0,0 +1,43 @@
+#ifndef BOOSTJSONOBJECT_H
+#define BOOSTJSONOBJECT_H
+#include "display_struct.h"
+#include <string>
+#include <vector>
+#include <QMap>
+#include <QString>
+#include <sstream>
+#include <iostream>
+#include "boost/property_tree/ptree.hpp"
+#include "boost/property_tree/json_parser.hpp"
+
+
+using namespace std;
+using namespace boost::property_tree;
+
+class boostJsonObject
+{
+public:
+    boostJsonObject();
+    ~boostJsonObject();
+    void FromJson(string msg);
+    boostJsonObject* operator=(boostJsonObject* object);
+    string ToJson(string type,QMap<QString,string> map_);
+    void FromParamJson(string);
+public:
+    string usrId;
+    string solverConfigid;
+    string proId;
+    string paramJson;
+    string filePath;
+    string fileType;
+    string fileName;
+    string action;
+    contourDisplay_struct* cd_struct;//contour
+    contourDisplay_struct* ld_struct;//line
+    vectorDisplay_struct*  vc_struct;//vector
+    solidsurfaceDisplay_struct* sf_struct;//solidsurface
+    sliceDisplay_struct* sd_struct;//slice
+    vector<sliceDisplay_struct*> vec_sd_struct;
+};
+
+#endif // BOOSTJSONOBJECT_H

+ 4 - 3
CAE_Solution/src/threadPool_and_statemachine/dealWith/dealWith.pri

@@ -1,9 +1,10 @@
 SOURCES += \
 SOURCES += \
     $$PWD/handlepool.cpp \
     $$PWD/handlepool.cpp \
-    $$PWD/vtkjsonobject.cpp
+    $$PWD/boostjsonobject.cpp
 
 
 
 
 HEADERS += \
 HEADERS += \
     $$PWD/handlepool.h \
     $$PWD/handlepool.h \
-    $$PWD/vtkjsonobject.h \
-    $$PWD/map_manager.h
+    $$PWD/map_manager.h \
+    $$PWD/boostjsonobject.h \
+    $$PWD/display_struct.h

+ 66 - 0
CAE_Solution/src/threadPool_and_statemachine/dealWith/display_struct.h

@@ -0,0 +1,66 @@
+#ifndef DISPLAY_STRUCT_H
+#define DISPLAY_STRUCT_H
+#include <string>
+using namespace std;
+//云图/等值线msg结构体
+class contourDisplay_struct
+{
+public:
+    contourDisplay_struct(){}
+    ~contourDisplay_struct(){}
+    int level;
+    string scalarName;
+    double range[2];
+};
+
+//矢量msg结构体
+class vectorDisplay_struct
+{
+public:
+    vectorDisplay_struct(){}
+    ~vectorDisplay_struct(){}
+    double scaleFactor;
+    string dataU;
+    string dataV;
+    string dataW;
+};
+
+//实体表面msg结构体
+class solidsurfaceDisplay_struct
+{
+public:
+    solidsurfaceDisplay_struct(){}
+    ~solidsurfaceDisplay_struct(){}
+    double r;
+    double g;
+    double b;
+    double transparency;
+    bool showhidestate;
+};
+
+//切片msg类
+class sliceDisplay_struct
+{
+public:
+    sliceDisplay_struct(){}
+    ~sliceDisplay_struct(){}
+    int index;
+    string arearange;
+    string type;
+    string variableName;
+    int level;
+    double normal_x;
+    double normal_y;
+    double normal_z;
+    double position_x;
+    double position_y;
+    double position_z;
+    bool solid_state;
+    bool sectional_plane_state;
+    bool sectional_contour_state;
+    bool scalar_value_state;
+    string xrange;
+    string yrange;
+    string zrange;
+};
+#endif // DISPLAY_STRUCT_H

+ 165 - 32
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp

@@ -63,9 +63,9 @@ handlePool::~handlePool()
 void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
 void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
 {
 {
     std::cout<<"recvmsg"<<recvmsg<<std::endl;
     std::cout<<"recvmsg"<<recvmsg<<std::endl;
-    vtkJsonObject* json_object = new vtkJsonObject();
+    boostJsonObject* json_object = new boostJsonObject();
     QVTKRenderer* render_=NULL;
     QVTKRenderer* render_=NULL;
-    json_object->FromJSON(recvmsg);
+    json_object->FromJson(recvmsg);
 
 
     operateRender(json_object,render_);//解析命令
     operateRender(json_object,render_);//解析命令
 
 
@@ -77,7 +77,7 @@ 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(vtkJsonObject* object,QVTKRenderer* render_)
+void handlePool::operateRender(boostJsonObject* object,QVTKRenderer* render_)
 {
 {
     if(object->action == "init"){
     if(object->action == "init"){
         delete object;
         delete object;
@@ -145,23 +145,43 @@ void handlePool::operateRender(vtkJsonObject* object,QVTKRenderer* render_)
             cout<<"please import tecplot result first!"<<endl;
             cout<<"please import tecplot result first!"<<endl;
         }
         }
         return;
         return;
+    }else if(object->action == "SliceDisplayAdd"){//切片添加窗口
+        if(!result_slicedisplay(object,render_,"addpage")){
+            cout<<"please import tecplot result first!"<<endl;
+        }
+        return;
+    }else if(object->action == "SliceDisplayUpdate"){//切片刷新
+        if(!result_slicedisplay(object,render_,"update")){
+            cout<<"please import tecplot result first!"<<endl;
+        }
+        return;
+    }else if(object->action == "SliceDisplayDel"){//切片删除
+        if(!result_slicedisplay(object,render_,"clear")){
+            cout<<"please import tecplot result first!"<<endl;
+        }
+        return;
+    }else if(object->action == "SliceDisplayApply"){//切片渲染
+        if(!result_slicedisplay(object,render_,"apply")){
+            cout<<"please import tecplot result first!"<<endl;
+        }
+        return;
     }
     }
     send_picture(object,render_);//发送图片
     send_picture(object,render_);//发送图片
 }
 }
 
 
 /*
 /*
  * @brief: deal with msg about loaddata
  * @brief: deal with msg about loaddata
- * @param: vtkJsonObject QVTKRenderer
+ * @param: boostJsonObject QVTKRenderer
  * @ret: bool
  * @ret: bool
  * @birth: created by czm in 20230425
  * @birth: created by czm in 20230425
  */
  */
-void handlePool::judgeLoaddata(vtkJsonObject *object, QVTKRenderer *render_)
+void handlePool::judgeLoaddata(boostJsonObject *object, QVTKRenderer *render_)
 {
 {
     if(!qmapRender.contains(object->proId)){//判断有无窗口
     if(!qmapRender.contains(object->proId)){//判断有无窗口
         render_ = new QVTKRenderer();
         render_ = new QVTKRenderer();
         qmapRender.insert(object->proId,render_);
         qmapRender.insert(object->proId,render_);
         render_->init();
         render_->init();
-        w->addTab(render_->GetWidget(),object->proId);
+        w->addTab(render_->GetWidget(),QString::fromStdString(object->proId));
     }else{
     }else{
         render_ = qmapRender.value(object->proId);
         render_ = qmapRender.value(object->proId);
         auto flag = render_->widgetFlag;
         auto flag = render_->widgetFlag;
@@ -178,8 +198,8 @@ void handlePool::judgeLoaddata(vtkJsonObject *object, QVTKRenderer *render_)
             render_->RemoveAllActors();
             render_->RemoveAllActors();
         }
         }
     }
     }
-    QString m_filePath = object->filePath;//测试路径
-    //QString m_filePath = "F:\\czm\\vtkfile\\tfg.ugrid";
+    //QString m_filePath = object->filePath;//测试路径
+    QString m_filePath = "F:\\czm\\vtkfile\\tfg.ugrid";
     QFileInfo fileinfo_(m_filePath);
     QFileInfo fileinfo_(m_filePath);
     if(!fileinfo_.isFile()){
     if(!fileinfo_.isFile()){
         cout<<"file path is Empty!"<<endl;
         cout<<"file path is Empty!"<<endl;
@@ -214,9 +234,13 @@ void handlePool::judgeLoaddata(vtkJsonObject *object, QVTKRenderer *render_)
  * @ret: void
  * @ret: void
  * @birth: created by czm in 20230420
  * @birth: created by czm in 20230420
  */
  */
-bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
+bool handlePool::resultImport(boostJsonObject *object_, QVTKRenderer *renderer_)
 {
 {
-    QStringList fileName_list=object_->getFileName().split(",");
+    vector<string> tmp = stringSplit(object_->fileName,',');
+    QStringList fileName_list;
+    for(auto & x:tmp){
+        fileName_list.append(QString::fromStdString(x));
+    }
     if(fileName_list.isEmpty()){
     if(fileName_list.isEmpty()){
         cout<< "No Tecplot file is ready to read!"<<endl;
         cout<< "No Tecplot file is ready to read!"<<endl;
         return false;
         return false;
@@ -226,7 +250,7 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
         renderer_ = new QVTKRenderer();
         renderer_ = new QVTKRenderer();
         qmapRender.insert(object_->proId,renderer_);
         qmapRender.insert(object_->proId,renderer_);
         renderer_->init();
         renderer_->init();
-        w->addTab(renderer_->GetWidget(),object_->proId);
+        w->addTab(renderer_->GetWidget(),QString::fromStdString(object_->proId));
         renderer_->widgetFlag = QVTKRenderer::WidgetModel::NoModel;
         renderer_->widgetFlag = QVTKRenderer::WidgetModel::NoModel;
     }else{
     }else{
         renderer_ = qmapRender[object_->proId];
         renderer_ = qmapRender[object_->proId];
@@ -236,7 +260,7 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
             renderer_->HideAllActors();//to do 有bug 先导入结果,在loaddata,再导入,会报错
             renderer_->HideAllActors();//to do 有bug 先导入结果,在loaddata,再导入,会报错
             renderer_->RemoveAllActors();
             renderer_->RemoveAllActors();
         }else if(flag ==QVTKRenderer::WidgetModel::ResultModel){
         }else if(flag ==QVTKRenderer::WidgetModel::ResultModel){
-            if(qmapResultmanager.value(object_->proId)->fileName == object_->getFileName()){//to do 详细比对文件名
+            if(qmapResultmanager.value(object_->proId)->fileName == (object_->fileName)){//to do 详细比对文件名
                 send_picture(object_,renderer_);
                 send_picture(object_,renderer_);
                 return true;
                 return true;
             }
             }
@@ -245,8 +269,8 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
             //            renderer_->RemoveAllActors();
             //            renderer_->RemoveAllActors();
         }
         }
     }
     }
-    //object_->filePath = "C:\\Users\\Administrator\\Desktop\\Postprocess_Binary";//测试路径
-    QDir dir(object_->filePath);
+    object_->filePath = "C:\\Users\\Administrator\\Desktop\\Postprocess_Binary";//测试路径
+    QDir dir(QString::fromStdString(object_->filePath));
     if(!dir.exists()){
     if(!dir.exists()){
         return false;
         return false;
     }
     }
@@ -256,7 +280,7 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
     rsMeshManager->Clear();
     rsMeshManager->Clear();
     bool flag = true;
     bool flag = true;
     for(int i =0;i<fileName_list.size();i++){
     for(int i =0;i<fileName_list.size();i++){
-        bool f =rsMeshManager->LoadData(object_->filePath+"/"+fileName_list[i]);
+        bool f =rsMeshManager->LoadData(QString::fromStdString(object_->filePath)+"/"+fileName_list[i]);
         if(f){
         if(f){
             rsMeshManager->SetSaveIndex(i);
             rsMeshManager->SetSaveIndex(i);
             if(renderer_){
             if(renderer_){
@@ -276,7 +300,7 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
         rsMeshManager->InitWidgetsParameter();
         rsMeshManager->InitWidgetsParameter();
         renderer_->ZoomToExtents();
         renderer_->ZoomToExtents();
     }
     }
-/*********************************************/
+    /*********************************************/
     ContourDisplayW *contourdw = new ContourDisplayW();//云图窗口参数初始化
     ContourDisplayW *contourdw = new ContourDisplayW();//云图窗口参数初始化
     rsMeshManager->SetCotourWidget(contourdw);
     rsMeshManager->SetCotourWidget(contourdw);
     rsMeshManager->SetWidgetRange();
     rsMeshManager->SetWidgetRange();
@@ -288,9 +312,13 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
     VectorW *vecdW = new VectorW();//矢量窗口初始化参数
     VectorW *vecdW = new VectorW();//矢量窗口初始化参数
     rsMeshManager->SetVectorWidget(vecdW);
     rsMeshManager->SetVectorWidget(vecdW);
 
 
+
     SolidSurfaceWidget* solidfW = new SolidSurfaceWidget();//实体表面窗口初始化参数
     SolidSurfaceWidget* solidfW = new SolidSurfaceWidget();//实体表面窗口初始化参数
     rsMeshManager->SetSurfaceSolidWidget(solidfW);
     rsMeshManager->SetSurfaceSolidWidget(solidfW);
-/********************************************/
+
+    //SsliceWidget * ssliceW = new SsliceWidget();
+    //rsMeshManager->SetSliceWidget(ssliceW);
+    /********************************************/
     renderer_->widgetFlag = QVTKRenderer::WidgetModel::ResultModel;//设置当前窗口模型状态
     renderer_->widgetFlag = QVTKRenderer::WidgetModel::ResultModel;//设置当前窗口模型状态
     if(qmapResultmanager.contains(object_->proId)){//加载不同的结果文件
     if(qmapResultmanager.contains(object_->proId)){//加载不同的结果文件
         delete qmapResultmanager.value(object_->proId);
         delete qmapResultmanager.value(object_->proId);
@@ -313,7 +341,7 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
  * @ret: bool
  * @ret: bool
  * @birth: created by czm in 20230421
  * @birth: created by czm in 20230421
  */
  */
-bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* render_)
+bool handlePool::result_contourdisplay(boostJsonObject *object_,QVTKRenderer* render_)
 {
 {
     ContourDisplay* condis = NULL;
     ContourDisplay* condis = NULL;
 
 
@@ -343,7 +371,7 @@ bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* rend
  * @ret: bool
  * @ret: bool
  * @birth: created by czm in 20230424
  * @birth: created by czm in 20230424
  */
  */
-bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_)
+bool handlePool::result_linedisplay(boostJsonObject *object_,QVTKRenderer* render_)
 {
 {
     LineDisplay* linedis = NULL;
     LineDisplay* linedis = NULL;
     if(!qmapResultmanager.contains(object_->proId))return false;
     if(!qmapResultmanager.contains(object_->proId))return false;
@@ -373,7 +401,7 @@ bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_
  * @ret: bool
  * @ret: bool
  * @birth: created by czm in 20230504
  * @birth: created by czm in 20230504
  */
  */
-bool handlePool::result_vectordisplay(vtkJsonObject *object_, QVTKRenderer *render_)
+bool handlePool::result_vectordisplay(boostJsonObject *object_, QVTKRenderer *render_)
 {
 {
     Vectordisplay *vecdis = NULL;
     Vectordisplay *vecdis = NULL;
     if(!qmapResultmanager.contains(object_->proId))return false;
     if(!qmapResultmanager.contains(object_->proId))return false;
@@ -396,7 +424,7 @@ bool handlePool::result_vectordisplay(vtkJsonObject *object_, QVTKRenderer *rend
  * @ret: bool
  * @ret: bool
  * @birth: created by czm in 20230505
  * @birth: created by czm in 20230505
  */
  */
-bool handlePool::result_solidsurfacedisplay(vtkJsonObject *object_, QVTKRenderer *render_)
+bool handlePool::result_solidsurfacedisplay(boostJsonObject *object_, QVTKRenderer *render_)
 {
 {
     SolidSurface *solidfdis = NULL;
     SolidSurface *solidfdis = NULL;
     if(!qmapResultmanager.contains(object_->proId))return false;
     if(!qmapResultmanager.contains(object_->proId))return false;
@@ -413,6 +441,49 @@ bool handlePool::result_solidsurfacedisplay(vtkJsonObject *object_, QVTKRenderer
     return true;
     return true;
 }
 }
 
 
+/*
+ * @brief: analysis msg about slicedisplay
+ * @param: object and render
+ * @ret: bool
+ * @birth: created by czm in 20230505
+ */
+bool handlePool::result_slicedisplay(boostJsonObject *object_, QVTKRenderer *render_,QString type)
+{
+    SliceWidget *slicedis = NULL;
+    if(!qmapResultmanager.contains(object_->proId))return false;
+    render_ = qmapRender[object_->proId];
+    ResultMeshManager* resultmm = qmapResultmanager[object_->proId]->resultMeshManager_;
+    if(map_slicedisplay.contains(object_->proId)){
+        slicedis = map_slicedisplay[object_->proId];//to do
+    }else{
+        slicedis = new SliceWidget(resultmm);
+        map_slicedisplay.insert(object_->proId,slicedis);
+    }
+    if(type == "addpage"){
+        int tmp_index = object_->sd_struct->index;
+        resultmm->sliceW_->setIndex(tmp_index);
+        resultmm->InitSliceWidget();
+        resultmm->MakeVISUnStructGrid();
+        resultmm->DisplayUnstructGrid();
+        resultmm->sliceW_->AddPage();
+        resultmm->sliceW_->get_map_SliceDisplayWidget().value(tmp_index)->SetPosition(resultmm->GetUnslicePosition(tmp_index));
+        resultmm->sliceW_->get_map_SliceDisplayWidget().value(tmp_index)->SetPositionRange(resultmm->GetUnsliceSourceBounds(tmp_index));
+        emit sendImg_handlePoolToSendstate(object_->ToJson("addPage_slice",buildResultImport_msg("addpage_slice",resultmm,object_)));//发送切片结果数据
+    }else if(type == "update"){
+        resultmm->UpdataSliceWidgetParameter();
+        resultmm->sliceW_->UpdateWidget();
+        emit sendImg_handlePoolToSendstate(object_->ToJson("update_slice",buildResultImport_msg("update_slice",resultmm,object_)));//发送切片结果数据
+    }else if(type == "clear"){
+        //resultmm->UpdataSliceWidgetParameter();//先刷新再删除会有问题?
+        //resultmm->sliceW_->UpdateWidget();
+        resultmm->sliceW_->remove_map_SliceDisplayWidget(object_->sd_struct->index);
+    }else if(type == "apply"){
+        slicedis->slicewidget_execute(object_);
+        send_picture(object_,render_);
+    }
+    return true;
+}
+
 /*
 /*
  * @brief: save the tecplot filename into QStringList
  * @brief: save the tecplot filename into QStringList
  * @param: filePath
  * @param: filePath
@@ -519,13 +590,58 @@ QMap<QString,string> handlePool::buildResultImport_msg(QString type,ResultMeshMa
     return map_tmp;
     return map_tmp;
 }
 }
 
 
+/*
+ * @brief: build result file mash which need to be sent to java
+ * @param: resultmeshManager
+ * @ret: msg(QString)
+ * @birth: created by czm in 20230506
+ */
+QMap<QString, string> handlePool::buildResultImport_msg(QString type, ResultMeshManager *cmanager, boostJsonObject *object)
+{
+    QMap<QString,string> map_tmp;
+    if(type == "addpage_slice"){
+        int tmp_index = object->sd_struct->index;
+        SliceDisplayWidget* sdwidget = cmanager->sliceW_->get_map_SliceDisplayWidget().value(tmp_index);
+        string msg;
+        map_tmp.insert("position_x",to_string(sdwidget->GetPosition()[0]));
+        map_tmp.insert("position_y",to_string(sdwidget->GetPosition()[1]));
+        map_tmp.insert("position_z",to_string(sdwidget->GetPosition()[2]));
+        map_tmp.insert("min_position_x",to_string(sdwidget->GetPositionRange()[0]));
+        map_tmp.insert("max_position_x",to_string(sdwidget->GetPositionRange()[1]));
+        map_tmp.insert("min_position_y",to_string(sdwidget->GetPositionRange()[2]));
+        map_tmp.insert("max_position_y",to_string(sdwidget->GetPositionRange()[3]));
+        map_tmp.insert("min_position_z",to_string(sdwidget->GetPositionRange()[4]));
+        map_tmp.insert("max_position_z",to_string(sdwidget->GetPositionRange()[5]));
+        for(int i =0; i<sdwidget->GetVariableName_vector().size();i++){
+            msg+=sdwidget->GetVariableName_vector()[i];
+            msg+=",";
+        }
+        msg = msg.erase(msg.size()-1);
+        map_tmp.insert("variableName",msg);
+        msg.clear();
+        map_tmp.insert("arearange",sdwidget->getAreaRange().toStdString());
+    }else if((type == "update_slice")|| (type == "clear_slice")){
+        QMap<int,SliceDisplayWidget*> sdw_map = cmanager->sliceW_->get_map_SliceDisplayWidget();
+        for(auto iter = sdw_map.begin();iter!=sdw_map.end();iter++){
+            map_tmp.insert("index",to_string(iter.key()));
+            map_tmp.insert("normal_x",to_string(iter.value()->GetNormal()[0]));
+            map_tmp.insert("normal_y",to_string(iter.value()->GetNormal()[1]));
+            map_tmp.insert("normal_z",to_string(iter.value()->GetNormal()[2]));
+            map_tmp.insert("position_x",to_string(iter.value()->GetPosition()[0]));
+            map_tmp.insert("position_y",to_string(iter.value()->GetPosition()[0]));
+            map_tmp.insert("position_z",to_string(iter.value()->GetPosition()[0]));
+        }
+    }
+    return map_tmp;
+}
+
 /*
 /*
  * @brief: send picture
  * @brief: send picture
- * @param: vtkJsonObject QVTKRenderer
+ * @param: boostJsonObject QVTKRenderer
  * @ret: void
  * @ret: void
  * @birth: created by czm in 20230425
  * @birth: created by czm in 20230425
  */
  */
-void handlePool::send_picture(vtkJsonObject *object, QVTKRenderer *render_)
+void handlePool::send_picture(boostJsonObject *object, QVTKRenderer *render_)
 {
 {
     render_->CaptureWindowImages();
     render_->CaptureWindowImages();
     if(!render_->img.isEmpty()){
     if(!render_->img.isEmpty()){
@@ -561,7 +677,7 @@ string handlePool::removeSpaces(string str)//删除字符串中的\u0000
  * @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<string, QVTKRenderer *> handlePool::getMapRender()
 {
 {
     return this->qmapRender;
     return this->qmapRender;
 }
 }
@@ -572,37 +688,37 @@ 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, pid_resultManager *> handlePool::getMapResultManager()
+QMap<string, pid_resultManager *> handlePool::getMapResultManager()
 {
 {
     return this->qmapResultmanager;
     return this->qmapResultmanager;
 }
 }
 
 
 /*
 /*
  * @brief: create a pid_meshManager
  * @brief: create a pid_meshManager
- * @param: vtkJsonObject MeshManager
+ * @param: boostJsonObject MeshManager
  * @ret: map_meshManager
  * @ret: map_meshManager
  * @birth: created by czm in 20230425
  * @birth: created by czm in 20230425
  */
  */
-pid_meshManager *handlePool::set_map_meshManager(vtkJsonObject *object, MeshManager *mmanager_)
+pid_meshManager *handlePool::set_map_meshManager(boostJsonObject *object, MeshManager *mmanager_)
 {
 {
     pid_meshManager* meshManager_p = new pid_meshManager();
     pid_meshManager* meshManager_p = new pid_meshManager();
     meshManager_p->meshManager_ = mmanager_;
     meshManager_p->meshManager_ = mmanager_;
-    meshManager_p->fileName = object->getFileName();
+    meshManager_p->fileName = object->fileName;
     meshManager_p->filePath = object->filePath;
     meshManager_p->filePath = object->filePath;
     return meshManager_p;
     return meshManager_p;
 }
 }
 
 
 /*
 /*
  * @brief: create a pid_resultManager
  * @brief: create a pid_resultManager
- * @param: vtkJsonObject ResultMeshManager
+ * @param: boostJsonObject ResultMeshManager
  * @ret: pid_resultManager
  * @ret: pid_resultManager
  * @birth: created by czm in 20230425
  * @birth: created by czm in 20230425
  */
  */
-pid_resultManager *handlePool::set_map_resultManager(vtkJsonObject *object, ResultMeshManager *rmanager_)
+pid_resultManager *handlePool::set_map_resultManager(boostJsonObject *object, ResultMeshManager *rmanager_)
 {
 {
     pid_resultManager *resultManager_p = new pid_resultManager();
     pid_resultManager *resultManager_p = new pid_resultManager();
     resultManager_p->resultMeshManager_ = rmanager_;
     resultManager_p->resultMeshManager_ = rmanager_;
-    resultManager_p->fileName = object->getFileName();
+    resultManager_p->fileName = object->fileName;
     resultManager_p->filePath = object->filePath;
     resultManager_p->filePath = object->filePath;
     return resultManager_p;
     return resultManager_p;
 }
 }
@@ -613,8 +729,25 @@ pid_resultManager *handlePool::set_map_resultManager(vtkJsonObject *object, Resu
  * @ret: QMap<QString, MeshManager *>
  * @ret: QMap<QString, MeshManager *>
  * @birth: created by czm in 20230420
  * @birth: created by czm in 20230420
  */
  */
-QMap<QString, pid_meshManager *> handlePool::getMapManager()
+QMap<string, pid_meshManager *> handlePool::getMapManager()
 {
 {
     return this->qmapManager;
     return this->qmapManager;
 }
 }
 
 
+/*
+ * @brief: string split
+ * @param: str
+ * @ret: vector
+ * @birth: created by czm in 20230509
+ */
+vector<string> handlePool::stringSplit(const string& str, char delim) {
+    stringstream ss(str);
+    string item;
+    vector<string> elems;
+    while (getline(ss, item, delim)) {
+        if (!item.empty()) {
+            elems.push_back(item);
+        }
+    }
+    return elems;
+}

+ 30 - 23
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.h

@@ -6,6 +6,7 @@
 #include <QTabWidget>
 #include <QTabWidget>
 #include <QDir>
 #include <QDir>
 #include <iostream>
 #include <iostream>
+#include <sstream>
 #include <QStringList>
 #include <QStringList>
 #include <QString>
 #include <QString>
 #include "../../VTK/QVTKRenderer/qvtkrenderer.h"
 #include "../../VTK/QVTKRenderer/qvtkrenderer.h"
@@ -13,6 +14,9 @@
 #include "../../VTK/Manager/ResultMeshManager.h"
 #include "../../VTK/Manager/ResultMeshManager.h"
 #include "../../VTK/display/contourdisplay.h"
 #include "../../VTK/display/contourdisplay.h"
 #include "../../VTK/display/linedisplay.h"
 #include "../../VTK/display/linedisplay.h"
+#include "../../VTK/display/vectordisplay.h"
+#include "../../VTK/display/solidsurfacewidget.h"
+#include "../../VTK/display/slicewidget.h"
 #include "../../VTK/visualization_VTK/vtkVISUnContour.h"
 #include "../../VTK/visualization_VTK/vtkVISUnContour.h"
 #include "../../VTK/widget/contourdispalyWidget.h"
 #include "../../VTK/widget/contourdispalyWidget.h"
 #include "../../VTK/widget/linedisplayWidget.h"
 #include "../../VTK/widget/linedisplayWidget.h"
@@ -20,13 +24,12 @@
 #include "../../VTK/widget/solidsurfaceDisplaywidget.h"
 #include "../../VTK/widget/solidsurfaceDisplaywidget.h"
 #include "../../VTK/widget/streamDisplaywidget.h"
 #include "../../VTK/widget/streamDisplaywidget.h"
 #include "../../VTK/widget/vectorDisplaywidget.h"
 #include "../../VTK/widget/vectorDisplaywidget.h"
-#include "../../VTK/display/vectordisplay.h"
-#include "../../VTK/display/solidsurfacewidget.h"
+#include "../../VTK/widget/Sslicewidget.h"
 #include <map>
 #include <map>
 #include <QMap>
 #include <QMap>
 #include <string>
 #include <string>
 #include <QDebug>
 #include <QDebug>
-#include "vtkjsonobject.h"
+#include "boostjsonobject.h"
 #include "map_manager.h"
 #include "map_manager.h"
 using namespace std;
 using namespace std;
 
 
@@ -38,33 +41,37 @@ public:
     handlePool(QTabWidget* w);
     handlePool(QTabWidget* w);
     ~handlePool();
     ~handlePool();
 
 
-    void operateRender(vtkJsonObject*,QVTKRenderer*);
-    void judgeLoaddata(vtkJsonObject*,QVTKRenderer*);
-    bool resultImport(vtkJsonObject*,QVTKRenderer*);
-    bool result_contourdisplay(vtkJsonObject*, QVTKRenderer *);
-    bool result_linedisplay(vtkJsonObject*, QVTKRenderer *);
-    bool result_vectordisplay(vtkJsonObject*, QVTKRenderer *);
-    bool result_solidsurfacedisplay(vtkJsonObject*, QVTKRenderer *);
+    void operateRender(boostJsonObject*,QVTKRenderer*);
+    void judgeLoaddata(boostJsonObject*,QVTKRenderer*);
+    bool resultImport(boostJsonObject*,QVTKRenderer*);
+    bool result_contourdisplay(boostJsonObject*, QVTKRenderer *);
+    bool result_linedisplay(boostJsonObject*, QVTKRenderer *);
+    bool result_vectordisplay(boostJsonObject*, QVTKRenderer *);
+    bool result_solidsurfacedisplay(boostJsonObject*, QVTKRenderer *);
+    bool result_slicedisplay(boostJsonObject*, QVTKRenderer *,QString);
     //QStringList getFileNameList(QString);
     //QStringList getFileNameList(QString);
     QMap<QString,string> buildResultImport_msg(QString,ResultMeshManager*);
     QMap<QString,string> buildResultImport_msg(QString,ResultMeshManager*);
-    void send_picture(vtkJsonObject*,QVTKRenderer*);
+    QMap<QString,string> buildResultImport_msg(QString,ResultMeshManager*,boostJsonObject*);
+    void send_picture(boostJsonObject*,QVTKRenderer*);
     string removeSpaces(string);
     string removeSpaces(string);
+    vector<string> stringSplit(const string& str, char delim);
 
 
-    QMap<QString,QVTKRenderer*> getMapRender();
-    QMap<QString,pid_meshManager*> getMapManager();
-    QMap<QString,pid_resultManager*> getMapResultManager();
-    pid_meshManager* set_map_meshManager(vtkJsonObject*,MeshManager*);
-    pid_resultManager* set_map_resultManager(vtkJsonObject*,ResultMeshManager*);
+    QMap<string,QVTKRenderer*> getMapRender();
+    QMap<string,pid_meshManager*> getMapManager();
+    QMap<string,pid_resultManager*> getMapResultManager();
+    pid_meshManager* set_map_meshManager(boostJsonObject*,MeshManager*);
+    pid_resultManager* set_map_resultManager(boostJsonObject*,ResultMeshManager*);
 
 
 
 
 private:
 private:
-    QMap<QString,QVTKRenderer*> qmapRender;
-    QMap<QString,pid_meshManager*> qmapManager;
-    QMap<QString,pid_resultManager*> qmapResultmanager;
-    QMap<QString,ContourDisplay*> map_contourdisplay;
-    QMap<QString,LineDisplay*> map_linedisplay;
-    QMap<QString,Vectordisplay*> map_vectordisplay;
-    QMap<QString,SolidSurface*> map_solidsdisplay;
+    QMap<string,QVTKRenderer*> qmapRender;
+    QMap<string,pid_meshManager*> qmapManager;
+    QMap<string,pid_resultManager*> qmapResultmanager;
+    QMap<string,ContourDisplay*> map_contourdisplay;
+    QMap<string,LineDisplay*> map_linedisplay;
+    QMap<string,Vectordisplay*> map_vectordisplay;
+    QMap<string,SolidSurface*> map_solidsdisplay;
+    QMap<string,SliceWidget*> map_slicedisplay;
     QTabWidget* w;
     QTabWidget* w;
     bool contour_sendrange_flag;
     bool contour_sendrange_flag;
     bool line_sendrange_flag;
     bool line_sendrange_flag;

+ 2 - 2
CAE_Solution/src/threadPool_and_statemachine/dealWith/map_manager.h

@@ -17,8 +17,8 @@ public:
     }
     }
 
 
 public:
 public:
-    QString filePath;
-    QString fileName;
+    string filePath;
+    string fileName;
 };
 };
 
 
 class pid_meshManager :public pid_manager
 class pid_meshManager :public pid_manager