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(), 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().