mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 07:00:33 +05:00
1) 0022100: EDF 2413 SMESH: Take into account TRIA7
2) 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 -struct SMESH_NodeSearcher -{ -struct SMESH_ElementSearcher -{ - SMESH_NodeSearcher* GetNodeSearcher(); - SMESH_ElementSearcher* GetElementSearcher(); - SMESH_ElementSearcher* GetElementSearcher( SMDS_ElemIteratorPtr elemIt ); - static bool IsOut( const SMDS_MeshElement* element, const gp_Pnt& point, double tol ); - static double GetDistance( const SMDS_MeshFace* face, const gp_Pnt& point ); - static const SMDS_MeshElement* FindFaceInSet(const SMDS_MeshNode* n1,
This commit is contained in:
parent
68683b462f
commit
664ae5e033
File diff suppressed because it is too large
Load Diff
@ -51,53 +51,7 @@ class gp_Ax1;
|
||||
class gp_Vec;
|
||||
class gp_Pnt;
|
||||
class SMESH_MesherHelper;
|
||||
|
||||
|
||||
//=======================================================================
|
||||
/*!
|
||||
* \brief Searcher for the node closest to point
|
||||
*/
|
||||
//=======================================================================
|
||||
struct SMESH_NodeSearcher
|
||||
{
|
||||
virtual const SMDS_MeshNode* FindClosestTo( const gp_Pnt& pnt ) = 0;
|
||||
virtual void MoveNode( const SMDS_MeshNode* node, const gp_Pnt& toPnt ) = 0;
|
||||
};
|
||||
|
||||
//=======================================================================
|
||||
/*!
|
||||
* \brief Searcher for elements
|
||||
*/
|
||||
//=======================================================================
|
||||
|
||||
struct SMESH_ElementSearcher
|
||||
{
|
||||
/*!
|
||||
* \brief Find elements of given type where the given point is IN or ON.
|
||||
* Returns nb of found elements and elements them-selves.
|
||||
*
|
||||
* 'ALL' type means elements of any type excluding nodes and 0D elements
|
||||
*/
|
||||
virtual int FindElementsByPoint(const gp_Pnt& point,
|
||||
SMDSAbs_ElementType type,
|
||||
std::vector< const SMDS_MeshElement* >& foundElems)=0;
|
||||
/*!
|
||||
* \brief Return an element most close to the given point
|
||||
*/
|
||||
virtual const SMDS_MeshElement* FindClosestTo( const gp_Pnt& point,
|
||||
SMDSAbs_ElementType type) = 0;
|
||||
/*!
|
||||
* \brief Return elements possibly intersecting the line
|
||||
*/
|
||||
virtual void GetElementsNearLine( const gp_Ax1& line,
|
||||
SMDSAbs_ElementType type,
|
||||
std::vector< const SMDS_MeshElement* >& foundElems)=0;
|
||||
/*!
|
||||
* \brief Find out if the given point is out of closed 2D mesh.
|
||||
*/
|
||||
virtual TopAbs_State GetPointState(const gp_Pnt& point) = 0;
|
||||
|
||||
};
|
||||
class SMESH_NodeSearcher;
|
||||
|
||||
// ============================================================
|
||||
/*!
|
||||
@ -356,17 +310,6 @@ public:
|
||||
SMESH_Mesh* theTargetMesh=0);
|
||||
// Move or copy theElements applying theTrsf to their nodes
|
||||
|
||||
/*!
|
||||
* \brief Return SMESH_NodeSearcher. The caller is responsible for deleteing it
|
||||
*/
|
||||
SMESH_NodeSearcher* GetNodeSearcher();
|
||||
|
||||
/*!
|
||||
* \brief Return SMESH_ElementSearcher. The caller is responsible for deleting it
|
||||
*/
|
||||
SMESH_ElementSearcher* GetElementSearcher();
|
||||
SMESH_ElementSearcher* GetElementSearcher( SMDS_ElemIteratorPtr elemIt );
|
||||
|
||||
typedef std::list< std::list< const SMDS_MeshNode* > > TListOfListOfNodes;
|
||||
|
||||
void FindCoincidentNodes (TIDSortedNodeSet & theNodes,
|
||||
@ -393,16 +336,9 @@ public:
|
||||
// Remove all but one of elements built on the same nodes.
|
||||
// Return nb of successfully merged groups.
|
||||
|
||||
/*!
|
||||
* \brief Return true if the point is IN or ON of the element
|
||||
*/
|
||||
static bool IsOut( const SMDS_MeshElement* element, const gp_Pnt& point, double tol );
|
||||
|
||||
static double GetDistance( const SMDS_MeshFace* face, const gp_Pnt& point );
|
||||
|
||||
int SimplifyFace (const std::vector<const SMDS_MeshNode *> faceNodes,
|
||||
std::vector<const SMDS_MeshNode *>& poly_nodes,
|
||||
std::vector<int>& quantities) const;
|
||||
int SimplifyFace (const std::vector<const SMDS_MeshNode *>& faceNodes,
|
||||
std::vector<const SMDS_MeshNode *>& poly_nodes,
|
||||
std::vector<int>& quantities) const;
|
||||
// Split face, defined by <faceNodes>, into several faces by repeating nodes.
|
||||
// Is used by MergeNodes()
|
||||
|
||||
@ -533,17 +469,6 @@ public:
|
||||
TIDSortedElemSet & linkedNodes,
|
||||
SMDSAbs_ElementType type = SMDSAbs_All );
|
||||
|
||||
static const SMDS_MeshElement* FindFaceInSet(const SMDS_MeshNode* n1,
|
||||
const SMDS_MeshNode* n2,
|
||||
const TIDSortedElemSet& elemSet,
|
||||
const TIDSortedElemSet& avoidSet,
|
||||
int* i1=0,
|
||||
int* i2=0);
|
||||
// Return a face having linked nodes n1 and n2 and which is
|
||||
// - not in avoidSet,
|
||||
// - in elemSet provided that !elemSet.empty()
|
||||
// i1 and i2 optionally returns indices of n1 and n2
|
||||
|
||||
/*!
|
||||
* \brief Find corresponding nodes in two sets of faces
|
||||
* \param theSide1 - first face set
|
||||
|
Loading…
Reference in New Issue
Block a user