Salome HOME
23372: [CEA 1524] Impossible to use MG-Tetra Parallel to mesh the inside of a skin... V8_2_0a1 V8_2_0b1
authoreap <eap@opencascade.com>
Tue, 25 Oct 2016 11:50:24 +0000 (14:50 +0300)
committereap <eap@opencascade.com>
Tue, 25 Oct 2016 11:50:24 +0000 (14:50 +0300)
resources/GHS3DPRLPlugin.xml
src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.cxx
src/GHS3DPRLPlugin/GHS3DPRLPlugin_GHS3DPRL.hxx

index 9017cef1d6e6957f7ef1a1ea8fe56cb55f973681..292694cde193fd0b93bd961adbcd4bfd08bde2a6 100755 (executable)
@@ -46,6 +46,7 @@
                input    ="TRIA"
                output   ="TETRA"
                need-hyp ="true"
+              need-geom="false"
                dim      ="3">
       <python-wrap>
         <algo>MG-Tetra Parallel=Tetrahedron(algo=smeshBuilder.MG_Tetra_Parallel)</algo>
index 20d122dce29a11081caaea3d92e5e89b974b3085..b012af65f9e1b10f9058ad44bf645bd09feda4e6 100755 (executable)
@@ -30,6 +30,7 @@
 #include <SMESH_Gen.hxx>
 #include <SMESH_TypeDefs.hxx>
 #include <SMESH_subMesh.hxx>
+#include <SMESH_MesherHelper.hxx>
 
 #include "utilities.h"
 
@@ -72,6 +73,7 @@ GHS3DPRLPlugin_GHS3DPRL::GHS3DPRLPlugin_GHS3DPRL(int hypId, int studyId, SMESH_G
   _countSubMesh=0;
   _nodeRefNumber=0;
   _compatibleHypothesis.push_back(GHS3DPRLPlugin_Hypothesis::GetHypType());
+  _requireShape=false;
 }
 
 //=============================================================================
@@ -206,10 +208,22 @@ static void exportGMF(MG_TetraHPC_API*    theTetraInput,
 // Here we are going to use the GHS3DPRL mesher for tetra-hpc (formerly tepal in v3 (2014))
 bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
                                       const TopoDS_Shape& theShape)
+{
+  SMESH_MesherHelper helper( theMesh );
+  bool ok = Compute( theMesh, &helper );
+  return ok;
+}
+
+//=============================================================================
+// Here we are going to use the GHS3DPRL mesher for tetra-hpc (formerly tepal in v3 (2014))
+bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
+                                      SMESH_MesherHelper* theHelper)
 {
   bool Ok=false;
   TCollection_AsciiString pluginerror("ghs3dprl: ");
   SMESHDS_Mesh* meshDS = theMesh.GetMeshDS();
+  if ( theMesh.NbTriangles() == 0 )
+    return error( COMPERR_BAD_INPUT_MESH, "No triangles in the mesh" );
 
   if (_hypothesis==NULL){
     pluginerror += "No existing parameters/hypothesis for GHS3DPRL";
index 5742b5eedd4877e94b81c58aef5977c3320a0a24..080277371ce686b1a111f376bcda97fb1f7a236a 100755 (executable)
@@ -49,6 +49,8 @@ public:
   virtual bool Compute(SMESH_Mesh&         aMesh,
                        const TopoDS_Shape& aShape);
 
+  virtual bool Compute(SMESH_Mesh & aMesh, SMESH_MesherHelper* aHelper);
+
   virtual bool Evaluate(SMESH_Mesh&         aMesh,
                         const TopoDS_Shape& aShape,
                         MapShapeNbElems&    aResMap);