Class xlifepp::subdivision::SurfMeshQuaSet#
-
class SurfMeshQuaSet : public xlifepp::subdivision::QuadrangleMesh#
-
Inheritence diagram for xlifepp::subdivision::SurfMeshQuaSet:
Collaboration diagram for xlifepp::subdivision::SurfMeshQuaSet:
Public Functions
-
SurfMeshQuaSet(const std::vector<Point> &pts, const std::vector<std::vector<number_t>> &tri, const std::vector<std::vector<number_t>> &bound, const number_t nbsubdiv = 0, const number_t order = 1, const number_t minElementNum = 1)#
-
main constructor
Build a mesh of quadrangles by successive subdivisions from an initial set of quadrangles.
Works in 2D and 3D.
- Parameters:
-
pts – set of vertices of the initial mesh. This vector should contain at least three points. They are implicitly numbered starting from 1.
tri – list of quadrangles of the initial mesh. Each element of the vector is a triplet of numbers, each of them being the number of a vertex in the vector pts according to the implicit numbering starting from 1. Some points in the vector pts may not be referenced ; thus, only a subset of them may be used to define the initial mesh.
bound – list of the boundaries of the domain. A boundary is defined by the list of the vertex numbers lying on it, in the initial mesh ; no order is required. Several boundaries must be defined if, in the initial mesh tri, there are internal edges whose vertices are both boundary vertices. In this case, the two vertices must belong to two different boundaries, otherwise the (internal) points created by the subdivision process along this edge would be considered as boundary vertices.
nbsubdiv – subdivision level (0 by default) nbsubdiv = 0 corresponds to the initial mesh. For nbsubdiv > 0, each quadrangle is subdivided into 4 quadrangles with the same orientation as the original one: if the first quadrangle is (1,2,3,4), the vectors 12x13 define the exterior normal to the face.
order – order of the quadrangles in the final mesh (1 by default) The default value is 1, which leads to a P1 mesh, in which case each quadrangle is defined by its 3 vertices. For higher orders, the supplemental vertices correspond to the regular Lagrange mesh.
minElementNum – minimum number associated to the elements of the mesh (1 by default)
-
SurfMeshQuaSet(const std::vector<Point> &pts, const std::vector<std::vector<number_t>> &tri, const std::vector<std::vector<number_t>> &bound, const number_t nbsubdiv = 0, const number_t order = 1, const number_t minElementNum = 1)#