# Copyright (c) 2009 The Foundry Visionmongers Ltd.  All Rights Reserved.
#
# Master class menu.py example
#
# This is where you put your user interface customisations

import nodeOps
import quick3d
import panAndTile
import autoBackdrop
import fixPaths
import customNode

#### add menu item to existing Nuke menu
nodeMenu = nuke.menu('Nuke').findItem('Edit/Node')
nodeMenu.addCommand('Toggle Viewer Pipes', 'nodeOps.toggleViewerPipes()', 'alt+t')

#### add menu items to existing Nodes toolbar
toolbar = nuke.menu('Nodes')

mcMenu = toolbar.addMenu('MasterClass', icon='mcIcon.png')
mcMenu.addCommand('Quick 3d', 'quick3d.quick3d()', '+d')
mcMenu.addCommand('HealBrush', 'nuke.nodes.HealBrush()')
mcMenu.addCommand('Pan And Tile', 'panAndTile.panAndTile()')

mcMenu.addCommand('Auto Backdrop', 'autoBackdrop.autoBackdrop()', 'alt+b')
mcMenu.addCommand('Fix Paths', 'fixPaths.fixPaths()')

#### custom write node example
# by default this example is disabled.  Uncomment the lines below by removing
# the '#' to enable the custom write node and the "shot setter" panel
#customNode.attachCustomCreateNode()
#customNode.promptForJob()

# Copyright (c) 2007 The Foundry Visionmongers Ltd.  All Rights Reserved.

import nuke
import os.path

# Get the top-level toolbar
toolbar = nuke.menu("Nodes")


# SPHERE VFX Menu definitions
m = toolbar.addMenu("SphereVFX", "sphereIcon.png")
m.addCommand("cameraAim", "axis = nuke.nodes.Axis();cam = nuke.nodes.Camera();cam.setInput(0,None); nuke.tcl('AddLookTab');cam.knob( 'lookObject').setValue(axis.knob('name').value() )", icon="cameraAim.png")
# m.addCommand("cameraAim", "lookCam()", icon="cameraAim.png")
m.addCommand("palSafe", "nuke.createNode(\"palSafe\")", icon="palSafe.png")

# FX Share Menu definitions
m = toolbar.addMenu("FXShare", "fxShare.png")
m.addCommand("depthSlice", "nuke.createNode(\"depthSlice\")",icon="depthSlice.png")
m.addCommand("Reorder", "nuke.createNode(\"reorder\")",icon="reorder.png")
m.addCommand("iDilateErode", "nuke.createNode(\"iDilateErode\")",icon="iDilateErode.png")
m.addCommand("Glass", "nuke.createNode(\"glass\")",icon="glass.png")
m.addCommand("imagePlane", "nuke.createNode(\"imagePlane\")",icon="imagePlane.png")
m.addCommand("iTransform", "nuke.createNode(\"iTransform\")",icon="iTransform.png")
m.addCommand("Projector", "nuke.createNode(\"projector\")",icon="projector.png")
m.addCommand("readGeoPlus", "nuke.createNode(\"readGeoPlus\")",icon="readGeoPlus.png")
m.addCommand("Tile", "nuke.createNode(\"tile\")",icon="tile.png")
m.addCommand("Wipe", "nuke.createNode(\"wipe\")",icon="wipe.png")
m.addCommand("chromaticAberration", "nuke.createNode(\"chromaticAberration\")",icon="chromaticAberration.png")
m.addCommand("colourNoise", "nuke.createNode(\"colourNoise\")",icon="colourNoise.png")
m.addCommand("Common", "nuke.createNode(\"common\")",icon="common.png")
m.addCommand("Loupe", "nuke.createNode(\"loupe\")",icon="loupe.png")
m.addCommand("Streaks", "nuke.createNode(\"streaks\")",icon="streaks.xpm")
m.addCommand("Vignette", "nuke.createNode(\"vignette\")",icon="vignette.xpm")
m.addCommand("zFaker", "nuke.createNode(\"zFaker\")",icon="zFaker.xpm")
m.addCommand("Ramper", "nuke.createNode(\"ramper\")",icon="ramper.png")
m.addCommand("Telecine", "nuke.createNode(\"telecine\")",icon="telecine.png")
m.addCommand("invertTelecine", "nuke.createNode(\"invertTelecine\")",icon="invertTelecine.png")
m.addCommand("normalLighting", "nuke.createNode(\"normalLighting\")",icon="normalLighting.png")
m.addCommand("Slice", "nuke.createNode(\"slice\")",icon="slice.png")
m.addCommand("importPhotoshop", "nuke.createNode(\"importPhotoshop\")",icon="importPhotoshop.png")
m.addCommand("reLighting", "nuke.createNode(\"relight\")",icon="relighting.png")
m.addCommand("timeCode123", "nuke.createNode(\"timeCode\")",icon="timeCode.png")
m.addCommand("LM_2DMV2Nuke", "nuke.createNode(\"LM_2DMV2Nuke\")",icon="LM_2DMV2Nuke.png")
m.addCommand("Turbulate", "nuke.createNode(\"turbulate\")",icon="turbulate.png")
m.addCommand("Tracker3Dto2D", "nuke.createNode(\"Tracker3Dto2D\")", icon="tracker3Dto2D.png")
m.addCommand("PlanarTracker", "nuke.createNode(\"PlanarTrack\")", icon="PlanarTrack.png")
m.addCommand("vRayReconstruct", "nuke.createNode(\"renderFarm\")", icon="renderFarm.png")
m.addCommand("GridOverlay", "nuke.createNode(\"GridOverlay\")", icon="GridOverlay.png")
m.addCommand("AspectGuide", "nuke.createNode(\"AspectGuide\")", icon="AspectGuide.png")
m.addCommand("SafeArea", "nuke.createNode(\"SafeArea\")", icon="SafeArea.png")

m.addCommand("FengGlow", "nuke.createNode(\"FengGlow\")", icon="FengGlow.png")
m.addCommand("deWrinkler", "nuke.createNode(\"deWrinkler\")", icon="deWrinkler.png")
m.addCommand("chromeAberration", "nuke.createNode(\"akromatism_stRub\")", icon="akromatism.png")
m.addCommand("CamQuake", "nuke.createNode(\"CamQuake\")", icon="CamQuake.png")
m.addCommand("Bleachbypass", "nuke.createNode(\"bleachbypass\")", icon="bleachbypass.png")
m.addCommand("HighPass", "nuke.createNode(\"HighPass\")", icon="HighPass.png")
m.addCommand("FlareFactory", "nuke.createNode(\"FlareFactory\")", icon="FlareFactory.png")


#addes more functionality to the Corner Pin node

nuke.load ("CornerPin2DPY.py")
#Modifies the "Transform" menu
m = toolbar.addMenu("Transform", "ToolbarTransform.png")
#Modifies the CornerPin2D creation
m.addCommand( "CornerPin", "nuke.createNode('CornerPin2D', 'addUserKnob {20 values} addUserKnob {26 "" l Copy_and_set} addUserKnob {22 from--->to T ''CornerPin2DPY(0)'' +STARTLINE} addUserKnob {22 to--->from T ''CornerPin2DPY(1)''} addUserKnob {26 "" l Copy_from +STARTLINE} addUserKnob {22 from T ''CornerPin2DPY(3)'' +STARTLINE} addUserKnob {22 to T ''CornerPin2DPY(4)''} addUserKnob {26 "" l Paste_to +STARTLINE} addUserKnob {22 from T ''CornerPin2DPY(5)'' +STARTLINE} addUserKnob {22 to T ''CornerPin2DPY(6)''} addUserKnob {26 "" l Invert +STARTLINE} addUserKnob {22 invert T ''CornerPin2DPY(2)'' +STARTLINE} addUserKnob {26 "" l Set_key +STARTLINE} addUserKnob {22 from T ''CornerPin2DPY(7)'' +STARTLINE} addUserKnob {22 to T ''CornerPin2DPY(8)''} addUserKnob {26 "" l Info} addUserKnob {1 in_buffer} addUserKnob {3 varCopy INVISIBLE} addUserKnob {12 buf1 INVISIBLE} addUserKnob {12 buf2 INVISIBLE} addUserKnob {12 buf3 INVISIBLE} addUserKnob {12 buf4 INVISIBLE}', True)", icon = "CornerPin.png");


