# ############# Set Target for Camera ###################
# python version based on STEPHEN WONGs 2 node target from Nukepedia
# Modified by Howard Jones Sept 2010
# Last modified 21st Sept 2010
# copyleft unprotected

import nuke

def cameraTarget():

	target=nuke.nodes.Axis()
	target.setName('target')
	targetName=target.name()

	cam=nuke.nodes.Camera2()
	cam.setName('targetCamera')

	cam['rotate'].setExpression('degrees(atan(('+targetName+'.translate.y-translate.y)/sqrt(pow2(sqrt(pow2('+targetName+'.translate.x-translate.x)+pow2('+targetName+'.translate.z-translate.z))))))',0)
	cam['rotate'].setExpression(''+targetName+'.translate.x-translate.x >= 0 ? 270-degrees(atan(('+targetName+'.translate.z-translate.z)/('+targetName+'.translate.x-translate.x))): -degrees(atan(('+targetName+'.translate.z-translate.z)/('+targetName+'.translate.x-translate.x)))-270',1)

def setTarget():
	if len(nuke.selectedNodes())>2:
		nuke.message("Please select just a Camera and object to target to")
	elif len(nuke.selectedNodes())<2:
		nuke.message("Please select a Camera and object to target to")
		
	for n in nuke.selectedNodes():
		if 'Camera' in n.Class():
			nuke.message("It's a camera")
		else:
			nuke.message('wot no camera?')
		
