Cut faces of a triangular mesh. More...
#include <SMESH_MeshAlgos.hxx>
Data Structures | |
| struct | Algo |
| Intersect faces of a mesh. More... | |
Public Types | |
| typedef std::vector< SMESH_NodeXYZ > | TFace |
Public Member Functions | |
| Intersector (SMDS_Mesh *mesh, double tol, const std::vector< gp_XYZ > &normals) | |
| ~Intersector () | |
| void | Cut (const SMDS_MeshElement *face1, const SMDS_MeshElement *face2, const int nbCommonNodes=-1) |
| Compute cut of two faces of the mesh. More... | |
| void | Cut (const SMDS_MeshElement *face, SMESH_NodeXYZ &lineEnd1, int edgeIndex1, SMESH_NodeXYZ &lineEnd2, int edgeIndex2) |
| Store a face cut by a line given by its ends lying either on face edges or inside the face. More... | |
| void | MakeNewFaces (SMESH_MeshAlgos::TElemIntPairVec &theNew2OldFaces, SMESH_MeshAlgos::TNodeIntPairVec &theNew2OldNodes, const double theSign=1., const bool theOptimize=false) |
| Split all faces intersected by Cut() methods. More... | |
Static Public Member Functions | |
| static bool | CutByPlanes (const SMDS_MeshElement *face, const std::vector< gp_Ax1 > &planes, const double tol, std::vector< TFace > &newFaceConnectivity) |
| Cut a face by planes, whose normals point to parts to keep. More... | |
Private Attributes | |
| Algo * | myAlgo |
Cut faces of a triangular mesh.
Usage work-flow: 1) call Cut() methods as many times as needed 2) call MakeNewFaces() to really modify the mesh faces
| typedef std::vector< SMESH_NodeXYZ > SMESH_MeshAlgos::Intersector::TFace |
| SMESH_MeshAlgos::Intersector::Intersector | ( | SMDS_Mesh * | mesh, |
| double | tol, | ||
| const std::vector< gp_XYZ > & | normals | ||
| ) |
References myAlgo.
| SMESH_MeshAlgos::Intersector::~Intersector | ( | ) |
References myAlgo.
| void SMESH_MeshAlgos::Intersector::Cut | ( | const SMDS_MeshElement * | face, |
| SMESH_NodeXYZ & | lineEnd1, | ||
| int | edgeIndex1, | ||
| SMESH_NodeXYZ & | lineEnd2, | ||
| int | edgeIndex2 | ||
| ) |
Store a face cut by a line given by its ends lying either on face edges or inside the face.
store a face cut by a line given by its ends
References SMESH_MeshAlgos::Intersector::Algo::Cut(), and myAlgo.
| void SMESH_MeshAlgos::Intersector::Cut | ( | const SMDS_MeshElement * | face1, |
| const SMDS_MeshElement * | face2, | ||
| const int | nbCommonNodes = -1 |
||
| ) |
Compute cut of two faces of the mesh.
compute cut of two faces of the mesh
References SMESH_MeshAlgos::Intersector::Algo::Cut(), and myAlgo.
Referenced by SMESH_MeshAlgos::MakeOffset(), and SMESH_MeshAlgos::MakeSlot().
|
static |
Cut a face by planes, whose normals point to parts to keep.
References SMDS_Mesh::AddFace(), SMDS_Mesh::AddNode(), SMDS_Mesh::AddPolygonalFace(), SMDS_MeshElement::begin_nodes(), SMESH_MeshAlgos::Intersector::Algo::Cut(), SMDS_MeshElement::end_nodes(), SMESH_MeshAlgos::FaceNormal(), SMDS_MeshElement::GetID(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::GetNodeIndex(), SMESH_MeshAlgos::Intersector::Algo::IntersectNewEdges(), SMESH_MeshAlgos::Intersector::Algo::myCutFaces, and SMDS_MeshElement::NbCornerNodes().
| void SMESH_MeshAlgos::Intersector::MakeNewFaces | ( | SMESH_MeshAlgos::TElemIntPairVec & | theNew2OldFaces, |
| SMESH_MeshAlgos::TNodeIntPairVec & | theNew2OldNodes, | ||
| const double | theSign = 1., |
||
| const bool | theOptimize = false |
||
| ) |
Split all faces intersected by Cut() methods.
split all face intersected by Cut() methods
References SMESH_MeshAlgos::Intersector::Algo::MakeNewFaces(), and myAlgo.
Referenced by SMESH_MeshAlgos::MakeOffset(), and SMESH_MeshAlgos::MakeSlot().
|
private |
Referenced by Cut(), Intersector(), MakeNewFaces(), and ~Intersector().