OpenShadingLanguage 1.00
# Compiled by oslc 1.5.10
shader node_hair_bsdf
param	color	Color	0.80000001 0.80000001 0.80000001 		 %read{17,31} %write{2147483647,-1}
param	string	component	"Reflection" 		 %read{13,24} %write{2147483647,-1}
param	float	Offset	0 		 %read{26,29} %write{2147483647,-1}
param	float	RoughnessU	0.1 		 %read{2,2} %write{2147483647,-1}
param	float	RoughnessV	1 		 %read{5,5} %write{2147483647,-1}
param	normal	Normal	0 0 0 		 %read{16,30} %write{0,0}
oparam	closure color	BSDF			 %read{2147483647,-1} %write{12,31}
global	normal	Ng	 %read{0,0} %write{2147483647,-1}
global	vector	dPdu	 %read{27,30} %write{2147483647,-1}
global	vector	dPdv	 %read{15,18} %write{2147483647,-1}
local	float	IsStrand	 %read{8,8} %write{7,7}
local	float	roughnessh	 %read{16,30} %write{3,3}
local	float	roughnessv	 %read{16,30} %write{6,6}
const	float	$const1	0.001		 %read{3,6} %write{2147483647,-1}
const	float	$const2	1		 %read{2,5} %write{2147483647,-1}
const	string	$const3	"clamp"		 %read{1,4} %write{2147483647,-1}
temp	float	$tmp1	 %read{3,3} %write{2,2}
temp	float	$tmp2	 %read{6,6} %write{5,5}
temp	int	$tmp3	 %read{2147483647,-1} %write{7,7}
const	string	$const4	"geom:is_curve"		 %read{7,7} %write{2147483647,-1}
temp	int	$tmp4	 %read{9,9} %write{8,8}
const	float	$const5	0		 %read{8,19} %write{2147483647,-1}
temp	int	$tmp5	 %read{11,11} %write{10,10}
const	string	$const6	"transparent"		 %read{12,23} %write{2147483647,-1}
const	string	$const7	"Reflection"		 %read{13,24} %write{2147483647,-1}
temp	int	$tmp6	 %read{14,14} %write{13,13}
temp	closure color	$tmp7	 %read{17,17} %write{16,16}
temp	vector	$tmp8	 %read{16,16} %write{15,15}
const	string	$const8	"hair_reflection"		 %read{16,27} %write{2147483647,-1}
temp	closure color	$tmp9	 %read{20,20} %write{19,19}
temp	vector	$tmp10	 %read{19,19} %write{18,18}
const	string	$const9	"hair_transmission"		 %read{19,30} %write{2147483647,-1}
temp	int	$tmp11	 %read{22,22} %write{21,21}
temp	int	$tmp12	 %read{25,25} %write{24,24}
temp	closure color	$tmp13	 %read{28,28} %write{27,27}
temp	float	$tmp14	 %read{27,27} %write{26,26}
temp	closure color	$tmp15	 %read{31,31} %write{30,30}
temp	float	$tmp16	 %read{30,30} %write{29,29}
code Normal
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:27
# 	normal Normal = Ng,
	assign		Normal Ng 	%filename{"intern/cycles/kernel/shaders/node_hair_bsdf.osl"} %line{27} %argrw{"wr"}
code ___main___
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:31
# 	float roughnessh = clamp(RoughnessU, 0.001, 1.0);
	functioncall	$const3 4 	%filename{"intern/cycles/kernel/shaders/node_hair_bsdf.osl"} %line{31} %argrw{"r"}
# intern/cycles/kernel/shaders/stdosl.h:144
# float hypot (float a, float b) { return sqrt (a*a + b*b); }
	min		$tmp1 RoughnessU $const2 	%filename{"intern/cycles/kernel/shaders/stdosl.h"} %line{144} %argrw{"wrr"}
	max		roughnessh $tmp1 $const1 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:32
# 	float roughnessv = clamp(RoughnessV, 0.001, 1.0);
	functioncall	$const3 7 	%filename{"intern/cycles/kernel/shaders/node_hair_bsdf.osl"} %line{32} %argrw{"r"}
# intern/cycles/kernel/shaders/stdosl.h:144
# PERCOMP1 (inversesqrt)
	min		$tmp2 RoughnessV $const2 	%filename{"intern/cycles/kernel/shaders/stdosl.h"} %line{144} %argrw{"wrr"}
	max		roughnessv $tmp2 $const1 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:33
# 	getattribute("geom:is_curve", IsStrand);
	getattribute	$tmp3 $const4 IsStrand 	%filename{"intern/cycles/kernel/shaders/node_hair_bsdf.osl"} %line{33} %argrw{"wrw"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:35
# 	if (!IsStrand) {
	eq		$tmp4 IsStrand $const5 	%line{35} %argrw{"wrr"}
	if		$tmp4 21 32 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:36
# 		if (backfacing()) {
	backfacing	$tmp5 	%line{36} %argrw{"w"}
	if		$tmp5 13 21 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:37
# 			BSDF = transparent();
	closure		BSDF $const6 	%line{37} %argrw{"wr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:40
# 			if (component == "Reflection")
	eq		$tmp6 component $const7 	%line{40} %argrw{"wrr"}
	if		$tmp6 18 21 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:41
# 				BSDF = Color * hair_reflection(Normal, roughnessh, roughnessv, normalize(dPdv), 0.0);
	normalize	$tmp8 dPdv 	%line{41} %argrw{"wr"}
	closure		$tmp7 $const8 Normal roughnessh roughnessv $tmp8 $const5 	%argrw{"wrrrrrr"}
	mul		BSDF $tmp7 Color 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:43
# 				BSDF = Color * hair_transmission(Normal, roughnessh, roughnessv, normalize(dPdv), 0.0);
	normalize	$tmp10 dPdv 	%line{43} %argrw{"wr"}
	closure		$tmp9 $const9 Normal roughnessh roughnessv $tmp10 $const5 	%argrw{"wrrrrrr"}
	mul		BSDF $tmp9 Color 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:47
# 		if (backfacing()) {
	backfacing	$tmp11 	%line{47} %argrw{"w"}
	if		$tmp11 24 32 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:48
# 			BSDF = transparent();
	closure		BSDF $const6 	%line{48} %argrw{"wr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:51
# 			if (component == "Reflection")
	eq		$tmp12 component $const7 	%line{51} %argrw{"wrr"}
	if		$tmp12 29 32 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:52
# 				BSDF = Color * hair_reflection(Normal, roughnessh, roughnessv, dPdu, -Offset);
	neg		$tmp14 Offset 	%line{52} %argrw{"wr"}
	closure		$tmp13 $const8 Normal roughnessh roughnessv dPdu $tmp14 	%argrw{"wrrrrrr"}
	mul		BSDF $tmp13 Color 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_hair_bsdf.osl:54
# 				BSDF = Color * hair_transmission(Normal, roughnessh, roughnessv, dPdu, -Offset);
	neg		$tmp16 Offset 	%line{54} %argrw{"wr"}
	closure		$tmp15 $const9 Normal roughnessh roughnessv dPdu $tmp16 	%argrw{"wrrrrrr"}
	mul		BSDF $tmp15 Color 	%argrw{"wrr"}
	end
