
#############################
A3DGraphTextureDefinitionData
#############################

.. c:struct:: A3DGraphTextureDefinitionData

   TextureDefinitionData structure. 
   
   
      2.0
   
   
   
   The picture index refers to a picture in the picture array of the global data.
   
   The :c:member:`m_ucTextureDimension <A3DGraphTextureDefinitionData.m_ucTextureDimension>` member represents the dimension of the image. Possible values are 1, 2 or 3 (1 and 3 are reserved for future use)
   
   The :c:member:`m_uiMappingAttributes <A3DGraphTextureDefinitionData.m_uiMappingAttributes>` member is a bitmask that defines the procedure to apply the texture (see :ref:`Texture Mapping Attribute <group__a3d__texturemappingattribute>`\ ). This information can be completed with additional information such as intensity and involved color/alpha components.
   
   The :c:member:`m_pdMappingAttributesIntensity <A3DGraphTextureDefinitionData.m_pdMappingAttributesIntensity>` member is an array of values that specify texture intensity values. Each of these members can be set to 0 or to the number of procedures deduced from the texture mapping attributes. If 0, intensity is set to 1. Otherwise, values should be in the range [0.0,1.0] and correspond to each non-zero bit of texture mapping attributes respectively. Same for the texture mapping attributes components, for which the default value is :c:macro:`~kA3DTextureMappingComponentsRgba` (:ref:`Texture Mapping Attribute Components <group__a3d__texture__mapping__attributes__components>`\ ).
   
   Multiple procedures for texture application are reserved for future use. Therefore :c:member:`A3DGraphTextureDefinitionData::m_pdMappingAttributesIntensity <A3DGraphTextureDefinitionData.m_pdMappingAttributesIntensity>` and :c:member:`A3DGraphTextureDefinitionData::m_pucMappingAttributesComponents <A3DGraphTextureDefinitionData.m_pucMappingAttributesComponents>` can contain at most one element:
   
   Here is some pseudocode that sets attribute values that are within the current limitation in texture mapping settings: 
   
   
   ::
   
      myGraphTextureDefinition.m_uiMappingAttributes=kA3DTextureMappingDiffuse;
      
      //Foreachbitof\refm_uiMappingAttributeswithavalueof1,intensityare1.0bydefault
      myGraphTextureDefinition.m_uiMappingAttributesIntensitySize=0;
      
      //Foreachbitof\refm_uiMappingAttributeswithavalueof1,componentsare\refkA3DTextureMappingComponentsRgbabydefault
      myGraphTextureDefinition.m_uiMappingAttributesComponentsSize=0;
   
    Or:
   
   
   ::
   
      myGraphTextureDefinition.m_uiMappingAttributes=kA3DTextureMappingDiffuse;
      myGraphTextureDefinition.m_uiMappingAttributesIntensitySize=1;
      myGraphTextureDefinition.m_pdMappingAttributesIntensity[0]=1.0;
      myGraphTextureDefinition.m_uiMappingAttributesComponentsSize=1;
      myGraphTextureDefinition.m_pucMappingAttributesComponents[0]=kA3DTextureMappingComponentsRgba;
   
   For information on values for the :c:member:`m_dAlphaTestReference <A3DGraphTextureDefinitionData.m_dAlphaTestReference>` member or the :c:member:`m_dAlphaTestReference <A3DGraphTextureDefinitionData.m_dAlphaTestReference>` member, see :ref:`Texture Alpha Test <group__a3d__texturealphatest>`\ . The latter member is a threshold value for the alpha test, which is used in conjunction with the :c:member:`m_dAlphaTestReference <A3DGraphTextureDefinitionData.m_dAlphaTestReference>` member.
   
   
      :c:type:`~A3DGlobal` 
   
   
   
   Index
   =====
   
   .. rubric:: Variables
   
   
   .. rst-class:: api-xref-list
   
   
   * :c:member:`~A3DGraphTextureDefinitionData.m_uiPictureIndex`
   * :c:member:`~A3DGraphTextureDefinitionData.m_ucTextureDimension`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eMappingType`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eMappingOperator`
   * :c:member:`~A3DGraphTextureDefinitionData.m_pOperatorTransfo`
   * :c:member:`~A3DGraphTextureDefinitionData.m_uiMappingAttributes`
   * :c:member:`~A3DGraphTextureDefinitionData.m_uiMappingAttributesIntensitySize`
   * :c:member:`~A3DGraphTextureDefinitionData.m_pdMappingAttributesIntensity`
   * :c:member:`~A3DGraphTextureDefinitionData.m_uiMappingAttributesComponentsSize`
   * :c:member:`~A3DGraphTextureDefinitionData.m_pucMappingAttributesComponents`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eTextureFunction`
   * :c:member:`~A3DGraphTextureDefinitionData.m_dRed`
   * :c:member:`~A3DGraphTextureDefinitionData.m_dGreen`
   * :c:member:`~A3DGraphTextureDefinitionData.m_dBlue`
   * :c:member:`~A3DGraphTextureDefinitionData.m_dAlpha`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eBlend_src_RGB`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eBlend_dst_RGB`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eBlend_src_Alpha`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eBlend_dst_Alpha`
   * :c:member:`~A3DGraphTextureDefinitionData.m_ucTextureApplyingMode`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eTextureAlphaTest`
   * :c:member:`~A3DGraphTextureDefinitionData.m_dAlphaTestReference`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eTextureWrappingModeS`
   * :c:member:`~A3DGraphTextureDefinitionData.m_eTextureWrappingModeT`
   * :c:member:`~A3DGraphTextureDefinitionData.m_pTextureTransfo`
   
   



.. rst-class:: kind-group kind-variable

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


.. c:member:: A3DUns32 A3DGraphTextureDefinitionData.m_uiPictureIndex

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      Picture index in global data :c:type:`~A3DGlobal`\ . 
      



.. c:member:: A3DUns8 A3DGraphTextureDefinitionData.m_ucTextureDimension

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns8`
      
      Dimension of the texture. 
      



.. c:member:: A3DETextureMappingType A3DGraphTextureDefinitionData.m_eMappingType

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureMappingType`
      
      Mapping type. 
      



.. c:member:: A3DETextureMappingOperator A3DGraphTextureDefinitionData.m_eMappingOperator

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureMappingOperator`
      
      Mapping operator. 
      



.. c:member:: A3DMiscCartesianTransformation* A3DGraphTextureDefinitionData.m_pOperatorTransfo

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DMiscCartesianTransformation`\ *
      
      Optional mapping transformation. 
      



.. c:member:: A3DUns32 A3DGraphTextureDefinitionData.m_uiMappingAttributes

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      Defines a method to map a texture. 
      
      See explanations above. 
      
      
         :ref:`Texture Mapping Attribute <group__a3d__texturemappingattribute>` 
      
      



.. c:member:: A3DUns32 A3DGraphTextureDefinitionData.m_uiMappingAttributesIntensitySize

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      The size of :c:member:`m_pdMappingAttributesIntensity <A3DGraphTextureDefinitionData.m_pdMappingAttributesIntensity>`\ . 
      



.. c:member:: A3DDouble* A3DGraphTextureDefinitionData.m_pdMappingAttributesIntensity

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`\ *
      
      Intensities for attributes. 
      



.. c:member:: A3DUns32 A3DGraphTextureDefinitionData.m_uiMappingAttributesComponentsSize

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns32`
      
      The size of :c:member:`m_pucMappingAttributesComponents <A3DGraphTextureDefinitionData.m_pucMappingAttributesComponents>`\ . 
      



.. c:member:: A3DUns8* A3DGraphTextureDefinitionData.m_pucMappingAttributesComponents

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns8`\ *
      
      Components for attributes. 
      



.. c:member:: A3DETextureFunction A3DGraphTextureDefinitionData.m_eTextureFunction

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureFunction`
      
      Defines how to paint a texture on the surface being rendered. 
      
      
         :ref:`Texture Function <group__a3d__texturefunction>` 
      
      



.. c:member:: A3DDouble A3DGraphTextureDefinitionData.m_dRed

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Reserved for future use. 
      
      Blend color component in the range [0.0,1.0]. 
      



.. c:member:: A3DDouble A3DGraphTextureDefinitionData.m_dGreen

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Reserved for future use. 
      
      Blend color component in the range [0.0,1.0]. 
      



.. c:member:: A3DDouble A3DGraphTextureDefinitionData.m_dBlue

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Reserved for future use. 
      
      Blend color component in the range [0.0,1.0]. 
      



.. c:member:: A3DDouble A3DGraphTextureDefinitionData.m_dAlpha

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Reserved for future use. 
      
      Blend alpha component in the range [0.0,1.0]. 
      



.. c:member:: A3DETextureBlendParameter A3DGraphTextureDefinitionData.m_eBlend_src_RGB

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureBlendParameter`
      
      Reserved for future use. 
      
      
         :ref:`Texture Blend Parameter <group__a3d__textureblendparameter>` 
      
      



.. c:member:: A3DETextureBlendParameter A3DGraphTextureDefinitionData.m_eBlend_dst_RGB

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureBlendParameter`
      
      Reserved for future use. 
      
      
         :ref:`Texture Blend Parameter <group__a3d__textureblendparameter>` 
      
      



.. c:member:: A3DETextureBlendParameter A3DGraphTextureDefinitionData.m_eBlend_src_Alpha

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureBlendParameter`
      
      Reserved for future use. 
      
      
         :ref:`Texture Blend Parameter <group__a3d__textureblendparameter>` 
      
      



.. c:member:: A3DETextureBlendParameter A3DGraphTextureDefinitionData.m_eBlend_dst_Alpha

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureBlendParameter`
      
      Reserved for future use. 
      
      
         :ref:`Texture Blend Parameter <group__a3d__textureblendparameter>` 
      
      



.. c:member:: A3DUns8 A3DGraphTextureDefinitionData.m_ucTextureApplyingMode

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DUns8`
      
      Defines special applying modes of a texture :ref:`Texture Applying Mode <group__a3d__textureapplyingmode>`\ . 
      



.. c:member:: A3DETextureAlphaTest A3DGraphTextureDefinitionData.m_eTextureAlphaTest

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureAlphaTest`
      
      Reserved for future use. 
      
      Defines how to use Alpha test. 
      
      
         :ref:`Texture Alpha Test <group__a3d__texturealphatest>` 
      
      



.. c:member:: A3DDouble A3DGraphTextureDefinitionData.m_dAlphaTestReference

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Threshold value for alpha test; used in conjunction with :c:member:`m_eTextureAlphaTest <A3DGraphTextureDefinitionData.m_eTextureAlphaTest>`\ . 
      



.. c:member:: A3DETextureWrappingMode A3DGraphTextureDefinitionData.m_eTextureWrappingModeS

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureWrappingMode`
      
      Repeating mode first direction. 
      
      
         :ref:`Texture Wrapping Mode <group__a3d__texturewrappingmode>` 
      
      



.. c:member:: A3DETextureWrappingMode A3DGraphTextureDefinitionData.m_eTextureWrappingModeT

      .. rst-class:: sig-pretty-signature
      
         | :c:enum:`~A3DETextureWrappingMode`
      
      Repeating mode second direction. 
      
      
         :ref:`Texture Wrapping Mode <group__a3d__texturewrappingmode>` 
      
      



.. c:member:: A3DGraphTextureTransformation* A3DGraphTextureDefinitionData.m_pTextureTransfo

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DGraphTextureTransformation`\ *
      
      Optional texture transformation. 
      
      
         :ref:`Texture Transformation <group__a3d__texturetransformation>` 
      
      




