Bitmasks for Specifying Tessellation Types

Bitmasks for specifying a type of tessellation face data. More...

Macros

#define kA3DTessFaceDataPolyface   0x0001
 Reserved for future use.
 
#define kA3DTessFaceDataPolyfaceOneNormal   0x0010
 Reserved for future use.
 
#define kA3DTessFaceDataPolyfaceOneNormalTextured   0x1000
 Reserved for future use.
 
#define kA3DTessFaceDataPolyfaceTextured   0x0100
 Reserved for future use.
 
#define kA3DTessFaceDataTriangle   0x0002
 Unique triangle. More...
 
#define kA3DTessFaceDataTriangleFan   0x0004
 Triangle fan. More...
 
#define kA3DTessFaceDataTriangleFanOneNormal   0x0040
 Triangle fan where the normal is defined either globally or per-point. More...
 
#define kA3DTessFaceDataTriangleFanOneNormalTextured   0x4000
 Triangle fan with texture coordinates where the normal is defined either globally or per-point. More...
 
#define kA3DTessFaceDataTriangleFanTextured   0x0400
 Triangle fan with texture coordinates. More...
 
#define kA3DTessFaceDataTriangleOneNormal   0x0020
 Unique triangle with one normal. More...
 
#define kA3DTessFaceDataTriangleOneNormalTextured   0x2000
 Unique triangle with texture coordinates and a globally defined normal. More...
 
#define kA3DTessFaceDataTriangleStripe   0x0008
 Triangle strip. More...
 
#define kA3DTessFaceDataTriangleStripeOneNormal   0x0080
 Triangle strip where the normal is defined either globally or per-point. More...
 
#define kA3DTessFaceDataTriangleStripeOneNormalTextured   0x8000
 Triangle strip with texture coordinates where the normal is defined either globally or per-point. More...
 
#define kA3DTessFaceDataTriangleStripeTextured   0x0800
 Triangle strip with texture coordinates. More...
 
#define kA3DTessFaceDataTriangleTextured   0x0200
 Unique triangle with texture coordinates. More...
 

Detailed Description

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 Documentation

◆ kA3DTessFaceDataTriangle

#define kA3DTessFaceDataTriangle   0x0002

Unique triangle.

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

◆ kA3DTessFaceDataTriangleFan

#define kA3DTessFaceDataTriangleFan   0x0004

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

#define kA3DTessFaceDataTriangleStripe   0x0008

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 }

◆ kA3DTessFaceDataTriangleOneNormal

#define kA3DTessFaceDataTriangleOneNormal   0x0020

Unique triangle with one normal.

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

{ Normal, Point1, Point2, Point3 }

◆ kA3DTessFaceDataTriangleFanOneNormal

#define kA3DTessFaceDataTriangleFanOneNormal   0x0040

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

#define kA3DTessFaceDataTriangleStripeOneNormal   0x0080

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 kA3DTessFaceDataTriangleFan.

◆ kA3DTessFaceDataTriangleTextured

#define kA3DTessFaceDataTriangleTextured   0x0200

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

#define kA3DTessFaceDataTriangleFanTextured   0x0400

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

#define kA3DTessFaceDataTriangleStripeTextured   0x0800

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
}

◆ kA3DTessFaceDataTriangleOneNormalTextured

#define kA3DTessFaceDataTriangleOneNormalTextured   0x2000

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

#define kA3DTessFaceDataTriangleFanOneNormalTextured   0x4000

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

#define kA3DTessFaceDataTriangleStripeOneNormalTextured   0x8000

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.