From: eap Date: Thu, 16 May 2013 16:22:25 +0000 (+0000) Subject: 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh X-Git-Tag: V7_3_0a1~474 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=36f9a5cb345cff43fb9a863784ef7d80375d8399;p=modules%2Fsmesh.git 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh Move SMESH_ElementSearcher to from SMESH/SMESH_MeshEditor.hxx SMESHUtils/SMESH_MeshAlgos.hxx in order to make SMESH_ElementSearcher accessible from Controls/SMESH_Controls.cxx - static bool FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool normalized=true); - static std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1, - const SMDS_MeshElement* e2); --- diff --git a/src/SMESH/SMESH_Algo.cxx b/src/SMESH/SMESH_Algo.cxx index 17d4f91de..38e00d29f 100644 --- a/src/SMESH/SMESH_Algo.cxx +++ b/src/SMESH/SMESH_Algo.cxx @@ -314,45 +314,6 @@ double SMESH_Algo::EdgeLength(const TopoDS_Edge & E) return length; } -//================================================================================ -/*! - * \brief Calculate normal of a mesh face - */ -//================================================================================ - -bool SMESH_Algo::FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool normalized) -{ - if ( !F || F->GetType() != SMDSAbs_Face ) - return false; - - normal.SetCoord(0,0,0); - int nbNodes = F->IsQuadratic() ? F->NbNodes()/2 : F->NbNodes(); - for ( int i = 0; i < nbNodes-2; ++i ) - { - gp_XYZ p[3]; - for ( int n = 0; n < 3; ++n ) - { - const SMDS_MeshNode* node = F->GetNode( i + n ); - p[n].SetCoord( node->X(), node->Y(), node->Z() ); - } - normal += ( p[2] - p[1] ) ^ ( p[0] - p[1] ); - } - double size2 = normal.SquareModulus(); - bool ok = ( size2 > numeric_limits::min() * numeric_limits::min()); - if ( normalized && ok ) - normal /= sqrt( size2 ); - - return ok; -} - -/* - * Moved to SMESH_MesherHelper - */ -// bool SMESH_Algo::IsReversedSubMesh (const TopoDS_Face& theFace, -// SMESHDS_Mesh* theMeshDS) -// { -// } - //================================================================================ /*! * \brief Just return false as the algorithm does not hold parameters values @@ -583,21 +544,6 @@ const SMDS_MeshNode* SMESH_Algo::VertexNode(const TopoDS_Vertex& V, return 0; } -//======================================================================= -//function : GetCommonNodes -//purpose : Return nodes common to two elements -//======================================================================= - -vector< const SMDS_MeshNode*> SMESH_Algo::GetCommonNodes(const SMDS_MeshElement* e1, - const SMDS_MeshElement* e2) -{ - vector< const SMDS_MeshNode*> common; - for ( int i = 0 ; i < e1->NbNodes(); ++i ) - if ( e2->GetNodeIndex( e1->GetNode( i )) >= 0 ) - common.push_back( e1->GetNode( i )); - return common; -} - //======================================================================= //function : GetMeshError //purpose : Finds topological errors of a sub-mesh diff --git a/src/SMESH/SMESH_Algo.hxx b/src/SMESH/SMESH_Algo.hxx index 3f8f2c839..a9872d812 100644 --- a/src/SMESH/SMESH_Algo.hxx +++ b/src/SMESH/SMESH_Algo.hxx @@ -325,11 +325,6 @@ public: */ static double EdgeLength(const TopoDS_Edge & E); - /*! - * \brief Calculate normal of a mesh face - */ - static bool FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool normalized=true); - //static int NumberOfWires(const TopoDS_Shape& S); int NumberOfPoints(SMESH_Mesh& aMesh,const TopoDS_Wire& W); @@ -356,12 +351,6 @@ public: */ static const SMDS_MeshNode* VertexNode(const TopoDS_Vertex& V, const SMESHDS_Mesh* meshDS); - /*! - * \brief Return nodes common to two elements - */ - static std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1, - const SMDS_MeshElement* e2); - enum EMeshError { MEr_OK = 0, MEr_HOLES, MEr_BAD_ORI, MEr_EMPTY }; /*!