|
The SEDRIS Data Representation Model
APPENDIX A - Classes Mesh Face Table |
|---|
An instance of this DRM class is a 2-dimensional <Data Table>, classified as ECC_MESH_FACE_SET, which 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>.
The two <Regular Axes> of a <Mesh Face Table> instance are constrained as follows.
| Field | Value |
|---|---|
| axis_type | { SE_ELEM_CODE_TYP_INDEX, { SE_INDEX_CODE_MESH_FACE }} |
| axis_value_count | total number of Mesh Faces in the table. |
| interpolation_type | SE_INTERPOLATION_TYP_DISALLOWED |
| first_value | 1 |
| spacing | 1 |
| spacing_type | SE_SPACING_TYP_ARITHMETIC |
| axis_alignment | SE_AXIS_ALNMNT_NONE |
| value_unit | EUC_UNITLESS |
| value_scale | ESC_UNI |
| Field | Value |
|---|---|
| axis_type | { SE_ELEM_CODE_TYP_INDEX, { SE_INDEX_CODE_MESH_NODE }} |
| axis_value_count | M + R, where M = the maximum number of nodes for any one Mesh Face in the table, and R = is the maximum number of perimeter rings in any one mesh face. (If all the mesh faces have simply connected perimeters, then R=1) |
| interpolation_type | SE_INTERPOLATION_TYP_DISALLOWED |
| first_value | 1 |
| spacing | 1 |
| spacing_type | SE_SPACING_TYP_ARITHMETIC |
| axis_alignment | SE_AXIS_ALNMNT_NONE |
| value_unit | EUC_UNITLESS |
| value_scale | ESC_UNI |
The <Table Property Descriptions> of a <Mesh Face Table> instance are constrained as follows.
If the ith mesh face contains less than j nodes, so that j is greater than the number of the last listed node of mesh face i, then the cell data element contains zero (0).
| Field | Value |
|---|---|
| meaning | { SE_ELEM_CODE_TYP_INDEX, { SE_INDEX_CODE_MESH_VERTEX}} |
| value_type | SE_PDV_INTEGER_UNSIGNED |
| value_unit | EUC_UNITLESS |
| value_scale | ESC_UNI |
A value of 0 indicates an "outside" or "universal" adjacency. A value of i for mesh face i indicates that the edge is artificially connecting an inside perimeter ring to another perimeter ring.
| Field | Value |
|---|---|
| meaning | { SE_ELEM_CODE_TYP_INDEX, { SE_INDEX_CODE_ADJACENT_MESH_FACE}} |
| value_type | SE_PDV_INTEGER_UNSIGNED |
| value_unit | EUC_UNITLESS |
| value_scale | ESC_UNI |
For a given SE_INDEX_CODE_MESH_FACE i (>0) and SE_INDEX_CODE_MESH_NODE j, the (i, j)-th cell gives the vertex number that comprises the j-th node of the i-th 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 SE_INDEX_CODE_MESH_NODE axis continues with inner perimeter vertices in counter-clockwise order starting and ending with a first vertex on each inner ring.
The mesh face node ordering implicitly defines the edges of each mesh face. The data provider has the option of defining Surface topology by adding a second <Table Property Description>, with meaning SE_INDEX_CODE_ADJACENT_MESH_FACE, to each cell. The SE_INDEX_CODE_ADJACENT_MESH_FACE in cell (i,j) is the mesh face adjacent to mesh face i at the edge between nodes j and j+1.
Consider 6 <Vertex> instances, used to define a <Mesh Face Table>, where the mesh would be diagrammed as follows.
(k) = k
Mesh:
(1)-----(2)-----(3)
\ A / \ B |
\ / C \ |
(4)------(5)-(6)
So in this example, we have 6 <Vertices> forming the nodes of the mesh, which has 3 mesh faces (A, B, C).
The corresponding <Mesh Face Table>, without surface topology, would be organized as follows, where each individual cell contains a vertex number.
| ALIGN=CENTER>Node 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> from the previous example, with the addition of surface topology. In this instance, each individual cell contains a {vertex number, adjacent mesh face number} pair.
| ALIGN=CENTER>Node 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 |
For a given SE_INDEX_CODE_MESH_VERTEX i, the nodes j shall be listed starting from a vertex on the outside perimeter of the Mesh Face and continuing consecutively around the perimeter in clockwise direction until the first vertex is reached (and repeated). If "inside" perimeters exist, node numbering continues counter clockwise around each internal ring in similar fashion. Clockwise implies an "up" direction. If the < Finite Element Mesh> is a surface, then "up" should be chosen consistently across all Mesh Faces. However, if the mesh is a solid mesh, then "up" is arbitrary for each Mesh Face.
Indicates the kind of information represented by the <Data Table>, such as terrain elevation or water characteristics.
|