Version: 9.16.0
SMESH_MeshAlgos.hxx File Reference
#include "SMESH_Utils.hxx"
#include "SMDSAbs_ElementType.hxx"
#include "SMDS_ElemIterator.hxx"
#include "SMESH_TypeDefs.hxx"
#include <TopAbs_State.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <vector>
Include dependency graph for SMESH_MeshAlgos.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SMESH_NodeSearcher
 Searcher for the node closest to a point. More...
 
struct  SMESH_ElementSearcher
 Searcher for elements. More...
 
struct  SMESH_MeshAlgos::Edge
 
struct  SMESH_MeshAlgos::TFreeBorderPart
 
struct  SMESH_MeshAlgos::CoincidentFreeBorders
 
class  SMESH_MeshAlgos::Intersector
 Cut faces of a triangular mesh. More...
 
class  SMESH_MeshAlgos::Triangulate
 Divide a mesh face into triangles. More...
 
struct  SMESH_MeshAlgos::PolySegment
 

Namespaces

namespace  SMESH_MeshAlgos
 

Typedefs

typedef std::vector< std::vector< const SMDS_MeshElement * > > SMESH_MeshAlgos::TElemGroupVector
 
typedef std::vector< std::vector< const SMDS_MeshNode * > > SMESH_MeshAlgos::TNodeGroupVector
 
typedef std::vector< const SMDS_MeshNode * > SMESH_MeshAlgos::TFreeBorder
 
typedef std::vector< TFreeBorder > SMESH_MeshAlgos::TFreeBorderVec
 
typedef std::vector< TFreeBorderPart > SMESH_MeshAlgos::TCoincidentGroup
 
typedef std::vector< TCoincidentGroup > SMESH_MeshAlgos::TCoincidentGroupVec
 
typedef std::vector< std::pair< const SMDS_MeshElement *, int > > SMESH_MeshAlgos::TElemIntPairVec
 
typedef std::vector< std::pair< const SMDS_MeshNode *, int > > SMESH_MeshAlgos::TNodeIntPairVec
 
typedef std::vector< PolySegment > SMESH_MeshAlgos::TListOfPolySegments
 

Functions

SMESH_NodeSearcherSMESH_MeshAlgos::GetNodeSearcher (SMDS_Mesh &mesh)
 Return SMESH_NodeSearcher. More...
 
SMESH_NodeSearcherSMESH_MeshAlgos::GetNodeSearcher (SMDS_ElemIteratorPtr elemIt)
 Return SMESH_NodeSearcher. More...
 
SMESH_ElementSearcherSMESH_MeshAlgos::GetElementSearcher (SMDS_Mesh &mesh, double tolerance=-1.)
 Return SMESH_ElementSearcher. More...
 
SMESH_ElementSearcherSMESH_MeshAlgos::GetElementSearcher (SMDS_Mesh &mesh, SMDS_ElemIteratorPtr elemIt, double tolerance=-1.)
 Return SMESH_ElementSearcher acting on a sub-set of elements. More...
 
bool SMESH_MeshAlgos::IsOut (const SMDS_MeshElement *element, const gp_Pnt &point, double tol)
 Return true if the point is IN or ON of the element. More...
 
double SMESH_MeshAlgos::GetDistance (const SMDS_MeshElement *elem, const gp_Pnt &point, gp_XYZ *closestPnt=0)
 Return minimal distance from a point to an element. More...
 
double SMESH_MeshAlgos::GetDistance (const SMDS_MeshEdge *edge, const gp_Pnt &point, gp_XYZ *closestPnt=0)
 Return minimal distance from a point to an edge. More...
 
double SMESH_MeshAlgos::GetDistance (const SMDS_MeshFace *face, const gp_Pnt &point, gp_XYZ *closestPnt=0)
 Return minimal distance from a point to a face. More...
 
double SMESH_MeshAlgos::GetDistance (const SMDS_MeshVolume *volume, const gp_Pnt &point, gp_XYZ *closestPnt=0)
 Return minimal distance from a point to a volume. More...
 
void SMESH_MeshAlgos::GetBarycentricCoords (const gp_XY &point, const gp_XY &t0, const gp_XY &t1, const gp_XY &t2, double &bc0, double &bc1)
 Returns barycentric coordinates of a point within a triangle. More...
 
bool SMESH_MeshAlgos::IntersectRayVolume (const gp_Ax1 &ray, const double rayLen, const SMDS_MeshElement *vol, double &tMin, double &tMax, int &iFacetMin, int &iFacetMax)
 Intersect volume by a ray. More...
 
const SMDS_MeshElementSMESH_MeshAlgos::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. More...
 
bool SMESH_MeshAlgos::FaceNormal (const SMDS_MeshElement *F, gp_XYZ &normal, bool normalized=true)
 Calculate normal of a mesh face. More...
 
int SMESH_MeshAlgos::NbCommonNodes (const SMDS_MeshElement *e1, const SMDS_MeshElement *e2)
 Return number of nodes common to two elements. More...
 
std::vector< const SMDS_MeshNode * > SMESH_MeshAlgos::GetCommonNodes (const SMDS_MeshElement *e1, const SMDS_MeshElement *e2)
 Return nodes common to two elements. More...
 
bool SMESH_MeshAlgos::IsOn2DBoundary (const SMDS_MeshNode *node, std::vector< const SMDS_MeshNode * > *neibors=nullptr)
 Return true if a node is on a boundary of 2D mesh. More...
 
bool SMESH_MeshAlgos::IsRightOrder (const SMDS_MeshElement *face, const SMDS_MeshNode *node0, const SMDS_MeshNode *node1)
 Return true if node1 encounters first in the face and node2, after. More...
 
void SMESH_MeshAlgos::Get1DBranches (SMDS_ElemIteratorPtr edgeIt, TElemGroupVector &edgeGroups, TNodeGroupVector &nodeGroups, const SMDS_MeshNode *startNode=0)
 Partition given 1D elements into groups of contiguous edges. More...
 
template<class ElemIter >
void SMESH_MeshAlgos::MarkElems (ElemIter it, const bool isMarked)
 Mark elements given by SMDS_Iterator. More...
 
template<class ElemIter >
void SMESH_MeshAlgos::MarkElems (ElemIter it, ElemIter end, const bool isMarked)
 Mark elements given by std iterators. More...
 
template<class ElemIter >
void SMESH_MeshAlgos::MarkElemNodes (ElemIter it, const bool isMarked, const bool markElem=false)
 Mark nodes of elements given by SMDS_Iterator. More...
 
template<class ElemIter >
void SMESH_MeshAlgos::MarkElemNodes (ElemIter it, ElemIter end, const bool isMarked, const bool markElem=false)
 Mark elements given by std iterators. More...
 
std::vector< EdgeSMESH_MeshAlgos::FindSharpEdges (SMDS_Mesh *mesh, double angle, bool addExisting)
 Return sharp edges of faces and non-manifold ones. More...
 
std::vector< std::vector< const SMDS_MeshElement * > > SMESH_MeshAlgos::SeparateFacesByEdges (SMDS_Mesh *mesh, const std::vector< Edge > &edges)
 Distribute all faces of the mesh between groups using given edges. More...
 
void SMESH_MeshAlgos::FindCoincidentFreeBorders (SMDS_Mesh &mesh, double tolerance, CoincidentFreeBorders &foundFreeBordes)
 Returns TFreeBorder's coincident within the given tolerance. More...
 
void SMESH_MeshAlgos::FindFreeBorders (SMDS_Mesh &mesh, TFreeBorderVec &foundFreeBordes, const bool closedOnly, bool *isManifold=0, bool *isGoodOri=0)
 Returns all or only closed TFreeBorder's. More...
 
void SMESH_MeshAlgos::FillHole (const TFreeBorder &freeBorder, SMDS_Mesh &mesh, std::vector< const SMDS_MeshElement * > &newFaces)
 Fill a hole defined by a TFreeBorder with 2D elements. More...
 
void SMESH_MeshAlgos::DeMerge (const SMDS_MeshElement *elem, std::vector< const SMDS_MeshNode * > &newNodes, std::vector< const SMDS_MeshNode * > &noMergeNodes)
 Find nodes whose merge makes the element invalid. More...
 
SMDS_MeshSMESH_MeshAlgos::MakeOffset (SMDS_ElemIteratorPtr faceIt, SMDS_Mesh &mesh, const double offset, const bool theFixIntersections, TElemIntPairVec &new2OldFaces, TNodeIntPairVec &new2OldNodes)
 Create an offset mesh of given faces. More...
 
void SMESH_MeshAlgos::MakePolyLine (SMDS_Mesh *mesh, TListOfPolySegments &segments, std::vector< const SMDS_MeshElement * > &newEdges, std::vector< const SMDS_MeshNode * > &newNodes, SMDS_MeshGroup *group=0, SMESH_ElementSearcher *searcher=0)
 Create a polyline consisting of 1D mesh elements each lying on a 2D element of the initial mesh. More...
 
std::vector< EdgeSMESH_MeshAlgos::MakeSlot (SMDS_ElemIteratorPtr segmentIt, double width, SMDS_Mesh *mesh, std::vector< SMDS_MeshGroup * > &groupsToUpdate)
 Create a slot of given width around given 1D elements lying on a triangle mesh. More...