.. role:: clio-optional
   :class: clio-flag clio-flag-optional


#########
IMaterial
#########

.. js:class:: wv.IMaterial

   An interface describing a material. The input and output of material operations
   
   
   Index
   =====
   
   .. rubric:: Properties
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:data:`~wv.IMaterial.ambientColor`
   * :js:data:`~wv.IMaterial.colorMap`
   * :js:data:`~wv.IMaterial.emissiveColor`
   * :js:data:`~wv.IMaterial.emissiveMap`
   * :js:data:`~wv.IMaterial.faceColor`
   * :js:data:`~wv.IMaterial.isPbr`
   * :js:data:`~wv.IMaterial.lineColor`
   * :js:data:`~wv.IMaterial.linePattern`
   * :js:data:`~wv.IMaterial.linePatternLength`
   * :js:data:`~wv.IMaterial.linePatternLengthUnit`
   * :js:data:`~wv.IMaterial.metallic`
   * :js:data:`~wv.IMaterial.metallicRoughnessMap`
   * :js:data:`~wv.IMaterial.normalMap`
   * :js:data:`~wv.IMaterial.occlusionMap`
   * :js:data:`~wv.IMaterial.opacity`
   * :js:data:`~wv.IMaterial.pointColor`
   * :js:data:`~wv.IMaterial.roughness`
   * :js:data:`~wv.IMaterial.specularColor`
   * :js:data:`~wv.IMaterial.specularIntensity`
   * :js:data:`~wv.IMaterial.textureFlags`
   * :js:data:`~wv.IMaterial.textureMatrix`
   
   



.. rst-class:: kind-group kind-properties

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


.. js:data:: wv.IMaterial.ambientColor

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | ambientColor: :js:class:`Color <wv.Color>`
      
      Ambient light color contribution
      



.. js:data:: wv.IMaterial.colorMap

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | colorMap: :js:data:`ImageId <wv.ImageId>`
      
      Base color texture map
      



.. js:data:: wv.IMaterial.emissiveColor

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | emissiveColor: :js:class:`Color <wv.Color>`
      
      Color emitted by the material
      



.. js:data:: wv.IMaterial.emissiveMap

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | emissiveMap: :js:data:`ImageId <wv.ImageId>`
      
      Emissive texture map
      



.. js:data:: wv.IMaterial.faceColor

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | faceColor: :js:class:`Color <wv.Color>`
      
      Color applied to face geometry
      



.. js:data:: wv.IMaterial.isPbr

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | isPbr: *boolean*
      
      Whether this material uses physically-based rendering (PBR)
      



.. js:data:: wv.IMaterial.lineColor

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | lineColor: :js:class:`Color <wv.Color>`
      
      Color applied to line geometry
      



.. js:data:: wv.IMaterial.linePattern

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | linePattern: *number*\ []
      
      Array of dash/gap lengths defining line pattern
      



.. js:data:: wv.IMaterial.linePatternLength

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | linePatternLength: *number*
      
      Total length of the line pattern
      



.. js:data:: wv.IMaterial.linePatternLengthUnit

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | linePatternLengthUnit: :js:data:`LinePatternLengthUnit <wv.LinePatternLengthUnit>`
      
      Unit of measurement for line pattern length
      



.. js:data:: wv.IMaterial.metallic

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | metallic: *number*
      
      Metallic factor for PBR materials (0.0 = dielectric, 1.0 = metallic)
      



.. js:data:: wv.IMaterial.metallicRoughnessMap

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | metallicRoughnessMap: :js:data:`ImageId <wv.ImageId>`
      
      Metallic and roughness values texture map
      



.. js:data:: wv.IMaterial.normalMap

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | normalMap: :js:data:`ImageId <wv.ImageId>`
      
      Normal map for surface detail
      



.. js:data:: wv.IMaterial.occlusionMap

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | occlusionMap: :js:data:`ImageId <wv.ImageId>`
      
      Ambient occlusion texture map
      



.. js:data:: wv.IMaterial.opacity

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | opacity: *number*
      
      Material opacity (0.0 = transparent, 1.0 = opaque)
      



.. js:data:: wv.IMaterial.pointColor

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | pointColor: :js:class:`Color <wv.Color>`
      
      Color applied to point geometry
      



.. js:data:: wv.IMaterial.roughness

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | roughness: *number*
      
      Surface roughness for PBR materials (0.0 = mirror, 1.0 = completely rough)
      



.. js:data:: wv.IMaterial.specularColor

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | specularColor: :js:class:`Color <wv.Color>`
      
      Color of specular highlights
      



.. js:data:: wv.IMaterial.specularIntensity

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | specularIntensity: *number*
      
      Intensity of specular reflections
      



.. js:data:: wv.IMaterial.textureFlags

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | textureFlags: :js:class:`TextureFlags <wv.Sc.TextureFlags>`
      



.. js:data:: wv.IMaterial.textureMatrix

      .. rst-class:: clio-flags
      
         :clio-optional:`optional`
      
      .. rst-class:: sig-pretty-signature
      
         | textureMatrix: :js:class:`Matrix <wv.Matrix>`
      




