A3DTessFaceData

struct A3DTessFaceData

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

2.0

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_uiStyleIndexesSizemember 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_puiSizesTriangulatedmember.

Wireframe representation

The following A3DTessFaceDatamembers are used to describe a wireframe representation:

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

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

For this example, the m_puiSizesWiresarray 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 A3DTessFaceDatastructure, the size of a wire edge is limited to 16383(0x3FFF) points.

Solid representation

The following A3DTessFaceDatamembers are for solid representations:

Consider an example of an A3DTessFaceDatastructure that describes five triangles, two fans of 5 and 7 points respectively, and one strip of 11 indexes. For this example, set m_usUsedEntitiesFlagsto kA3DTessFaceDataTriangle& kA3DTessFaceDataTriangleFan& kA3DTessFaceDataTriangleStripe. In this case, m_puiSizesTriangulatedwill 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 kA3DTessFaceDataNormalSingleto characterize status and kA3DTessFaceDataNormalMaskto access the real value.

The following A3DTessFaceDatamembers also apply to solid representations:

Variables

A3DUns32 A3DTessFaceData.m_uiStyleIndexesSize

The size of m_puiStyleIndexes.

A3DUns32 *A3DTessFaceData.m_puiStyleIndexes

Array of display styles.

See explanations above.

A3DUns32 A3DTessFaceData.m_uiStartWire

See explanations above.

A3DUns32 A3DTessFaceData.m_uiSizesWiresSize

The size of m_puiSizesWires.

A3DUns32 *A3DTessFaceData.m_puiSizesWires

See explanations above.

A3DUns16 A3DTessFaceData.m_usUsedEntitiesFlags

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

See explanations above.

A3DUns32 A3DTessFaceData.m_uiStartTriangulated

See explanations above.

A3DUns32 A3DTessFaceData.m_uiSizesTriangulatedSize

The size of m_puiSizesTriangulated.

A3DUns32 *A3DTessFaceData.m_puiSizesTriangulated

See explanations above.

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.

A3DUns32 A3DTessFaceData.m_uiRGBAVerticesSize

The size of m_pucRGBAVertices.

A3DUns8 *A3DTessFaceData.m_pucRGBAVertices

See explanations above.

A3DUns16 A3DTessFaceData.m_usBehaviour

See explanations above.

A3DUns32 A3DTessFaceData.m_uiTextureCoordIndexesSize

See explanations above.