Salome HOME
Update copyrights
[plugins/ghs3dplugin.git] / src / GHS3DPlugin / GHS3DPlugin_GHS3D.hxx
index 11cbdf7a9795149d1291754f5a30f8cd76666aa1..30ce9fbbd09d5b51a6beae29ed9b329c4932af57 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2004-2014  CEA/DEN, EDF R&D
+// Copyright (C) 2004-2019  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #ifndef _GHS3DPlugin_GHS3D_HXX_
 #define _GHS3DPlugin_GHS3D_HXX_
 
-#include "SMESH_Algo.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Gen_i.hxx"
+#include <SMESH_Algo.hxx>
+#include <SMESH_Gen.hxx>
+#include <SMESH_Gen_i.hxx>
+#include <SMESH_ProxyMesh.hxx>
 
 #include <map>
 #include <vector>
 
-extern "C"
-{
-  #include "libmesh5.h"
-}
-
 #ifndef GMFVERSION
 #define GMFVERSION GmfDouble
 #endif
@@ -54,7 +50,8 @@ class TopoDS_Shape;
 class GHS3DPlugin_GHS3D: public SMESH_3D_Algo
 {
 public:
-  GHS3DPlugin_GHS3D(int hypId, int studyId, SMESH_Gen* gen);
+
+  GHS3DPlugin_GHS3D(int hypId, SMESH_Gen* gen);
   virtual ~GHS3DPlugin_GHS3D();
 
   virtual bool CheckHypothesis(SMESH_Mesh&         aMesh,
@@ -65,7 +62,7 @@ public:
                        const TopoDS_Shape& aShape);
 
   virtual void CancelCompute();
-  bool         computeCanceled() { return _compute_canceled;};
+  bool         computeCanceled() { return _computeCanceled; }
 
   virtual bool Evaluate(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape,
                         MapShapeNbElems& aResMap);
@@ -79,44 +76,53 @@ public:
 
   bool         importGMFMesh(const char* aGMFFileName, SMESH_Mesh& aMesh);
 
-  static const char* Name() { return "GHS3D_3D"; }
+  virtual double GetProgress() const;
+
+
+  static const char* Name() { return "MG-Tetra"; }
+
+  static SMESH_ComputeErrorPtr getErrorDescription(const char*                logFile,
+                                                   const std::string&         log,
+                                                   const _Ghs2smdsConvertor & toSmdsConvertor,
+                                                   const bool                 isOK = false);
 
 protected:
   const GHS3DPlugin_Hypothesis*   _hyp;
   const StdMeshers_ViscousLayers* _viscousLayersHyp;
   std::string                     _genericName;
-   
+
 private:
 
-  bool         storeErrorDescription(const TCollection_AsciiString& logFile,
-                                     const _Ghs2smdsConvertor &     toSmdsConvertor );
   TopoDS_Shape entryToShape(std::string entry);
-  
-  int  _iShape;
-  int  _nbShape;
-  bool _keepFiles;
-  bool _removeLogOnSuccess;
-  bool _logInStandardOutput;
-  SALOMEDS::Study_var myStudy;
-  SMESH_Gen_i* smeshGen_i;
-
-  volatile bool _compute_canceled;
+
+  int                 _iShape;
+  int                 _nbShape;
+  bool                _keepFiles;
+  bool                _removeLogOnSuccess;
+  bool                _logInStandardOutput;
+
+  bool                _isLibUsed;
+  double              _progressAdvance;
 };
 
 /*!
- * \brief Convertor of GHS3D elements to SMDS ones
+ * \brief Convertor of MG-Tetra elements to SMDS ones
  */
 class _Ghs2smdsConvertor
 {
   const std::map <int,const SMDS_MeshNode*> * _ghs2NodeMap;
   const std::vector <const SMDS_MeshNode*> *  _nodeByGhsId;
+  SMESH_ProxyMesh::Ptr                        _mesh;
 
 public:
-  _Ghs2smdsConvertor( const std::map <int,const SMDS_MeshNode*> & ghs2NodeMap);
+  _Ghs2smdsConvertor( const std::map <int,const SMDS_MeshNode*> & ghs2NodeMap,
+                      SMESH_ProxyMesh::Ptr                        mesh);
 
-  _Ghs2smdsConvertor( const std::vector <const SMDS_MeshNode*> &  nodeByGhsId);
+  _Ghs2smdsConvertor( const std::vector <const SMDS_MeshNode*> &  nodeByGhsId,
+                      SMESH_ProxyMesh::Ptr                        mesh);
 
   const SMDS_MeshElement* getElement(const std::vector<int>& ghsNodes) const;
+  const SMDS_Mesh*        getMesh() const;
 };
 
 #endif