Get items label in a Roto node — Natron 2.5.0 documentation

# 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.