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:c:struct:~A3DTessFaceDatainstance. It’s specified in the:c:member:A3DTessFaceData::m_usUsedEntitiesFlags <A3DTessFaceData.m_usUsedEntitiesFlags>member.
2.0
Index
Preprocessor Definitions
kA3DTessFaceDataPolyfacekA3DTessFaceDataTrianglekA3DTessFaceDataTriangleFankA3DTessFaceDataTriangleStripekA3DTessFaceDataPolyfaceOneNormalkA3DTessFaceDataTriangleOneNormalkA3DTessFaceDataTriangleFanOneNormalkA3DTessFaceDataTriangleStripeOneNormalkA3DTessFaceDataPolyfaceTexturedkA3DTessFaceDataTriangleTexturedkA3DTessFaceDataTriangleFanTexturedkA3DTessFaceDataTriangleStripeTexturedkA3DTessFaceDataPolyfaceOneNormalTexturedkA3DTessFaceDataTriangleOneNormalTexturedkA3DTessFaceDataTriangleFanOneNormalTexturedkA3DTessFaceDataTriangleStripeOneNormalTextured
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:c:macro:~kA3DTessFaceDataNormalSingleflag 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:c:macro:~kA3DTessFaceDataTriangleFan.
-
kA3DTessFaceDataTriangleStripeOneNormal Triangle strip where the normal is defined either globally or per-point.
The normal is globally defined if:c:macro:~kA3DTessFaceDataNormalSingleflag 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:c:macro:~kA3DTessFaceDataTriangleStripe.
-
kA3DTessFaceDataPolyfaceTextured Reserved for future use.
-
kA3DTessFaceDataTriangleTextured Unique triangle with texture coordinates.
This layout is similar to:c:macro:~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:c:member:A3DTessFaceData::m_uiTextureCoordIndexesSize <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:c:macro:~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:c:member:A3DTessFaceData::m_uiTextureCoordIndexesSize <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:c:macro:~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:c:member:A3DTessFaceData::m_uiTextureCoordIndexesSize <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:c:macro:~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:c:member:A3DTessFaceData::m_uiTextureCoordIndexesSize <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:c:macro:~kA3DTessFaceDataTriangleFanOneNormalwith the addition of texture coordinates indices before the point index.
The normal is globally defined if:c:macro:~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:c:member:A3DTessFaceData::m_uiTextureCoordIndexesSize <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:c:macro:~kA3DTessFaceDataNormalSingleis not set, the layout is the same as:c:macro:~kA3DTessFaceDataTriangleFanTextured.
-
kA3DTessFaceDataTriangleStripeOneNormalTextured Triangle strip with texture coordinates where the normal is defined either globally or per-point.
This layout is similar to:c:macro:~kA3DTessFaceDataTriangleStripeOneNormalwith the addition of texture coordinates indices before the point index.
The normal is globally defined if:c:macro:~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:c:member:A3DTessFaceData::m_uiTextureCoordIndexesSize <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:c:macro:~kA3DTessFaceDataNormalSingleis not set, the layout is the same as:c:macro:~kA3DTessFaceDataTriangleStripeTextured.