#usda 1.0
(
    doc ="""Generated from node description file OgnTutorialExtendedTypes.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_ExtendedTypes" (
        docs="""This is a tutorial node. It exercises functionality for the manipulation of the extended attribute types."""
    )
    {
        token node:type = "omni.graph.tutorials.ExtendedTypes"
        int node:typeVersion = 1

        # 4 attributes
        custom token inputs:flexible (
            docs="""Flexible data type input"""
        )
        custom token inputs:floatOrToken (
            docs="""Attribute that can either be a float value or a token value"""
        )
        custom token inputs:toNegate (
            docs="""Attribute that can either be an array of booleans or an array of floats"""
        )
        custom token inputs:tuple = "any" (
            docs="""Variable size/type tuple values"""
        )

        # 4 attributes
        custom token outputs:doubledResult = "any" (
            docs="""If the input 'simpleInput' is a float this is 2x the value.
            If it is a token this contains the input token repeated twice."""
        )
        custom token outputs:flexible (
            docs="""Flexible data type output"""
        )
        custom token outputs:negatedResult (
            docs="""Result of negating the data from the 'toNegate' input"""
        )
        custom token outputs:tuple = "any" (
            docs="""Negated values of the tuple input"""
        )
    }
}
