#usda 1.0
(
    customLayerData = {
        dictionary cameraSettings = {
            dictionary Front = {
                double radius = 500
                double3 target = (0, 0, 0)
            }
            dictionary Perspective = {
                double3 position = (346.1130520546777, 730.8688792040283, 770.334523552793)
                double3 target = (116.6470760745791, -187.64754949669907, 99.09300175087196)
            }
            dictionary Right = {
                double radius = 500
                double3 target = (0, 0, 0)
            }
            dictionary Top = {
                double radius = 500
                double3 target = (0, 0, 0)
            }
            string boundCamera = "/OmniverseKit_Persp"
        }
        int refinementOverrideImplVersion = 0
        dictionary renderSettings = {
            float "rtx:post:lensDistortion:cameraFocalLength" = 18.147562
        }
    }
    defaultPrim = "World"
    endTimeCode = 100
    metersPerUnit = 0.009999999776482582
    startTimeCode = 0
    timeCodesPerSecond = 24
    upAxis = "Y"
)

def Xform "World"
{
    def DistantLight "defaultLight" (
        prepend apiSchemas = ["ShapingAPI"]
    )
    {
        float angle = 1
        float intensity = 3000
        float shaping:cone:angle = 180
        float shaping:cone:softness
        float shaping:focus
        color3f shaping:focusTint
        asset shaping:ies:file
        float3 xformOp:rotateXYZ = (315, 0, 0)
        double3 xformOp:scale = (1, 1, 1)
        float3 xformOp:translate = (0, 0, 0)
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
    }
	
	def Cylinder "Cylinder"
	{
		uniform token axis = "Y"
		float3[] extent = [(-50, -50, -50), (50, 50, 50)]
		double height = 100
		double radius = 50
		custom bool refinementEnableOverride = 1
		custom int refinementLevel = 2
		double3 xformOp:rotateXYZ = (0, 0, 0)
		double3 xformOp:scale = (1, 1, 1)
		double3 xformOp:translate = (-14.145638, 0, 89.546369)
		uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
	}
	
	def GlobalComputeGraph "globalGraph"
	{
		def ComputeGraphSettings "computegraphSettings"
		{
			custom token evaluator:type = "push"
		}				
		
		def ComputeNode "DecomposeDouble3_b"
		{
			custom double3 inputs:double3
			prepend double3 inputs:double3.connect = </World/Cylinder.xformOp:translate>
			custom token node:type = "omni.graph.examples.python.DecomposeDouble3"
			custom int node:typeVersion = 1
			custom double outputs:x = 0
			custom double outputs:y = 0
			custom double outputs:z = 0
		}

		def ComputeNode "SubtractDouble_b"
		{
			custom double inputs:a
			prepend double inputs:a.connect = </World/globalGraph/DecomposeDouble3_b.outputs:x>
			custom double inputs:b = 100
			custom token node:type = "omni.graph.examples.python.SubtractDouble"
			custom int node:typeVersion = 1
			custom double outputs:out = -1
		}

		def ComputeNode "ComposeDouble3_b"
		{
			custom double inputs:x
			prepend double inputs:x.connect = </World/globalGraph/SubtractDouble_b.outputs:out>
			custom double inputs:y
			prepend double inputs:y.connect = </World/globalGraph/DecomposeDouble3_b.outputs:y>
			custom double inputs:z
			prepend double inputs:z.connect = </World/globalGraph/DecomposeDouble3_b.outputs:z>
			custom token node:type = "omni.graph.examples.python.ComposeDouble3"
			custom int node:typeVersion = 1
			custom double3 outputs:double3 = (-1, 0, 0)
		}				
	}
	
	def Capsule "Capsule"
	{
		uniform token axis = "Y"
		float3[] extent = [(-25, -25, -50), (25, 25, 50)]
		double height = 50
		double radius = 25
		custom bool refinementEnableOverride = 1
		custom int refinementLevel = 2
		double3 xformOp:rotateXYZ = (0, 0, 0)
		double3 xformOp:scale = (1, 1, 1)
		double3 xformOp:translate = (-109.380064, 0, 103.602351)
		prepend double3 xformOp:translate.connect = </World/globalGraph/ComposeDouble3_b.outputs:double3>
		uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
	}

    def Cube "Cube"
    {
        float3[] extent = [(-50, -50, -50), (50, 50, 50)]
        double size = 100
        double3 xformOp:rotateXYZ = (0, 0, 0)
        double3 xformOp:scale = (1, 1, 1)
        double3 xformOp:translate = (-29.222733, 0, -51.330466)
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
    }

    def ComputeGraphSettings "computegraphSettings"
    {
        custom token evaluator:type = "push"
    }

    def ComputeNode "DecomposeDouble3"
    {
        custom double3 inputs:double3
        prepend double3 inputs:double3.connect = </World/Cube.xformOp:translate>
        custom token node:type = "omni.graph.examples.python.DecomposeDouble3"
        custom int node:typeVersion = 1
        custom double outputs:x = 0
        custom double outputs:y = 0
        custom double outputs:z = 0
    }

    def ComputeNode "SubtractDouble"
    {
        custom double inputs:a
        prepend double inputs:a.connect = </World/DecomposeDouble3.outputs:x>
        custom double inputs:b = 100
        custom token node:type = "omni.graph.examples.python.SubtractDouble"
        custom int node:typeVersion = 1
        custom double outputs:out = -1
    }

    def ComputeNode "ComposeDouble3"
    {
        custom double inputs:x
        prepend double inputs:x.connect = </World/SubtractDouble.outputs:out>
        custom double inputs:y
        prepend double inputs:y.connect = </World/DecomposeDouble3.outputs:y>
        custom double inputs:z
        prepend double inputs:z.connect = </World/DecomposeDouble3.outputs:z>
        custom token node:type = "omni.graph.examples.python.ComposeDouble3"
        custom int node:typeVersion = 1
        custom double3 outputs:double3 = (-1, 0, 0)
    }

    def Sphere "Sphere"
    {
        float3[] extent = [(-50, -50, -50), (50, 50, 50)]
        double radius = 50
        custom bool refinementEnableOverride = 1
        custom int refinementLevel = 2
        double3 xformOp:rotateXYZ = (0, 0, 0)
        double3 xformOp:scale = (1, 1, 1)
        double3 xformOp:translate = (-129.222733, 0, -51.330466)
        prepend double3 xformOp:translate.connect = </World/ComposeDouble3.outputs:double3>
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ", "xformOp:scale"]
    }

    


}

