Structure that describes basic entities of a face in a solid or surface mesh representations. More...

Data Fields

A3DBool m_bIsRGBA
A3DUns32 m_uiRGBAVerticesSize
A3DUns32 m_uiSizesTriangulatedSize
A3DUns32 m_uiSizesWiresSize
A3DUns32 m_uiStartTriangulated
A3DUns32 m_uiStartWire
A3DUns32 m_uiStyleIndexesSize
A3DUns32 m_uiTextureCoordIndexesSize
A3DUns16 m_usBehaviour
A3DUns16 m_usUsedEntitiesFlags

Detailed Description

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.
Wireframe representation

The following A3DTessFaceData members are used to describe a wireframe representation:

Consider an example of an A3DTessFaceData structure in which both loops describe closed wire edges:

  • First loop consists of two wire edges:
    • First edge has 16 points (0x10).
    • Second edge has 32 points (0x20).
  • Second loop is one edge having 18 points (0x12).

For this example, the m_puiSizesWires array has these entries: [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.

In an A3DTessFaceData structure, the size of a wire edge is limited to 16383 (0x3FFF) points.
Solid representation

The following A3DTessFaceData members are for solid representations:

Consider an example of an A3DTessFaceData structure that describes five triangles, two fans of 5 and 7 points respectively, and one strip of 11 indexes. For this example, set m_usUsedEntitiesFlags to kA3DTessFaceDataTriangle & kA3DTessFaceDataTriangleFan & kA3DTessFaceDataTriangleStripe . In this case, m_puiSizesTriangulated will be [5,2,5,7,1,11].

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:

Field Documentation

◆ m_uiStyleIndexesSize

A3DUns32 A3DTessFaceData::m_uiStyleIndexesSize

The size of m_puiStyleIndexes.

◆ m_puiStyleIndexes

A3DUns32* A3DTessFaceData::m_puiStyleIndexes

Array of display styles. See explanations above.

◆ m_uiStartWire

A3DUns32 A3DTessFaceData::m_uiStartWire

See explanations above.

◆ m_uiSizesWiresSize

A3DUns32 A3DTessFaceData::m_uiSizesWiresSize

The size of m_puiSizesWires.

◆ m_puiSizesWires

A3DUns32* A3DTessFaceData::m_puiSizesWires

See explanations above.

◆ m_usUsedEntitiesFlags

A3DUns16 A3DTessFaceData::m_usUsedEntitiesFlags

Bit field containing list of used entities in current face tessellation. See explanations above.

See also
Bitmasks for Specifying Tessellation Types

◆ m_uiStartTriangulated

A3DUns32 A3DTessFaceData::m_uiStartTriangulated

See explanations above.

◆ m_uiSizesTriangulatedSize

A3DUns32 A3DTessFaceData::m_uiSizesTriangulatedSize

The size of m_puiSizesTriangulated.

◆ m_puiSizesTriangulated

A3DUns32* A3DTessFaceData::m_puiSizesTriangulated

See explanations above.

◆ m_bIsRGBA

A3DBool A3DTessFaceData::m_bIsRGBA

A value of true specifies that the array is made of RGBA. A value of false indicates that it is made of RGB.

◆ m_uiRGBAVerticesSize

A3DUns32 A3DTessFaceData::m_uiRGBAVerticesSize

The size of m_pucRGBAVertices.

◆ m_pucRGBAVertices

A3DUns8* A3DTessFaceData::m_pucRGBAVertices

See explanations above.

◆ m_usBehaviour

A3DUns16 A3DTessFaceData::m_usBehaviour

See explanations above.

◆ m_uiTextureCoordIndexesSize

A3DUns32 A3DTessFaceData::m_uiTextureCoordIndexesSize

See explanations above.