Get items label in a Roto node¶
import os
import NatronEngine
from NatronGui import *
def getRotoItemsLabel():
# get current Natron instance running in memory
app = natron.getGuiInstance(0)
# get selected nodes
selectedNodes = app.getSelectedNodes()
# cycle every selected node #
for currentNode in selectedNodes:
# get node class
currentID = currentNode.getPluginID()
# check if selected node(s) are of 'Roto' class
if currentID == "fr.inria.built-in.Roto" or nodeID == "fr.inria.built-in.RotoPaint" :
# get 'Roto' context
rotoContext = currentNode.getRotoContext()
# get 'Base layer' (root layer) in 'Roto' context
baseLayer = rotoContext.getBaseLayer()
# get all items in 'Base layer'
allBaseLayerItems = baseLayer.getChildren()
# cycle every item in 'Base layer'
for item in allBaseLayerItems:
# get current item label
itemName = item.getLabel()
os.write(1, '\n' + str(itemName) + '\n')
This script can now be saved in a .py file and added to Natron using the addMenuCommand(grouping,function)
function in the initGuy.py file.
It can also be can executed directly in Natron’s script editor by adding:
getRotoItemsLabel()
at the end of the script.