#usda 1.0
(
    doc ="""Generated from node description file OgnTutorialArrayData.ogn
Contains templates for node types found in that file."""
)

def OmniGraph "TestGraph"
{
    token evaluator:type = "push"
    int2 fileFormatVersion = (1, 3)
    token flatCacheBacking = "Shared"
    token pipelineStage = "pipelineStageSimulation"

    def OmniGraphNode "Template_omni_graph_tutorials_ArrayData" (
        docs="""This is a tutorial node. It will compute the array 'result' as the input array 'original'  with every element multiplied by the constant 'multiplier'."""
    )
    {
        token node:type = "omni.graph.tutorials.ArrayData"
        int node:typeVersion = 1

        # 4 attributes
        custom bool[] inputs:gates = [] (
            docs="""Boolean mask telling which elements of the array should be multiplied"""
        )
        custom token[] inputs:info = ['There', 'is', 'no', 'data'] (
            docs="""List of strings providing commentary"""
        )
        custom float inputs:multiplier = 1.0 (
            docs="""Multiplier of the array elements"""
        )
        custom float[] inputs:original = [] (
            docs="""Array to be multiplied"""
        )

        # 3 attributes
        custom int outputs:infoSize (
            docs="""Number of letters in all strings in the info input"""
        )
        custom bool[] outputs:negativeValues (
            docs="""Array of booleans set to true if the corresponding 'result' is negative"""
        )
        custom float[] outputs:result (
            docs="""Multiplied array"""
        )
    }
}
