Salome HOME
22830: EDF 9557 SMESH: Quadratic conversion of a mesh fails
[modules/smesh.git] / src / SMESH / SMESH_MesherHelper.hxx
index 430e6f374c71ee4a384073b07500d1283e6f0bbc..1e74e244ae6660618581cb5db9ce1bbcdeefb60a 100644 (file)
@@ -120,7 +120,7 @@ class SMESH_EXPORT SMESH_MesherHelper
   /*!
    * \brief Return true if 2D mesh on FACE is distored
    */
-  static bool IsDistorted2D( SMESH_subMesh* faceSM );
+  static bool IsDistorted2D( SMESH_subMesh* faceSM, bool checkUV=false );
 
   /*!
    * \brief Returns true if given node is medium
@@ -221,6 +221,8 @@ class SMESH_EXPORT SMESH_MesherHelper
 
   static bool IsSubShape( const TopoDS_Shape& shape, SMESH_Mesh* aMesh );
 
+  static bool IsBlock( const TopoDS_Shape& shape );
+
   static double MaxTolerance( const TopoDS_Shape& shape );
 
   static double GetAngle( const TopoDS_Edge & E1, const TopoDS_Edge & E2,
@@ -669,11 +671,14 @@ public:
    *  \param uv2 - UV within a face
    *  \retval gp_Pnt2d - selected UV
    */
-  gp_Pnt2d GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
+  gp_Pnt2d getUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
 
   const SMDS_MeshNode* getMediumNodeOnComposedWire(const SMDS_MeshNode* n1,
                                                    const SMDS_MeshNode* n2,
                                                    bool                 force3d);
+
+  double getFaceMaxTol( const TopoDS_Shape& face ) const;
+
  private:
 
   // Forbiden copy constructor
@@ -708,9 +713,11 @@ public:
   double          myPar1[2], myPar2[2]; // U and V bounds of a closed periodic surface
   int             myParIndex;     // bounds' index (1-U, 2-V, 3-both)
 
-  typedef std::map< int, GeomAPI_ProjectPointOnSurf* > TID2ProjectorOnSurf;
-  TID2ProjectorOnSurf myFace2Projector;
+  std::map< int, double > myFaceMaxTol;
+
+  typedef std::map< int, GeomAPI_ProjectPointOnSurf* >  TID2ProjectorOnSurf;
   typedef std::map< int, GeomAPI_ProjectPointOnCurve* > TID2ProjectorOnCurve;
+  TID2ProjectorOnSurf  myFace2Projector;
   TID2ProjectorOnCurve myEdge2Projector;
 
   TopoDS_Shape    myShape;