{
	"name": "rotate",
	"node_position": {
		"x": 0,
		"y": 0
	},
	"parameters": {
		"cx": 0,
		"cy": 0,
		"rotate": 0
	},
	"shader_model": {
		"code": "",
		"global": "vec2 rotate(vec2 uv, vec2 center, float rotate) {\n \tvec2 rv;\n\tuv -= center;\n\trv.x = cos(rotate)*uv.x + sin(rotate)*uv.y;\n\trv.y = -sin(rotate)*uv.x + cos(rotate)*uv.y;\n\trv += center;\n    return rv;\t\n}",
		"inputs": [
			{
				"default": "vec4($uv, 0.0, 1.0)",
				"label": "",
				"longdesc": "The input image",
				"name": "i",
				"shortdesc": "Input",
				"type": "rgba"
			}
		],
		"instance": "",
		"longdesc": "Rotates its input",
		"name": "Rotate",
		"outputs": [
			{
				"longdesc": "Shows the rotated image",
				"rgba": "$i(rotate($uv, vec2(0.5+$cx, 0.5+$cy), $rotate*0.01745329251))",
				"shortdesc": "Output",
				"type": "rgba"
			}
		],
		"parameters": [
			{
				"control": "P1.x",
				"default": 0,
				"label": "Center X:",
				"longdesc": "The position of the rotation center",
				"max": 1,
				"min": -1,
				"name": "cx",
				"shortdesc": "Center.x",
				"step": 0.005,
				"type": "float"
			},
			{
				"control": "P1.y",
				"default": 0,
				"label": "Center Y:",
				"longdesc": "The position of the rotation center",
				"max": 1,
				"min": -1,
				"name": "cy",
				"shortdesc": "Center.y",
				"step": 0.005,
				"type": "float"
			},
			{
				"control": "Radius1.a",
				"default": 0,
				"label": "Rotate:",
				"longdesc": "The angle of the rotation",
				"max": 720,
				"min": -720,
				"name": "rotate",
				"shortdesc": "Angle",
				"step": 0.005,
				"type": "float"
			}
		],
		"shortdesc": "Rotate"
	},
	"type": "shader"
}