
#############################
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>`
      
      




