Salome HOME
22806: EDF SMESH: Regression: Prism_3D error
[modules/smesh.git] / src / StdMeshers / StdMeshers_Prism_3D.hxx
index 6c7c52fe1bf2c7f2589f4aa4cbc25669f39f750d..546bf4950b92281680bbc424827bcb9da51339ba 100644 (file)
@@ -412,7 +412,8 @@ struct StdMeshers_Sweeper
   std::vector< TNodeColumn* > myIntColumns; // internal nodes
 
   bool ComputeNodes( SMESH_MesherHelper& helper,
   std::vector< TNodeColumn* > myIntColumns; // internal nodes
 
   bool ComputeNodes( SMESH_MesherHelper& helper,
-                     const double        tol );
+                     const double        tol,
+                     const bool          allowHighBndError );
 
 private:
 
 
 private:
 
@@ -482,7 +483,9 @@ public:
    * \brief Analyse shape geometry and mesh.
     * If there are triangles on one of faces, it becomes 'bottom'
    */
    * \brief Analyse shape geometry and mesh.
     * If there are triangles on one of faces, it becomes 'bottom'
    */
-  bool initPrism(Prism_3D::TPrismTopo& thePrism, const TopoDS_Shape& theSolid);
+  bool initPrism(Prism_3D::TPrismTopo& thePrism,
+                 const TopoDS_Shape&   theSolid,
+                 const bool            selectBottom = true);
 
   /*!
    * \brief Fill thePrism.myWallQuads and thePrism.myTopEdges
 
   /*!
    * \brief Fill thePrism.myWallQuads and thePrism.myTopEdges
@@ -527,6 +530,11 @@ public:
    */
   double getSweepTolerance( const Prism_3D::TPrismTopo& thePrism );
 
    */
   double getSweepTolerance( const Prism_3D::TPrismTopo& thePrism );
 
+  /*!
+   * \brief Defines if it's safe to use the block approach
+   */
+  bool isSimpleBottom( const Prism_3D::TPrismTopo& thePrism );
+
   /*!
    * \brief Project mesh faces from a source FACE of one prism to
    *        a source FACE of another prism
   /*!
    * \brief Project mesh faces from a source FACE of one prism to
    *        a source FACE of another prism
@@ -556,6 +564,7 @@ private:
 
   bool myProjectTriangles;
   bool mySetErrorToSM;
 
   bool myProjectTriangles;
   bool mySetErrorToSM;
+  bool myUseBlock;
 
   StdMeshers_PrismAsBlock myBlock;
   SMESH_MesherHelper*     myHelper;
 
   StdMeshers_PrismAsBlock myBlock;
   SMESH_MesherHelper*     myHelper;