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
#define kA3DTessFaceDataTriangle 0x0002 |
Unique triangle.
One triangle described using 6
indexes forming 3
`{Normal, Point} pairs:
{ Normal1, Point1, Normal2, Point2, Normal3, Point3 }
#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 }
#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 }
#define kA3DTessFaceDataTriangleOneNormal 0x0020 |
Unique triangle with one normal.
Unique triangle with one normal. It is described using 4 indices:
{ Normal, Point1, Point2, Point3 }
#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.
#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.
#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, }
#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 }
#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 }
#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, }
#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.
#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.