OpenShadingLanguage 1.00
# Compiled by oslc 1.11.17
# options: -q -O2 -I/build/blender/src/blender/intern/cycles/kernel/osl/shaders -I/usr/share/OSL/shaders -o /build/blender/src/blender/build/intern/cycles/kernel/osl/shaders/node_texture_coordinate.oso
shader node_texture_coordinate
param	normal	NormalIn	0 0 0		%read{10,40} %write{0,0} %initexpr
param	int	is_background	0		%read{1,1} %write{2147483647,-1}
param	int	is_volume	0		%read{15,15} %write{2147483647,-1}
param	int	from_dupli	0		%read{12,59} %write{2147483647,-1}
param	int	use_transform	0		%read{28,28} %write{2147483647,-1}
param	string	bump_offset	"center"		%read{43,57} %write{2147483647,-1}
param	matrix	object_itfm	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0		%read{29,29} %write{2147483647,-1} %derivs
oparam	point	Generated	0 0 0		%read{20,62} %write{2,62} %derivs
oparam	point	UV	0 0 0		%read{49,64} %write{3,64} %derivs
oparam	point	Object	0 0 0		%read{51,66} %write{4,66} %derivs
oparam	point	Camera	0 0 0		%read{53,68} %write{8,68} %derivs
oparam	point	Window	0 0 0		%read{55,70} %write{9,71} %derivs
oparam	normal	Normal	0 0 0		%read{2147483647,-1} %write{10,36}
oparam	point	Reflection	0 0 0		%read{2147483647,-1} %write{11,42}
global	point	P	%read{2,35} %write{2147483647,-1} %derivs
global	vector	I	%read{11,41} %write{2147483647,-1}
global	normal	N	%read{0,0} %write{2147483647,-1}
local	point	___368_Pcam	%read{6,6} %write{5,5} %derivs
local	matrix	___371_tfm	%read{20,20} %write{18,18} %derivs
const	point	$const1	0 0 0		%read{3,5} %write{2147483647,-1}
const	string	$const2	"camera"		%read{5,33} %write{2147483647,-1}
const	string	$const3	"world"		%read{5,36} %write{2147483647,-1}
temp	point	$tmp2	%read{8,8} %write{6,6} %derivs
const	string	$const4	"transform"		%read{7,34} %write{2147483647,-1}
const	string	$const5	"common"		%read{8,35} %write{2147483647,-1}
temp	int	$tmp3	%read{2147483647,-1} %write{9,9}
const	string	$const6	"NDC"		%read{9,35} %write{2147483647,-1}
temp	int	$tmp4	%read{2147483647,-1} %write{13,13}
const	string	$const7	"geom:dupli_generated"		%read{13,13} %write{2147483647,-1}
temp	int	$tmp5	%read{2147483647,-1} %write{14,14}
const	string	$const8	"geom:dupli_uv"		%read{14,14} %write{2147483647,-1}
const	string	$const9	"object"		%read{17,36} %write{2147483647,-1}
temp	int	$tmp6	%read{19,19} %write{18,18}
const	string	$const10	"geom:generated_transform"		%read{18,18} %write{2147483647,-1}
temp	int	$tmp7	%read{2147483647,-1} %write{21,21}
const	string	$const11	"geom:uv"		%read{21,27} %write{2147483647,-1}
temp	int	$tmp8	%read{23,23} %write{22,22}
const	string	$const12	"geom:generated"		%read{22,22} %write{2147483647,-1}
temp	int	$tmp9	%read{24,24} %write{23,23}
const	int	$const13	0		%read{23,59} %write{2147483647,-1}
temp	int	$tmp10	%read{2147483647,-1} %write{27,27}
temp	vector	$tmp11	%read{42,42} %write{41,41}
const	string	$const14	"reflect"		%read{37,37} %write{2147483647,-1}
const	int	$const15	2		%read{71,71} %write{2147483647,-1}
temp	float	$tmp12	%read{39,39} %write{38,38}
temp	float	$tmp13	%read{40,40} %write{39,39}
const	float	$const16	2		%read{39,39} %write{2147483647,-1}
temp	vector	$tmp14	%read{41,41} %write{40,40}
const	string	$const17	"dx"		%read{43,43} %write{2147483647,-1}
temp	int	$tmp15	%read{44,44} %write{43,43}
temp	int	$tmp16	%read{46,46} %write{45,45}
temp	vector	$tmp17	%read{48,48} %write{47,47} %derivs
temp	vector	$tmp18	%read{50,50} %write{49,49} %derivs
temp	vector	$tmp19	%read{52,52} %write{51,51} %derivs
temp	vector	$tmp20	%read{54,54} %write{53,53} %derivs
temp	vector	$tmp21	%read{56,56} %write{55,55} %derivs
const	string	$const18	"dy"		%read{57,57} %write{2147483647,-1}
temp	int	$tmp22	%read{58,58} %write{57,57}
temp	int	$tmp23	%read{60,60} %write{59,59}
temp	vector	$tmp24	%read{62,62} %write{61,61} %derivs
temp	vector	$tmp25	%read{64,64} %write{63,63} %derivs
temp	vector	$tmp26	%read{66,66} %write{65,65} %derivs
temp	vector	$tmp27	%read{68,68} %write{67,67} %derivs
temp	vector	$tmp28	%read{70,70} %write{69,69} %derivs
const	float	$const19	0		%read{71,71} %write{2147483647,-1}
code NormalIn
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:7
#     normal NormalIn = N,
	assign		NormalIn N 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{7} %argrw{"wr"}
code ___main___
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:23
#   if (is_background) {
	if		is_background 12 43 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{23} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:24
#     Generated = P;
	assign		Generated P 	%line{24} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:25
#     UV = point(0.0, 0.0, 0.0);
	assign		UV $const1 	%line{25} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:26
#     Object = P;
	assign		Object P 	%line{26} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:27
#     point Pcam = transform("camera", "world", point(0, 0, 0));
	transform	___368_Pcam $const2 $const3 $const1 	%line{27} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:28
#     Camera = transform("camera", P + Pcam);
	add		$tmp2 P ___368_Pcam 	%line{28} %argrw{"wrr"}
	functioncall	$const4 9 	%argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Camera $const5 $const2 $tmp2 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:29
#     getattribute("NDC", Window);
	getattribute	$tmp3 $const6 Window 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{29} %argrw{"wrw"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:30
#     Normal = NormalIn;
	assign		Normal NormalIn 	%line{30} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:31
#     Reflection = I;
	assign		Reflection I 	%line{31} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:34
#     if (from_dupli) {
	if		from_dupli 15 28 	%line{34} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:35
#       getattribute("geom:dupli_generated", Generated);
	getattribute	$tmp4 $const7 Generated 	%line{35} %argrw{"wrw"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:36
#       getattribute("geom:dupli_uv", UV);
	getattribute	$tmp5 $const8 UV 	%line{36} %argrw{"wrw"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:38
#     else if (is_volume) {
	if		is_volume 22 28 	%line{38} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:39
#       Generated = transform("object", P);
	functioncall	$const4 18 	%line{39} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Generated $const5 $const9 P 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:42
#       if (getattribute("geom:generated_transform", tfm))
	getattribute	$tmp6 $const10 ___371_tfm 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{42} %argrw{"wrw"}
	if		$tmp6 21 21 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:43
#         Generated = transform(tfm, Generated);
	transform	Generated ___371_tfm Generated 	%line{43} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:45
#       getattribute("geom:uv", UV);
	getattribute	$tmp7 $const11 UV 	%line{45} %argrw{"wrw"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:48
#       if (!getattribute("geom:generated", Generated)) {
	getattribute	$tmp8 $const12 Generated 	%line{48} %argrw{"wrw"}
	eq		$tmp9 $tmp8 $const13 	%argrw{"wrr"}
	if		$tmp9 27 27 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:49
#         Generated = transform("object", P);
	functioncall	$const4 27 	%line{49} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Generated $const5 $const9 P 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:51
#       getattribute("geom:uv", UV);
	getattribute	$tmp10 $const11 UV 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{51} %argrw{"wrw"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:54
#     if (use_transform) {
	if		use_transform 30 32 	%line{54} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:55
#       Object = transform(object_itfm, P);
	transform	Object object_itfm P 	%line{55} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:58
#       Object = transform("object", P);
	functioncall	$const4 32 	%line{58} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Object $const5 $const9 P 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:60
#     Camera = transform("camera", P);
	functioncall	$const4 34 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{60} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Camera $const5 $const2 P 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:61
#     Window = transform("NDC", P);
	functioncall	$const4 36 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{61} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Window $const5 $const6 P 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:62
#     Normal = transform("world", "object", NormalIn);
	transformn	Normal $const3 $const9 NormalIn 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{62} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:63
#     Reflection = -reflect(I, NormalIn);
	functioncall	$const14 42 	%line{63} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:212
# vector reflect (vector I, vector N) { return I - 2*dot(N,I)*N; }
	dot		$tmp12 NormalIn I 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{212} %argrw{"wrr"}
	mul		$tmp13 $const16 $tmp12 	%argrw{"wrr"}
	mul		$tmp14 $tmp13 NormalIn 	%argrw{"wrr"}
	sub		$tmp11 I $tmp14 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:63
#     Reflection = -reflect(I, NormalIn);
	neg		Reflection $tmp11 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl"} %line{63} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:66
#   if (bump_offset == "dx") {
	eq		$tmp15 bump_offset $const17 	%line{66} %argrw{"wrr"}
	if		$tmp15 57 71 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:67
#     if (!from_dupli) {
	eq		$tmp16 from_dupli $const13 	%line{67} %argrw{"wrr"}
	if		$tmp16 51 51 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:68
#       Generated += Dx(Generated);
	Dx		$tmp17 Generated 	%line{68} %argrw{"wr"} %argderivs{1}
	add		Generated Generated $tmp17 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:69
#       UV += Dx(UV);
	Dx		$tmp18 UV 	%line{69} %argrw{"wr"} %argderivs{1}
	add		UV UV $tmp18 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:71
#     Object += Dx(Object);
	Dx		$tmp19 Object 	%line{71} %argrw{"wr"} %argderivs{1}
	add		Object Object $tmp19 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:72
#     Camera += Dx(Camera);
	Dx		$tmp20 Camera 	%line{72} %argrw{"wr"} %argderivs{1}
	add		Camera Camera $tmp20 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:73
#     Window += Dx(Window);
	Dx		$tmp21 Window 	%line{73} %argrw{"wr"} %argderivs{1}
	add		Window Window $tmp21 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:75
#   else if (bump_offset == "dy") {
	eq		$tmp22 bump_offset $const18 	%line{75} %argrw{"wrr"}
	if		$tmp22 71 71 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:76
#     if (!from_dupli) {
	eq		$tmp23 from_dupli $const13 	%line{76} %argrw{"wrr"}
	if		$tmp23 65 65 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:77
#       Generated += Dy(Generated);
	Dy		$tmp24 Generated 	%line{77} %argrw{"wr"} %argderivs{1}
	add		Generated Generated $tmp24 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:78
#       UV += Dy(UV);
	Dy		$tmp25 UV 	%line{78} %argrw{"wr"} %argderivs{1}
	add		UV UV $tmp25 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:80
#     Object += Dy(Object);
	Dy		$tmp26 Object 	%line{80} %argrw{"wr"} %argderivs{1}
	add		Object Object $tmp26 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:81
#     Camera += Dy(Camera);
	Dy		$tmp27 Camera 	%line{81} %argrw{"wr"} %argderivs{1}
	add		Camera Camera $tmp27 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:82
#     Window += Dy(Window);
	Dy		$tmp28 Window 	%line{82} %argrw{"wr"} %argderivs{1}
	add		Window Window $tmp28 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_texture_coordinate.osl:85
#   Window[2] = 0.0;
	compassign	Window $const15 $const19 	%line{85} %argrw{"wrr"}
	end
