OpenShadingLanguage 1.00
# Compiled by oslc 1.5.10
shader node_geometry
param	normal	NormalIn	0 0 0 		 %read{2,2} %write{0,0}
param	string	bump_offset	"center" 		 %read{8,14} %write{2147483647,-1}
oparam	point	Position	0 0 0 		 %read{10,17} %write{1,17} %derivs
oparam	normal	Normal	0 0 0 		 %read{29,31} %write{2,2}
oparam	normal	Tangent	0 0 0 		 %read{2147483647,-1} %write{31,32}
oparam	normal	TrueNormal	0 0 0 		 %read{2147483647,-1} %write{3,3}
oparam	vector	Incoming	0 0 0 		 %read{2147483647,-1} %write{4,4}
oparam	point	Parametric	0 0 0 		 %read{12,19} %write{5,19} %derivs
oparam	float	Backfacing	0 		 %read{2147483647,-1} %write{7,7}
global	point	P	 %read{1,1} %write{2147483647,-1} %derivs
global	vector	I	 %read{4,4} %write{2147483647,-1}
global	normal	N	 %read{0,0} %write{2147483647,-1}
global	normal	Ng	 %read{3,3} %write{2147483647,-1}
global	float	u	 %read{5,5} %write{2147483647,-1} %derivs
global	float	v	 %read{5,5} %write{2147483647,-1} %derivs
global	vector	dPdu	 %read{32,32} %write{2147483647,-1}
local	point	generated	 %read{22,25} %write{20,20}
local	normal	___628_data	 %read{28,28} %write{27,27}
local	vector	___628_T	 %read{29,29} %write{28,28}
const	float	$const1	0		 %read{5,27} %write{2147483647,-1}
temp	int	$tmp1	 %read{7,7} %write{6,6}
const	string	$const2	"dx"		 %read{8,8} %write{2147483647,-1}
temp	int	$tmp2	 %read{9,9} %write{8,8}
temp	vector	$tmp3	 %read{11,11} %write{10,10} %derivs
temp	vector	$tmp4	 %read{13,13} %write{12,12} %derivs
const	string	$const3	"dy"		 %read{14,14} %write{2147483647,-1}
temp	int	$tmp5	 %read{15,15} %write{14,14}
temp	vector	$tmp6	 %read{17,17} %write{16,16} %derivs
temp	vector	$tmp7	 %read{19,19} %write{18,18} %derivs
temp	int	$tmp8	 %read{21,21} %write{20,20}
const	string	$const4	"geom:generated"		 %read{20,20} %write{2147483647,-1}
const	int	$const5	1		 %read{22,22} %write{2147483647,-1}
temp	float	$tmp9	 %read{23,23} %write{22,22}
const	float	$const6	0.5		 %read{23,26} %write{2147483647,-1}
temp	float	$tmp10	 %read{24,24} %write{23,23}
temp	float	$tmp11	 %read{27,27} %write{24,24}
const	int	$const7	0		 %read{25,25} %write{2147483647,-1}
temp	float	$tmp12	 %read{26,26} %write{25,25}
temp	float	$tmp13	 %read{27,27} %write{26,26}
const	string	$const8	"object"		 %read{28,28} %write{2147483647,-1}
const	string	$const9	"world"		 %read{28,28} %write{2147483647,-1}
temp	vector	$tmp14	 %read{31,31} %write{30,30}
temp	vector	$tmp15	 %read{30,30} %write{29,29}
code NormalIn
# intern/cycles/kernel/shaders/node_geometry.osl:20
# 	normal NormalIn = N,
	assign		NormalIn N 	%filename{"intern/cycles/kernel/shaders/node_geometry.osl"} %line{20} %argrw{"wr"}
code ___main___
# intern/cycles/kernel/shaders/node_geometry.osl:31
# 	Position = P;
	assign		Position P 	%filename{"intern/cycles/kernel/shaders/node_geometry.osl"} %line{31} %argrw{"wr"}
# intern/cycles/kernel/shaders/node_geometry.osl:32
# 	Normal = NormalIn;
	assign		Normal NormalIn 	%line{32} %argrw{"wr"}
# intern/cycles/kernel/shaders/node_geometry.osl:33
# 	TrueNormal = Ng;
	assign		TrueNormal Ng 	%line{33} %argrw{"wr"}
# intern/cycles/kernel/shaders/node_geometry.osl:34
# 	Incoming = I;
	assign		Incoming I 	%line{34} %argrw{"wr"}
# intern/cycles/kernel/shaders/node_geometry.osl:35
# 	Parametric = point(u, v, 0.0);
	point		Parametric u v $const1 	%line{35} %argrw{"wrrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:36
# 	Backfacing = backfacing();
	backfacing	$tmp1 	%line{36} %argrw{"w"}
	assign		Backfacing $tmp1 	%argrw{"wr"}
# intern/cycles/kernel/shaders/node_geometry.osl:38
# 	if (bump_offset == "dx") {
	eq		$tmp2 bump_offset $const2 	%line{38} %argrw{"wrr"}
	if		$tmp2 14 20 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_geometry.osl:39
# 		Position += Dx(Position);
	Dx		$tmp3 Position 	%line{39} %argrw{"wr"} %argderivs{1}
	add		Position Position $tmp3 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:40
# 		Parametric += Dx(Parametric);
	Dx		$tmp4 Parametric 	%line{40} %argrw{"wr"} %argderivs{1}
	add		Parametric Parametric $tmp4 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:42
# 	else if (bump_offset == "dy") {
	eq		$tmp5 bump_offset $const3 	%line{42} %argrw{"wrr"}
	if		$tmp5 20 20 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_geometry.osl:43
# 		Position += Dy(Position);
	Dy		$tmp6 Position 	%line{43} %argrw{"wr"} %argderivs{1}
	add		Position Position $tmp6 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:44
# 		Parametric += Dy(Parametric);
	Dy		$tmp7 Parametric 	%line{44} %argrw{"wr"} %argderivs{1}
	add		Parametric Parametric $tmp7 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:51
# 	if (getattribute("geom:generated", generated)) {
	getattribute	$tmp8 $const4 generated 	%line{51} %argrw{"wrw"}
	if		$tmp8 32 33 	%argrw{"r"}
# intern/cycles/kernel/shaders/node_geometry.osl:52
# 		normal data = normal(-(generated[1]-0.5), (generated[0]-0.5), 0.0);
	compref		$tmp9 generated $const5 	%line{52} %argrw{"wrr"}
	sub		$tmp10 $tmp9 $const6 	%argrw{"wrr"}
	neg		$tmp11 $tmp10 	%argrw{"wr"}
	compref		$tmp12 generated $const7 	%argrw{"wrr"}
	sub		$tmp13 $tmp12 $const6 	%argrw{"wrr"}
	normal		___628_data $tmp11 $tmp13 $const1 	%argrw{"wrrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:53
# 		vector T = transform("object", "world", data);
	transformn	___628_T $const8 $const9 ___628_data 	%line{53} %argrw{"wrrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:54
# 		Tangent = cross(Normal, normalize(cross(T, Normal)));
	cross		$tmp15 ___628_T Normal 	%line{54} %argrw{"wrr"}
	normalize	$tmp14 $tmp15 	%argrw{"wr"}
	cross		Tangent Normal $tmp14 	%argrw{"wrr"}
# intern/cycles/kernel/shaders/node_geometry.osl:58
# 		Tangent = normalize(dPdu);
	normalize	Tangent dPdu 	%line{58} %argrw{"wr"}
	end
