mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 02:10:35 +05:00
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);
This commit is contained in:
parent
c2c0a21343
commit
36f9a5cb34
@ -314,45 +314,6 @@ double SMESH_Algo::EdgeLength(const TopoDS_Edge & E)
|
|||||||
return length;
|
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<double>::min() * numeric_limits<double>::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
|
* \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;
|
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
|
//function : GetMeshError
|
||||||
//purpose : Finds topological errors of a sub-mesh
|
//purpose : Finds topological errors of a sub-mesh
|
||||||
|
@ -325,11 +325,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
static double EdgeLength(const TopoDS_Edge & E);
|
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);
|
//static int NumberOfWires(const TopoDS_Shape& S);
|
||||||
int NumberOfPoints(SMESH_Mesh& aMesh,const TopoDS_Wire& W);
|
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);
|
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 };
|
enum EMeshError { MEr_OK = 0, MEr_HOLES, MEr_BAD_ORI, MEr_EMPTY };
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Loading…
Reference in New Issue
Block a user