<?xml version="1.0"?>  
    <implementation render="MentalImage">
		<language name="MentalRaySL" version="3.6"/>
		<api name="MentalRay" version="3.6"/>
		<root_bindings name="root"/>
	  
	  
    <!-- Operators -->

	<operator function="MultiplyDistOp" name="ProductU">
		<map_interface source="texture_RealWorldScaleX" destination="X"/>
		<map_interface source="texture_UVScale" destination="Y"/>
	</operator>
	
	<operator function="MultiplyDistOp" name="ProductV">
		<map_interface source="texture_RealWorldScaleY" destination="X"/>
		<map_interface source="texture_UVScale" destination="Y"/>
	</operator>
	
	<operator function="AddDistOp" name="SumOffsetU">
		<map_interface source="texture_RealWorldOffsetX" destination="X"/>
		<map_interface source="texture_UOffset" destination="Y"/>
	</operator>

	<operator function="AddDistOp" name="SumOffsetV">
		<map_interface source="texture_RealWorldOffsetY" destination="X"/>
		<map_interface source="texture_VOffset" destination="Y"/>
	</operator>

	<operator function="DegreeToRadian" name="DegreeToRadian">
		<map_interface source="texture_WAngle" destination="X"/>
	</operator>

    <constants>
        <integer name="gradient_global_interpolation" val="0"/> <!--Custom interpolation-->
    </constants>

    <!-- Phenomenon interface binding -->
	<bindings target="shader" name="root">
		<desc val="mi.phenomenon/include/adsk_Map_SimpleGradient.mi" tag="adsk_Map_Simple_Gradient_V2"/>

		<map_interface source="gradient_type" destination="m.gradient_type"/>
		<map_constant source="gradient_global_interpolation" destination="m.gradient_interpolation"/>

		<map_interface source="gradient_noise" destination="m.noise_type"/>
		<map_interface source="gradient_noise_amount" destination="m.noise_amount"/>
		<map_interface source="gradient_noise_phase" destination="m.noise_phase"/>
		<map_interface source="gradient_noise_size" destination="m.noise_size"/>
		<map_interface source="gradient_noise_levels" destination="m.noise_levels"/>
		<map_interface source="gradient_noise_low" destination="m.noise_low"/>
		<map_interface source="gradient_noise_high" destination="m.noise_high"/>
		<map_interface source="gradient_noise_smooth" destination="m.noise_smooth"/>

        <map_interface source="gradient_Position" destination="f.position"/>
        <map_interface source="gradient_interpolation" destination="f.interpolation"/>
        <map_interface source="gradient_Color" destination="f.color"/>

        <map_operator source="SumOffsetU" destination="u.UOffset"/>
		<map_operator source="SumOffsetV" destination="u.VOffset"/>
		
  
     		<map_interface source="texture_MapChannel_ID_Advanced" destination="u.MapChannel"/>
     		<map_interface source="texture_MapChannel_UVWSource_Advanced" destination="u.UVWSource"/>

		<map_operator source="DegreeToRadian" destination="u.WAngle"/>
		<map_operator source="ProductU" destination="u.UScale"/>
		<map_operator source="ProductV" destination="u.VScale"/>
		<map_interface source="texture_URepeat" destination="u.UWrap"/>
		<map_interface source="texture_VRepeat" destination="u.VWrap"/>
	</bindings>
	  
    </implementation>