# 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 `A3DTessFaceData`instance. It’s specified in the `A3DTessFaceData::m_usUsedEntitiesFlags`member.

> 2.0

## Index

Preprocessor Definitions

- `kA3DTessFaceDataPolyface`
- `kA3DTessFaceDataTriangle`
- `kA3DTessFaceDataTriangleFan`
- `kA3DTessFaceDataTriangleStripe`
- `kA3DTessFaceDataPolyfaceOneNormal`
- `kA3DTessFaceDataTriangleOneNormal`
- `kA3DTessFaceDataTriangleFanOneNormal`
- `kA3DTessFaceDataTriangleStripeOneNormal`
- `kA3DTessFaceDataPolyfaceTextured`
- `kA3DTessFaceDataTriangleTextured`
- `kA3DTessFaceDataTriangleFanTextured`
- `kA3DTessFaceDataTriangleStripeTextured`
- `kA3DTessFaceDataPolyfaceOneNormalTextured`
- `kA3DTessFaceDataTriangleOneNormalTextured`
- `kA3DTessFaceDataTriangleFanOneNormalTextured`
- `kA3DTessFaceDataTriangleStripeOneNormalTextured`

Preprocessor Definitions

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

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Exchange in your own language, or choose a sample question below to start a conversation:

What is HOOPS Exchange?
What are the latest release notes for HOOPS Exchange?
How do I start evaluating HOOPS Exchange?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...