Bitmasks for Specifying Tessellation Types

Macro Definitions

kA3DTessFaceDataPolyface

kA3DTessFaceDataTriangle

kA3DTessFaceDataTriangleFan

kA3DTessFaceDataTriangleStripe

kA3DTessFaceDataPolyfaceOneNormal

kA3DTessFaceDataTriangleOneNormal

kA3DTessFaceDataTriangleFanOneNormal

kA3DTessFaceDataTriangleStripeOneNormal

kA3DTessFaceDataPolyfaceTextured

kA3DTessFaceDataTriangleTextured

kA3DTessFaceDataTriangleFanTextured

kA3DTessFaceDataTriangleStripeTextured

kA3DTessFaceDataPolyfaceOneNormalTextured

kA3DTessFaceDataTriangleOneNormalTextured

kA3DTessFaceDataTriangleFanOneNormalTextured

kA3DTessFaceDataTriangleStripeOneNormalTextured

Detailed Description

group a3d_tessfacetype

Bitmasks for specifying a type of tessellation face data.

These flags controls the way the vertex coordinates are indexed in a A3DTessFaceData instance. It’s specified in the A3DTessFaceData::m_usUsedEntitiesFlags member.

Version

2.0

Macro Definition

kA3DTessFaceDataPolyface

Reserved for future use.

kA3DTessFaceDataTriangle

Unique triangle.

One triangle described using 6 indexes forming 3 `{Normal, Point} pairs: { Normal1, Point1, Normal2, Point2, Normal3, Point3 }

kA3DTessFaceDataTriangleFan

Triangle fan.

The layout consists in 2*N indices where N is the number of points. Each vertex is described as a {Normal, Point} pair.

{ Normal1, Point1, Normal2, Point2, ..., ..., NormalN, PointN }

kA3DTessFaceDataTriangleStripe

Triangle strip.

The layout consists in 2*N indices where N is the number of points. Each vertex is described as a {Normal, Point} pair.

{ Normal1, Point1, Normal2, Point2, ..., ..., NormalN, PointN }

kA3DTessFaceDataPolyfaceOneNormal

Reserved for future use.

kA3DTessFaceDataTriangleOneNormal

Unique triangle with one normal.

Unique triangle with one normal. It is described using 4 indices:

{ Normal, Point1, Point2, Point3 }

kA3DTessFaceDataTriangleFanOneNormal

Triangle fan where the normal is defined either globally or per-point.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the layout consists in N+1 indices, where N is the number of points:

{ Normal, Point1, Point2, ..., PointN }
If not set, the normal indices are set per-point. The layout is the same as kA3DTessFaceDataTriangleFan.

kA3DTessFaceDataTriangleStripeOneNormal

Triangle strip where the normal is defined either globally or per-point.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the layout consists in N+1 indices, where N is the number of points:

{ Normal, Point1, Point2, ..., PointN }
If not set, the normal indices are set per-point. The layout is the same as kA3DTessFaceDataTriangleStripe.

kA3DTessFaceDataPolyfaceTextured

Reserved for future use.

kA3DTessFaceDataTriangleTextured

Unique triangle with texture coordinates.

This layout is similar to kA3DTessFaceDataTriangle with the addition of texture coordinates indices before the point index. Each point is then described using the following layout: {Normal, Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to 6 + 3 * m_uiTextureCoordIndexesSize.

For example, if there are two texture indices per point, the layout will be a 12 wide array:

{
  Normal1, Texture1-1, Texture1-2, Point1,
  Normal2, Texture2-1, Texture2-2, Point2,
  Normal3, Texture3-1, Texture3-2, Point3,
}

kA3DTessFaceDataTriangleFanTextured

Triangle fan with texture coordinates.

This layout is similar to kA3DTessFaceDataTriangleFan with the addition of texture coordinates indices before the point index. Each point is then described using the following layout: {Normal, Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 2) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal1, Texture1-1, Texture1-2, Point1,
  Normal2, Texture2-1, Texture2-2, Point2,
  Normal3, Texture3-1, Texture3-2, Point3,
  Normal4, Texture4-1, Texture4-2, Point4,
  Normal5, Texture5-1, Texture5-2, Point5,
  Normal6, Texture6-1, Texture6-2, Point6
}

kA3DTessFaceDataTriangleStripeTextured

Triangle strip with texture coordinates.

This layout is similar to kA3DTessFaceDataTriangleStripe with the addition of texture coordinates indices before the point index. Each point is then described using the following layout: {Normal, Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 2) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal1, Texture1-1, Texture1-2, Point1,
  Normal2, Texture2-1, Texture2-2, Point2,
  Normal3, Texture3-1, Texture3-2, Point3,
  Normal4, Texture4-1, Texture4-2, Point4,
  Normal5, Texture5-1, Texture5-2, Point5,
  Normal6, Texture6-1, Texture6-2, Point6
}

kA3DTessFaceDataPolyfaceOneNormalTextured

Reserved for future use.

kA3DTessFaceDataTriangleOneNormalTextured

Unique triangle with texture coordinates and a globally defined normal.

This layout is similar to kA3DTessFaceDataTriangleOneNormal with the addition of texture coordinates indices before the point index. The unique normal is defined first. Each point is then described using the following layout: {Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to 4 + 3 * m_uiTextureCoordIndexesSize.

For example, if there are two texture indices per point, the layout will be a 12 wide array:

{
  Normal
  Texture1-1, Texture1-2, Point1,
  Texture2-1, Texture2-2, Point2,
  Texture3-1, Texture3-2, Point3,
}

kA3DTessFaceDataTriangleFanOneNormalTextured

Triangle fan with texture coordinates where the normal is defined either globally or per-point.

This layout is similar to kA3DTessFaceDataTriangleFanOneNormal with the addition of texture coordinates indices before the point index.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the unique normal is defined first. Each point is then described using the following layout: {Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 1) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal
  Texture1-1, Texture1-2, Point1,
  Texture2-1, Texture2-2, Point2,
  Texture3-1, Texture3-2, Point3,
  Texture4-1, Texture4-2, Point4,
  Texture5-1, Texture5-2, Point5,
  Texture6-1, Texture6-2, Point6
}
If kA3DTessFaceDataNormalSingle is not set, the layout is the same as kA3DTessFaceDataTriangleFanTextured.

kA3DTessFaceDataTriangleStripeOneNormalTextured

Triangle strip with texture coordinates where the normal is defined either globally or per-point.

This layout is similar to kA3DTessFaceDataTriangleStripeOneNormal with the addition of texture coordinates indices before the point index.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the unique normal is defined first. Each point is then described using the following layout: {Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 1) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal
  Texture1-1, Texture1-2, Point1,
  Texture2-1, Texture2-2, Point2,
  Texture3-1, Texture3-2, Point3,
  Texture4-1, Texture4-2, Point4,
  Texture5-1, Texture5-2, Point5,
  Texture6-1, Texture6-2, Point6
}
If kA3DTessFaceDataNormalSingle is not set, the layout is the same as kA3DTessFaceDataTriangleStripeTextured.