Divide a mesh face into triangles. More...
#include <SMESH_MeshAlgos.hxx>
Data Structures | |
| struct | Data |
| struct | Optimizer |
| struct | PolyVertex |
| Vertex of a polygon. More... | |
Public Member Functions | |
| Triangulate (bool optimize=false) | |
| Constructor. More... | |
| ~Triangulate () | |
| Destructor. More... | |
| int | GetTriangles (const SMDS_MeshElement *face, std::vector< const SMDS_MeshNode * > &nodes) |
| Decompose a mesh face into triangles. More... | |
Static Public Member Functions | |
| static int | GetNbTriangles (const SMDS_MeshElement *face) |
| Return nb triangles in a decomposed mesh face. More... | |
Private Member Functions | |
| bool | triangulate (std::vector< const SMDS_MeshNode * > &nodes, const size_t nbNodes) |
| Triangulate a polygon. More... | |
Private Attributes | |
| Data * | _data |
| Optimizer * | _optimizer |
Divide a mesh face into triangles.
| Triangulate::Triangulate | ( | bool | optimize = false | ) |
Constructor.
References _data, and _optimizer.
| Triangulate::~Triangulate | ( | ) |
Destructor.
References _data, and _optimizer.
|
static |
Return nb triangles in a decomposed mesh face.
| int | - number of triangles |
References SMDS_MeshElement::GetEntityType(), SMDS_MeshElement::NbNodes(), SMDSEntity_BiQuad_Quadrangle, and SMDSEntity_BiQuad_Triangle.
Referenced by DriverSTL_W_SMDS_Mesh::writeBinary().
| int Triangulate::GetTriangles | ( | const SMDS_MeshElement * | face, |
| std::vector< const SMDS_MeshNode * > & | nodes | ||
| ) |
Decompose a mesh face into triangles.
| int | - number of triangles |
References SMDS_MeshElement::GetEntityType(), SMDS_MeshElement::GetNode(), SMDS_MeshElement::GetType(), SMDS_MeshElement::interlacedNodesIterator(), SMDS_MeshElement::NbNodes(), SMDSAbs_Face, SMDSEntity_BiQuad_Quadrangle, SMDSEntity_BiQuad_Triangle, SMDSEntity_Triangle, and triangulate().
Referenced by SMESH_MeshAlgos::GetDistance(), SMESH_MeshAlgos::Intersector::Algo::MakeNewFaces(), splitPolygon(), DriverSTL_W_SMDS_Mesh::writeAscii(), and DriverSTL_W_SMDS_Mesh::writeBinary().
|
private |
Triangulate a polygon.
Assure correct orientation for concave polygons
References SMESH_MeshAlgos::Triangulate::PolyVertex::_next, SMESH_MeshAlgos::Triangulate::PolyVertex::_prev, SMESH_MeshAlgos::Triangulate::PolyVertex::Delete(), SMESH_MeshAlgos::Triangulate::PolyVertex::GetTriaNodes(), SMESH_MeshAlgos::Triangulate::PolyVertex::IsInsideTria(), and SMESH_MeshAlgos::Triangulate::PolyVertex::TriaArea().
Referenced by GetTriangles().
|
private |
Referenced by Triangulate(), and ~Triangulate().
|
private |
Referenced by Triangulate(), and ~Triangulate().