Bitmasks for Specifying Tessellation Types

Bitmasks for specifying a type of tessellation face data.

These flags controls the way the vertex coordinates are indexed in a A3DTessFaceDatainstance. It’s specified in the A3DTessFaceData::m_usUsedEntitiesFlagsmember.

2.0

Index

Preprocessor Definitions

Preprocessor Definitions

kA3DTessFaceDataPolyface

Reserved for future use.

kA3DTessFaceDataTriangle

Unique triangle.

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

kA3DTessFaceDataTriangleFan

Triangle fan.

The layout consists in 2*Nindices where Nis 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*Nindices where Nis 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 kA3DTessFaceDataNormalSingleflag is set. In that case the layout consists in N+1indices, 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 kA3DTessFaceDataNormalSingleflag is set. In that case the layout consists in N+1indices, 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 kA3DTessFaceDataTrianglewith 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 kA3DTessFaceDataTriangleFanwith 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 Nis 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 kA3DTessFaceDataTriangleStripewith 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 Nis 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 kA3DTessFaceDataTriangleOneNormalwith 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 kA3DTessFaceDataTriangleFanOneNormalwith the addition of texture coordinates indices before the point index.

The normal is globally defined if kA3DTessFaceDataNormalSingleflag 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 Nis 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 kA3DTessFaceDataNormalSingleis 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 kA3DTessFaceDataTriangleStripeOneNormalwith the addition of texture coordinates indices before the point index.

The normal is globally defined if kA3DTessFaceDataNormalSingleflag 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 Nis 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 kA3DTessFaceDataNormalSingleis not set, the layout is the same as kA3DTessFaceDataTriangleStripeTextured.