浏览代码

1120 新增点边面几何渲染

caizm 1 年之前
父节点
当前提交
320a2a99b8

+ 25 - 3
CAE_Solution/src/component/manager/geometrymanager.cpp

@@ -5,6 +5,7 @@
 #include "../../acis/geometryimexporter.h"
 //#include "../Visualization/VisGeometry.h"
 #include "../VisGeometry/VisGeometry_VTK.h"
+#include "../../threadPool_and_statemachine/dealWith/boostjsonobject.h"
 #include "geometrymanager.h"
 
 
@@ -26,6 +27,9 @@ GeometryManager::GeometryManager()
     hasEdgesVtkVis_ = false;
     hasVerticesVtkVis_ = false;
     this->giExporter = new GeometryImExporter();
+    edge_visible = false;
+    face_visible = false;
+    vertice_visible = false;
 }
 
 /**
@@ -81,6 +85,9 @@ void GeometryManager::clear()
     qvtkRenderer_ = 0;
 
     customMeshParamMgr_.Clear();
+    edge_visible = false;
+    face_visible = false;
+    vertice_visible = false;
 }
 
 /**
@@ -125,9 +132,9 @@ void GeometryManager::DisplayGeometry(QVTKRenderer *qvtkRenderer)
     if (qvtkRenderer == 0)  return;
     qvtkRenderer_ = qvtkRenderer;
     vtkVisGeoEnts_ = new VtkVisGeometry(qvtkRenderer);
-    setEdgesVisible_VTK(true);
-    //setVerticesVisible_VTK(true);
-    //setFacesVisible_VTK(true);
+    setEdgesVisible_VTK(edge_visible);
+    setVerticesVisible_VTK(vertice_visible);
+    setFacesVisible_VTK(face_visible);
     //setBodiesVisible_VTK(true);
 }
 
@@ -718,3 +725,18 @@ bool GeometryManager::SaveGeometryFile(const QString &geofile)
     return true;
 }
 
+/*
+ * @brief: set geometry edge/vertice/face visible
+ * @param: boost object
+ * @ret: void
+ * @birth: created by czm in 20231120
+ */
+void GeometryManager::SetGeometryVisible(boostJsonObject *object)
+{
+    if(object){
+        this->edge_visible = object->rg_struct->edge_visible;
+        this->face_visible = object->rg_struct->face_visible;
+        this->vertice_visible = object->rg_struct->vertice_visible;
+    }
+}
+

+ 5 - 1
CAE_Solution/src/component/manager/geometrymanager.h

@@ -19,7 +19,7 @@ class VisGeometry;
 class QVTKRenderer;
 class VtkVisGeometry;
 class GeometryImExporter;
-
+class boostJsonObject;
 
 class GeometryManager
 {
@@ -60,6 +60,8 @@ public:
     QString GetEdgesMeshParams();
     //save data
     bool SaveGeometryFile(const QString &geofile);
+
+    void SetGeometryVisible(boostJsonObject*);
 private:
     void clear();
     //vtk render funcs
@@ -93,6 +95,8 @@ private:
     //geometry ent's mesh params
     CustomMeshParamsManager  customMeshParamMgr_;
     GeometryImExporter *giExporter;
+
+    bool edge_visible,face_visible,vertice_visible;
 };
 
 

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

@@ -565,6 +565,9 @@ void boostJsonObject::FromParamJson(string param)
     }else if(this->action == "geometryFileShow"){
         rg_struct = new render_geo_struct();
         rg_struct->filename = root.get<std::string>("geometryFile");
+        rg_struct->edge_visible = root.get<bool>("curvesFlag");
+        rg_struct->face_visible = root.get<bool>("surFacesFlag");
+        rg_struct->vertice_visible = root.get<bool>("pointsFlag");
     }
 }
 

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

@@ -244,6 +244,9 @@ public:
     render_geo_struct(){}
     ~render_geo_struct(){}
     string filename;
+    bool edge_visible;
+    bool face_visible;
+    bool vertice_visible;
 };
 
 #endif // DISPLAY_STRUCT_H

+ 1 - 0
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp

@@ -836,6 +836,7 @@ bool handlePool::result_displayIgs(boostJsonObject *object_, QVTKRenderer *rende
     }
     GeometryManager *gm = new GeometryManager();
     bool f = gm->LoadData(QString::fromStdString(object_->rg_struct->filename));
+    gm->SetGeometryVisible(object_);
     if(f){
         gm->DisplayGeometry(render_);
         render_->ZoomToExtents();