A3DTessFaceData

Fields

A3DUns32

m_uiStyleIndexesSize

A3DUns32 *

m_puiStyleIndexes

A3DUns32

m_uiStartWire

A3DUns32

m_uiSizesWiresSize

A3DUns32 *

m_puiSizesWires

A3DUns16

m_usUsedEntitiesFlags

A3DUns32

m_uiStartTriangulated

A3DUns32

m_uiSizesTriangulatedSize

A3DUns32 *

m_puiSizesTriangulated

A3DBool

m_bIsRGBA

A3DUns32

m_uiRGBAVerticesSize

A3DUns8 *

m_pucRGBAVertices

A3DUns16

m_usBehaviour

A3DUns32

m_uiTextureCoordIndexesSize

Detailed Description

struct A3DTessFaceData

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.

Version

2.0

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.

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:

Note

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

Public Members

A3DUns32 m_uiStyleIndexesSize

The size of m_puiStyleIndexes.

A3DUns32 *m_puiStyleIndexes

Array of display styles.

See explanations above.

A3DUns32 m_uiStartWire

See explanations above.

A3DUns32 m_uiSizesWiresSize

The size of m_puiSizesWires.

A3DUns32 *m_puiSizesWires

See explanations above.

A3DUns16 m_usUsedEntitiesFlags

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

See explanations above.

A3DUns32 m_uiStartTriangulated

See explanations above.

A3DUns32 m_uiSizesTriangulatedSize

The size of m_puiSizesTriangulated.

A3DUns32 *m_puiSizesTriangulated

See explanations above.

A3DBool 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 m_uiRGBAVerticesSize

The size of m_pucRGBAVertices.

A3DUns8 *m_pucRGBAVertices

See explanations above.

A3DUns16 m_usBehaviour

See explanations above.

A3DUns32 m_uiTextureCoordIndexesSize

See explanations above.