Structure that describes basic entities of a face in a solid or surface mesh representations.
In the context of solid or surface mesh representations, an entity can be any number of triangles. If more than one, they maybe organized as a fan or strip.
The m_uiStyleIndexesSize member has these values:
0 indicates that there are no graphics (in this case, all graphics are inherited from the owner (parent) of the A3DTess3DData).
1 indicates that one graphic is associated with the face.
Greater than 1 indicates that the number of graphics is linked to the number of entities in the m_puiSizesTriangulated member.
m_puiSizesWires : Array of the number of indexes for each wire edge of the face, where the number of indexes is OR’d with the relevant flags kA3DTessFaceDataWireIsNotDrawn and/or kA3DTessFaceDataWireIsClosing.
First loop consists of two wire edges:
First edge has 16 points (
Second edge has 32 points (
Second loop is one edge having 18 points (
[0x0010, 0x8020, 0x8012]. The second and third array entries are the number of edges OR’d with the kA3DTessFaceDataWireIsClosing (0x8000). Notice that the indexes for each edge’s extremity are always stored. Therefore, the last point of the first edge is followed by the first point of the second edge.
- Wireframe representation
The following A3DTessFaceData members are for solid representations:
: Array of the number of indexes for each triangulated entity of the face.
The triangulated data sizes are stored following the order of values inBitmasks for Specifying Tessellation Types. Thus, the triangles are stored before triangle fans and before textured triangles.
For triangle types, the m_puiSizesTriangulated member specifies the number of triangles.
For triangle fan and strips types, the m_puiSizesTriangulated member specifies the number of fans or strips followed by the number of points for each of them.
- Solid representation
In case of the tessellation types kA3DTessFaceData*OneNormal* (i.e., one of the bitmasks specifying a tessellation type with one normal), the number of points can bear the flag kA3DTessFaceDataNormalSingle, modifying the way of reading normals information. In such a case, you must use kA3DTessFaceDataNormalSingle to characterize status and kA3DTessFaceDataNormalMask to access the real value.
The following A3DTessFaceData members also apply to solid representations:
m_pucRGBAVertices : Colors stored directly on vertices. Either there is no color on vertices or every vertex must bear a color. Therefore, m_uiRGBAVerticesSize is either 0 or equal to the number of point indexes as calculated from m_puiSizesTriangulated, multiplied by 3 if RGB, by 4 if RGBA. (In the previous example, m_uiRGBAVerticesSize is 38*(m_bIsRGBA?4:3) = (5*3 + 5 + 7 + 11)*(m_bIsRGBA?4:3)).
m_bIsRGBA : If true, the color scheme is RGBa; otherwise, it is RGB.
m_usBehaviour : This member denotes the graphics behavior for this A3DTessFaceData towards owning entity in the tree, as described in Bit Field for Behavior on Graphics. For face behavior, kA3DGraphicsShow and kA3DGraphicsRemoved are not currently supported.
In an A3DTessFaceData structure, the size of a wire edge is limited to
Bit field containing list of used entities in current face tessellation. See explanations above.
A value of true specifies that the array is made of RGBA. A value of false indicates that it is made of RGB.