.. _group__a3d__tessellation__module:

###################
Tessellation Module
###################

Creates and accesses tessellation entities.

This module describes how to access and encode tessellation for a variety of entities. It also provides information about tessellations, associated textures, and markup representations.


Usage
=====

Tessellation entities can appear in the ``pTessBase``\ member of all types of representation items, except :c:type:`~A3DRiCoordinateSystem`\ and :c:type:`~A3DRiPointSet`\ .

If your application parses PRC content, you must develop dedicated functions to parse the base tessellation data and to parse each type of tessellation entity. The following sample code demonstrates the following basic steps:


1. Use the :c:func:`~A3DTessBaseGet`\ function to get the tessellation base data.
2. Use the :c:func:`~A3DEntityGetType`\ function to determine the specific tessellation type.
3. Invoke a custom function to parse the entity contents.



Sample code
===========


::

   A3DRiRepresentationItemDatasRiData;
   /*CalltheA3DRiRepresentationItemGetfunctiontogettheA3DRiRepresentationItemData*/
   if(sRiData.m_pTessBase!=A3D_NULL_HANDLE)
   {
   A3DEEntityTypeeType;
   if(A3DEntityGetType(sRiData.m_pTessBase,&eType)==A3D_SUCCESS)
   {
   switch(eType)
   {
   casekA3DTypeTess3D:
   {
   A3DTess3D*pTess3D=(A3DTess3D*)sRiData.m_pTessBase;
   /*Callcorrespondingfunction...*/
   break;
   }
   casekA3DTypeTess3DWire:
   {
   A3DTess3DWire*pTess3DWire=(A3DTess3DWire*)sRiData.m_pTessBase;
   /*Callcorrespondingfunction...*/
   break;
   }
   casekA3DTypeTessMarkup:
   {
   A3DTessMarkup*pTessMarkup=(A3DTessMarkup*)sRiData.m_pTessBase;
   /*Callcorrespondingfunction...*/
   break;
   }
   default:
   /*Nothingelse*/
   break;
   }
   }
   }


   :c:type:`~A3DTess3D`



   :c:type:`~A3DTess3DWire`



   :c:type:`~A3DTessMarkup`



**Parameters**


   **pA3DRepItem**\ : The representation item to tessellate.

   **pTessellationParametersData**\ : The tessellation parameters.


**Returns**


   A3D_SUCCESS on success or an error code on failure.


.. rst-class:: kind-group kind-topic

.. rubric:: Topics
   :class: kind-group-title


.. rst-class:: api-xref-list


* :ref:`Tessellation Base <group__a3d__tessellation__base>`
* :ref:`Tess3D <group__a3d__tess3d>`
* :ref:`Tess3DWire <group__a3d__tess3dwire>`
* :ref:`Tessellation for Markups <group__a3d__tessmarkup>`

.. rst-class:: kind-group kind-record

.. rubric:: Structures
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:struct:`~A3DTessellationParametersData`

.. rst-class:: kind-group kind-enumeration

.. rubric:: Enumerations
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:enum:`~A3DETessellationAlgorithm`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DRiRepresentationItemComputeTessellation2`
* :c:func:`~A3DAsmModelFileComputeTessellation2`

.. toctree::
   :maxdepth: 1
   :hidden:

   a3d_tessellation_base
   a3d_tess3d
   a3d_tess3dwire
   a3d_tessmarkup
   ../structures/A3DTessellationParametersData
   ../enums/A3DETessellationAlgorithm
   ../functions/A3DRiRepresentationItemComputeTessellation2
   ../functions/A3DAsmModelFileComputeTessellation2


