X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_MesherHelper.hxx;h=5b2997a251540c254182c4a322b1fb5a920c14aa;hp=ae6767d309af00cb2ae5e8752a2164660f63b944;hb=38a77c4a9810f4715212368ac53315689ba9150f;hpb=17d0c28bc8421608e7ededd4db97a0e0486dcf73 diff --git a/src/SMESH/SMESH_MesherHelper.hxx b/src/SMESH/SMESH_MesherHelper.hxx index ae6767d30..5b2997a25 100644 --- a/src/SMESH/SMESH_MesherHelper.hxx +++ b/src/SMESH/SMESH_MesherHelper.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -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 @@ -594,10 +594,14 @@ public: * \param force3d - true means node creation at the middle between the * two given nodes, else node position is found on its * supporting geometrical shape, if any. + * \param expectedSupport - shape type corresponding to element being created + * , e.g TopAbs_EDGE if SMDSAbs_Edge is created + * basing on \a n1 and \a n2 */ const SMDS_MeshNode* GetMediumNode(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2, - const bool force3d); + const bool force3d, + TopAbs_ShapeEnum expectedSupport=TopAbs_SHAPE); /*! * \brief Return existing or create a new central node for a quardilateral * quadratic face given its 8 nodes. @@ -631,7 +635,8 @@ public: */ std::pair GetMediumPos(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2, - const bool useCurSubShape=false); + const bool useCurSubShape=false, + TopAbs_ShapeEnum expectedSupport=TopAbs_SHAPE); /*! * \brief Add a link in my data structure */ @@ -671,11 +676,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 @@ -710,9 +718,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;