The SEDRIS Data Representation Model
APPENDIX A - Classes Mesh Face Table |
---|
An instance of this DRM class specifies a two-dimensional table that defines the face elements of a <Finite Element Mesh> instance in terms of vertex numbers in the ordered <Vertex> component list of the <Finite Element Mesh> instance and, optionally, the topology of the face elements.
The first data element specifies, for cell i, j, the index in the ordered <Vertex> list of the <Vertex> representing the jth vertex of the ith mesh face. If the ith mesh face contains less than j vertices, so that j is greater than the number of the last listed vertex of mesh face i, the cell data element contains zero (0). The edges of each mesh face i are implicitly defined by pairing vertex j to vertex j + 1.
For a given mesh face element index i and mesh face vertex index j, the (i, j)th cell gives the vertex number that comprises the jth vertex of the ith mesh face. The mesh face vertices are listed (j index) in clockwise order around the outer perimeter of the mesh face, starting and ending with a first vertex. If inner perimeter rings are present, the vertex list along the second axis continues with inner perimeter vertices in counterclockwise order starting and ending with a first vertex on each inner ring.
Consider six <Vertex> instances, used to define a <Mesh Face Table> instance, where the mesh is diagrammed as depicted in Figure 6.33:
In this example, there are six <Vertex> instances forming the vertices of the mesh, which has three mesh faces (A, B, C).
The corresponding <Mesh Face Table> instance, without surface topology, is organized as follows, where each individual cell contains a vertex number.
Vertex number | |||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |
1 (Mesh Face A) | 1 | 2 | 4 | 1 | 0 |
2 (Mesh Face B) | 2 | 3 | 6 | 5 | 2 |
3 (Mesh Face C) | 4 | 2 | 5 | 4 | 0 |
Consider the <Mesh Face Table> instance from the previous example, with the addition of surface topology indicated by adjacent_face_table_present set to SE_TRUE. In this instance, each individual cell contains a {vertex number, adjacent mesh face number} pair.
Vertex number | |||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |
1 (Mesh Face A) | 1, 0 | 2, 3 | 4, 0 | 1, 0 | 0, 0 |
2 (Mesh Face B) | 2, 0 | 3, 0 | 6, 0 | 5, 3 | 2, 0 |
3 (Mesh Face C) | 4, 1 | 2, 2 | 5, 0 | 4, 0 | 0, 0 |
See P4V6 of the SEDRIS Documentation Set for detailed information on <Mesh Face Table> instance manipulation.
The actual cells of a <Mesh Face Table> instance are hidden by the API implementation being used to provide the <Mesh Face Table> instance. See the SE_PutMeshFaceTableData() function in the level 0 API for <Mesh Face Table> instance production, and the level 0 function SE_GetMeshFaceTableData() for consumption.
SE_Integer_Positive | mesh_face_count; | 1 |
---|---|---|
SE_Integer_Positive | maximum_vertices_per_face; | 2 |
SE_Boolean | adjacent_face_table_present; | 3 |
The mesh_face_count field specifies the total number of mesh faces in the <Mesh Face Table> instance.
The maximum_vertices_per_face field specifies the maximum number of vertices in any one face element.
If the adjacent_face_table_present field is set to SE_TRUE, the given <Finite Element Mesh> instance contains face adjacency information in a separate table termed the adjacent face table, which has the same dimensions as the mesh face table. The values in the adjacent face table are positive integer values that specify face indexes that represent the row in the mesh face table.
|