<?xml version="1.0"?>
<implementation render="Generic">
  <language name="Protein" version="2.0"/>
  <api name="Protein" version="2.0"/>
  <root_bindings name="root"/>

  <constants>
    <float   name="glazing_diffuse_image_fade"             val="1."/>
    <float   name="glazing_reflectivity_at_90deg"          val="1.0"/>
    <float   name="glazing_glossiness"                     val="1.0"/>
    <boolean name="glazing_is_metal"                       val="false"/>
    <float   name="glazing_transparency"                   val="0.5"/>
    <float   name="glazing_transparency_image_fade"        val="1."/>
    <float   name="glazing_refraction_index"               val="1."/>
    <float   name="glazing_refraction_translucency_weight" val="0.0"/>
    <float   name="glazing_cutout_opacity"                 val="1.0"/>
    <boolean name="glazing_backface_cull"                  val="false"/>
    <float   name="glazing_self_illum_luminance"           val="0.0"/>
    <float   name="glazing_self_illum_color_temperature"   val="0.0"/>
    <integer name="glazing_reflection_glossy_samples"      val="1"/>
    <integer name="glazing_refraction_glossy_samples"      val="1"/>
  </constants>

  <operator function="GlazingBrdf0DegreeReflBOF" name="brdf_0_degree_refl">
    <map_interface source="glazing_reflectance" destination="reflectance"/>
  </operator>

  <operator function="GlazingRefrColorBOF" name="refr_color">
    <map_interface source="glazing_no_levels" destination="no_levels"/>
    <map_interface source="glazing_transmittance_color" destination="transmittance_color"/>
    <map_interface source="glazing_transmittance_map" destination="transmittance_map"/>
  </operator>

  <bindings target="shader" name="root">
    <map_interface source="glazing_color_by_object"                destination="color_by_object"/>
    <map_Bindings  source="transmittance_map"                      destination="generic_diffuse"/>
    <map_operator  source="refr_color"                             destination="generic_diffuse"/>   
    <map_constant  source="glazing_diffuse_image_fade"             destination="generic_diffuse_image_fade"/>
    <map_operator  source="brdf_0_degree_refl"                     destination="generic_reflectivity_at_0deg"/>
    <map_constant  source="glazing_reflectivity_at_90deg"          destination="generic_reflectivity_at_90deg"/>
    <map_constant  source="glazing_glossiness"                     destination="generic_glossiness"/>
    <map_constant  source="glazing_is_metal"                       destination="generic_is_metal"/>
    <map_constant  source="glazing_transparency"                   destination="generic_transparency"/>
    <map_constant  source="glazing_transparency_image_fade"        destination="generic_transparency_image_fade"/>
    <map_constant  source="glazing_refraction_index"               destination="generic_refraction_index"/>
    <map_constant  source="glazing_refraction_translucency_weight" destination="generic_refraction_translucency_weight"/>
    <map_constant  source="glazing_cutout_opacity"                 destination="generic_cutout_opacity"/>
    <map_constant  source="glazing_backface_cull"                  destination="generic_backface_cull"/>
    <map_constant  source="glazing_self_illum_luminance"           destination="generic_self_illum_luminance"/>
    <map_constant  source="glazing_self_illum_color_temperature"   destination="generic_self_illum_color_temperature"/>
    <map_constant  source="glazing_reflection_glossy_samples"      destination="generic_reflection_glossy_samples"/>
    <map_constant  source="glazing_refraction_glossy_samples"      destination="generic_refraction_glossy_samples"/>
    <map_interface source="glazing_refl_depth"                     destination="generic_refl_depth"/>
    <map_interface source="glazing_refr_depth"                     destination="generic_refr_depth"/>
    <map_interface source="common_Tint_toggle"                     destination="common_Tint_toggle"/>
    <map_interface source="common_Tint_color"                      destination="common_Tint_color"/> 
  </bindings>

  <operator function="GlazingTransmittanceMapSpiderBOF" name="transmittance_map_property_name">
    <map_interface source="glazing_transmittance_color" destination="transmittance_color"/>
    <map_interface source="glazing_transmittance_map"   destination="transmittance_map"/>
  </operator>

  <bindings target="transmittance_map" name="transmittance_map">
    <map_operator source="transmittance_map_property_name" destination="property_name" />
  </bindings>
  
</implementation>
