Overview

Programming Guide

API Reference

A3DTessFaceData Struct Reference

Structure that describes basic entities per face for solid or surface mesh representations. More...

Data Fields

A3DUns16 m_usStructSize
 
A3DUns32 m_uiStyleIndexesSize
 
A3DUns32m_puiStyleIndexes
 
A3DUns32 m_uiStartWire
 
A3DUns32 m_uiSizesWiresSize
 
A3DUns32m_puiSizesWires
 
A3DUns16 m_usUsedEntitiesFlags
 
A3DUns32 m_uiStartTriangulated
 
A3DUns32 m_uiSizesTriangulatedSize
 
A3DUns32m_puiSizesTriangulated
 
A3DBool m_bIsRGBA
 
A3DUns32 m_uiRGBAVerticesSize
 
A3DUns8m_pucRGBAVertices
 
A3DUns16 m_usBehaviour
 
A3DUns32 m_uiTextureCoordIndexesSize
 

Detailed Description

Structure that describes basic entities per face for solid or surface mesh representations.

Version
2.0

In the context of solid or surface mesh representations, an entity can be a triangle, a fan, or a strip, with all declinations described for the the A3DTess3DData structure.

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 for wireframe faces:

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 10 points.
    • Second edge has 20 points.
  • Second loop consists of one edge having 12 points.

For this example, the m_puiSizesWires array has these entries: [0x0010, 0x4020, 0x4012]. The second and third array entries are the number of edges ANDed with the kA3DTessFaceDataWireIsNotDrawn (0x4000). Notice that the indexes for each edge's extremity are always stored. Therefore, the tenth 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
m_puiSizesTriangulated is [5,2,5,7,1,11].

In case of the tessellation type kA3DTessFaceData*OneNormal, 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 to real value.

The following A3DTessFaceData members also apply to solid representations:

Field Documentation

A3DUns16 A3DTessFaceData::m_usStructSize

Reserved; must be initialized with A3D_INITIALIZE_DATA.

A3DUns32 A3DTessFaceData::m_uiStyleIndexesSize

Size of next array.

A3DUns32* A3DTessFaceData::m_puiStyleIndexes

Array of display styles. See explanations above.

A3DUns32 A3DTessFaceData::m_uiStartWire

See explanations above.

A3DUns32 A3DTessFaceData::m_uiSizesWiresSize

Size of next array.

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.

See also
Bitmasks for Specifying Tessellation Types
A3DUns32 A3DTessFaceData::m_uiStartTriangulated

See explanations above.

A3DUns32 A3DTessFaceData::m_uiSizesTriangulatedSize

Size of next array.

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

Size of next array.

A3DUns8* A3DTessFaceData::m_pucRGBAVertices

See explanations above.

A3DUns16 A3DTessFaceData::m_usBehaviour

See explanations above.

A3DUns32 A3DTessFaceData::m_uiTextureCoordIndexesSize

See explanations above.