#usda 1.0
(
    customLayerData = {
        dictionary cameraSettings = {
            dictionary Front = {
                double3 position = (0, 0, 50000)
                double radius = 500
            }
            dictionary Perspective = {
                double3 position = (500, 500, 500)
                double3 target = (-0.00000397803842133726, 0.000007956076785831101, -0.000003978038307650422)
            }
            dictionary Right = {
                double3 position = (-50000, 0, 0)
                double radius = 500
            }
            dictionary Top = {
                double3 position = (0, 50000, 0)
                double radius = 500
            }
            string boundCamera = "/OmniverseKit_Persp"
        }
        dictionary omni_layer = {
            dictionary muteness = {
            }
        }
        dictionary renderSettings = {
            float3 "rtx:debugView:pixelDebug:textColor" = (0, 1e18, 0)
            float3 "rtx:post:backgroundZeroAlpha:backgroundDefaultColor" = (0, 0, 0)
            float3 "rtx:post:lensDistortion:lensFocalLengthArray" = (10, 30, 50)
            float3 "rtx:post:lensFlares:anisoFlareFalloffX" = (450, 475, 500)
            float3 "rtx:post:lensFlares:anisoFlareFalloffY" = (10, 10, 10)
            float3 "rtx:post:lensFlares:cutoffPoint" = (2, 2, 2)
            float3 "rtx:post:lensFlares:haloFlareFalloff" = (10, 10, 10)
            float3 "rtx:post:lensFlares:haloFlareRadius" = (75, 75, 75)
            float3 "rtx:post:lensFlares:isotropicFlareFalloff" = (50, 50, 50)
            float3 "rtx:post:tonemap:whitepoint" = (1, 1, 1)
            float3 "rtx:raytracing:inscattering:singleScatteringAlbedo" = (0.9, 0.9, 0.9)
            float3 "rtx:raytracing:inscattering:transmittanceColor" = (0.5, 0.5, 0.5)
        }
    }
    defaultPrim = "World"
    endTimeCode = 100
    metersPerUnit = 0.01
    startTimeCode = 0
    timeCodesPerSecond = 30
    upAxis = "Y"
)

def Xform "World"
{
    def OmniGraph "PushGraph"
    {
        token evaluationMode = "Automatic"
        token evaluator:type = "push"
        token fabricCacheBacking = "Shared"
        int2 fileFormatVersion = (1, 6)
        token pipelineStage = "pipelineStageSimulation"

        def OmniGraphNode "constant_int" (
            prepend apiSchemas = ["NodeGraphNodeAPI"]
        )
        {
            custom int inputs:value = 1
            token node:type = "omni.graph.nodes.ConstantInt"
            int node:typeVersion = 1
            uniform token ui:nodegraph:node:expansionState = "open"
            uniform float2 ui:nodegraph:node:pos = (63, 47)
        }

        def OmniGraphNode "constant_int_01" (
            prepend apiSchemas = ["NodeGraphNodeAPI"]
        )
        {
            custom int inputs:value = 2
            token node:type = "omni.graph.nodes.ConstantInt"
            int node:typeVersion = 1
            uniform token ui:nodegraph:node:expansionState = "open"
            uniform float2 ui:nodegraph:node:pos = (59, 143)
        }

        def OmniGraphNode "absolute_01" (
            prepend apiSchemas = ["NodeGraphNodeAPI"]
        )
        {
            custom token inputs:input
            delete token inputs:input.connect = </World/PushGraph/absolute.outputs:absolute>
            prepend token inputs:input.connect = </World/PushGraph/Compound.outputs:absolute>
            token node:type = "omni.graph.nodes.Absolute"
            int node:typeVersion = 1
            custom token outputs:absolute
            uniform token ui:nodegraph:node:expansionState = "open"
            uniform float2 ui:nodegraph:node:pos = (767, 86)
        }

        def OmniGraphNode "Compound" (
            prepend apiSchemas = ["NodeGraphNodeAPI"]
        )
        {
            custom token inputs:a
            prepend token inputs:a.connect = </World/PushGraph/constant_int.inputs:value>
            custom token inputs:b
            prepend token inputs:b.connect = </World/PushGraph/constant_int_01.inputs:value>
            token node:type = "local.nodes.Compound"
            token node:type.connect = </World/Compounds/Compound>
            int node:typeVersion = 0
            custom rel omni:graph:compound
            prepend rel omni:graph:compound = </World/PushGraph/Compound/Graph>
            custom token outputs:absolute
            prepend token outputs:absolute.connect = </World/PushGraph/Compound/Graph/absolute.outputs:absolute>
            uniform float2 ui:nodegraph:node:pos = (419.5, 77)

            def "Graph" (
                prepend references = </World/Compounds/Compound/Graph>
            )
            {
                token evaluationMode = "Automatic"

                over "add"
                {
                    custom token inputs:a
                    prepend token inputs:a.connect = </World/PushGraph/Compound.inputs:a>
                    custom token inputs:b
                    prepend token inputs:b.connect = </World/PushGraph/Compound.inputs:b>
                }
            }
        }
    }

    def Scope "Compounds"
    {
        def OmniGraphCompoundNodeType "Compound"
        {
            prepend rel omni:graph:asset = </World/Compounds/Compound/Graph>
            custom rel omni:graph:input:a
            append rel omni:graph:input:a = </World/Compounds/Compound/Graph/add.inputs:a>
            custom rel omni:graph:input:b
            append rel omni:graph:input:b = </World/Compounds/Compound/Graph/add.inputs:b>
            token omni:graph:namespace = "local.nodes"
            custom rel omni:graph:output:absolute
            append rel omni:graph:output:absolute = </World/Compounds/Compound/Graph/absolute.outputs:absolute>

            def OmniGraph "Graph"
            {
                token evaluationMode = "Instanced"
                int2 fileFormatVersion = (1, 6)
                token pipelineStage = "pipelineStageOnDemand"

                def OmniGraphNode "absolute" (
                    prepend apiSchemas = ["NodeGraphNodeAPI"]
                )
                {
                    custom token inputs:input
                    prepend token inputs:input.connect = </World/Compounds/Compound/Graph/add.outputs:sum>
                    token node:type = "omni.graph.nodes.Absolute"
                    int node:typeVersion = 1
                    custom token outputs:absolute
                    uniform token ui:nodegraph:node:expansionState = "open"
                    uniform float2 ui:nodegraph:node:pos = (535, 84)
                }

                def OmniGraphNode "add" (
                    prepend apiSchemas = ["NodeGraphNodeAPI"]
                )
                {
                    custom token inputs:a
                    custom token inputs:b
                    token node:type = "omni.graph.nodes.Add"
                    int node:typeVersion = 2
                    custom token outputs:sum
                    uniform token ui:nodegraph:node:expansionState = "open"
                    uniform float2 ui:nodegraph:node:pos = (304, 70)
                }
            }
        }
    }
}

def Xform "Environment"
{
    double3 xformOp:rotateXYZ = (0, 0, 0)
    double3 xformOp:scale = (1, 1, 1)
    double3 xformOp:translate = (0, 0, 0)
    uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]

    def DistantLight "defaultLight" (
        prepend apiSchemas = ["ShapingAPI"]
    )
    {
        float inputs:angle = 1
        float inputs:intensity = 3000
        float inputs:shaping:cone:angle = 180
        float inputs:shaping:cone:softness
        float inputs:shaping:focus
        color3f inputs:shaping:focusTint
        asset inputs:shaping:ies:file
        double3 xformOp:rotateXYZ = (315, 0, 0)
        double3 xformOp:scale = (1, 1, 1)
        double3 xformOp:translate = (0, 0, 0)
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
    }
}

