.. _group__a3d__feature__data__basic__module:

#####
Basic
#####

The basic features are these defined with one of the following family types kA3DFamily_DoubleData, kA3DFamily_IntegerData, kA3DFamily_StringData. 


 These embed basic data: a double, an array of int.. And the sub Type of the feature will indicate what data it is. 
 For example, uv parameters will be stored in a feature with type kA3DFamily_DoubleData/kA3DFRMDoubleUVParameter, with two double inside.


::

   A3DFRMFeatureDatasFeatureData;
   A3D_INITIALIZE_DATA(A3DFRMFeatureData,sFeatureData);
   A3DFRMFeatureGet(pFeatureUV,&sFeatureData);
   if(sFeatureData.m_sType.m_eFamily==kA3DFamily_DoubleData
   &&sFeatureData.m_sType.m_uiType==kA3DFRMDoubleUVParameter)
   {
   if(sFeatureData.m_eDataType==kA3DFRMDataDouble)
   {
   A3D_INITIALIZE_DATA(A3DFRMDoubleData,sDoubleData);
   A3DFRMDoubleDataGet(pFeatureUV,&sDoubleData);
   if(sDoubleData.m_uiValuesSize==2)
   {
   doubledU=sDoubleData.m_pdValues[0];
   doubledV=sDoubleData.m_pdValues[1];
   //...
   }
   A3DFRMDoubleDataGet(A3D_NULL_HANDLE,&sDoubleData);
   }
   }
   //...
   A3DFRMFeatureGet(A3D_NULL_HANDLE,&sFeatureData);

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

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


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


* :c:enum:`~A3DEFRMDoubleDataType`
* :c:enum:`~A3DEFRMIntegerDataType`
* :c:enum:`~A3DEFRMStringDataType`

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

   ../enums/A3DEFRMDoubleDataType
   ../enums/A3DEFRMIntegerDataType
   ../enums/A3DEFRMStringDataType


