#usda 1.0
(
    customLayerData = {
        dictionary cameraSettings = {
            dictionary Front = {
                double3 position = (5, 0, 0)
                double radius = 5
            }
            dictionary Perspective = {
                double3 position = (-237.5508897881861, 143.8501206604193, 6.653849941545425)
                double3 target = (1616.7484400072897, 1677.3263304544234, -459.52584412391553)
            }
            dictionary Right = {
                double3 position = (0, -5, 0)
                double radius = 5
            }
            dictionary Top = {
                double3 position = (0, 0, 5)
                double radius = 5
            }
            string boundCamera = "/OmniverseKit_Persp"
        }
        dictionary metricsAssembler = {
            dictionary "/World/LogWagon" = {
            }
            dictionary "/World/TRAXX147" = {
            }
            int version = 1
        }
        dictionary navmeshSettings = {
            double agentHeight = 180
            double agentRadius = 20
            bool excludeRigidBodies = 1
            uint64 ver = 1
            double voxelCeiling = 460
        }
        dictionary omni_layer = {
            string authoring_layer = "./Tutorial1_TrackFromCurve.usda"
            dictionary locked = {
            }
            dictionary muteness = {
            }
        }
        dictionary physicsSettings = {
            bool "/physics/mouseGrabIgnoreInvisible" = 0
        }
        dictionary renderSettings = {
            float3 "rtx:debugView:pixelDebug:textColor" = (0, 1e18, 0)
            float3 "rtx:fog:fogColor" = (0.75, 0.75, 0.75)
            float3 "rtx:index:regionOfInterestMax" = (0, 0, 0)
            float3 "rtx:index:regionOfInterestMin" = (0, 0, 0)
            float3 "rtx:iray:environment_dome_ground_position" = (0, 0, 0)
            float3 "rtx:iray:environment_dome_ground_reflectivity" = (0, 0, 0)
            float3 "rtx:iray:environment_dome_rotation_axis" = (3.4028235e38, 3.4028235e38, 3.4028235e38)
            float3 "rtx:post:backgroundZeroAlpha:backgroundDefaultColor" = (0, 0, 0)
            float3 "rtx:post:colorcorr:contrast" = (1, 1, 1)
            float3 "rtx:post:colorcorr:gain" = (1, 1, 1)
            float3 "rtx:post:colorcorr:gamma" = (1, 1, 1)
            float3 "rtx:post:colorcorr:offset" = (0, 0, 0)
            float3 "rtx:post:colorcorr:saturation" = (1, 1, 1)
            float3 "rtx:post:colorgrad:blackpoint" = (0, 0, 0)
            float3 "rtx:post:colorgrad:contrast" = (1, 1, 1)
            float3 "rtx:post:colorgrad:gain" = (1, 1, 1)
            float3 "rtx:post:colorgrad:gamma" = (1, 1, 1)
            float3 "rtx:post:colorgrad:lift" = (0, 0, 0)
            float3 "rtx:post:colorgrad:multiply" = (1, 1, 1)
            float3 "rtx:post:colorgrad:offset" = (0, 0, 0)
            float3 "rtx:post:colorgrad:whitepoint" = (1, 1, 1)
            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)
            float3 "rtx:sceneDb:ambientLightColor" = (0.1, 0.1, 0.1)
            double "rtx:translucency:worldEps" = 0.005
        }
    }
    defaultPrim = "World"
    endTimeCode = 100
    metersPerUnit = 1
    startTimeCode = 0
    timeCodesPerSecond = 60
    upAxis = "Z"
)

over "Render" (
    hide_in_stage_window = true
)
{
}

def Xform "World"
{
    def BasisCurves "BasisCurves" (
        active = true
        delete apiSchemas = ["OmniSceneVisualizationAPI"]
        prepend apiSchemas = ["OmniSceneVisualizationAPI"]
    )
    {
        uniform token basis = "bezier"
        int[] curveVertexCounts = [28]
        float3[] extent = [(-829.8745, -734.01056, -0.12504472), (622.6675, 229.33124, 0.12503903)]
        custom bool omni:scene:visualization:drawWireframe = 1
        point3f[] points = [(622.5425, -5.0532227, 0), (573.2373, 46.56787, 0), (532.4331, 120.297226, 0), (464.7659, 160.13428, 0), (400.30573, 198.0833, 0), (321.34418, 229.20624, 0.0000062656286), (232.35895, 217.4256, 0), (170.56494, 209.24477, -0.00000435104), (139.31451, 121.65114, -0.000025342059), (77.833, 91.296814, -0.000030517578), (11.683044, 58.637615, -0.000036086087), (-121.386635, 105.26606, -0.000030517578), (-129.30989, 35.304794, -0.000030517578), (-149.11084, -139.53491, -0.000030517578), (1.8429933, -298.495, -0.000044715016), (5.843872, -458.4062, -0.000030517578), (8.087728, -548.0909, -0.000022555078), (-16.57219, -676.9758, 0.000025883157), (-99.8233, -697.04065, 0.000030517578), (-252.69666, -733.88556, 0.000039027727), (-481.95557, -725.353, 0.0000053374197), (-591.9006, -591.8138, 0), (-738.796, -413.39453, -0.0000071312265), (-829.7495, -144.55673, 0), (-717.0726, 11.633423, 0), (-582.27734, 198.48341, 0), (-274.41486, 139.63666, 0), (-73.20679, 197.81995, 0)]
        uniform token purpose = "default"
        uniform token type = "cubic"
        float[] widths = [0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25]
        quatd xformOp:orient = (1, 0, 0, 0)
        double3 xformOp:scale = (1, 1, 1)
        double3 xformOp:translate = (0, -13.170104795275584, 0)
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
    }

    def TSTrackSystem "TrackSystem"
    {
        def TSTrackCollection "TrackCollection"
        {
            def TSTrack "Track"
            {
                rel curve = </World/BasisCurves>
            }
        }
    }

    def "TRAXX147" (
        prepend payload = @../../data/B_B_/TRAXX147.usda@
    )
    {
        quatf xformOp:orient = (0.99815756, -0.024961958, 0.0054319827, 0.055035472)
        float3 xformOp:scale = (1, 1, 1)
        double3 xformOp:scale:unitsResolve = (0.01, 0.01, 0.01)
        double3 xformOp:translate = (-214.2883571025946, 159.7442756410768, -0.23457477433919852)
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale", "xformOp:scale:unitsResolve"]

        over "TRAXX_147"
        {
            over "BogieBase"
            {
            }

            over "WheelFrameNorth"
            {
                over "WheelFrame"
                {
                    string physics:targetVelocity = "-100km/h"

                    over "trackJoint"
                    {
                        rel physics:trackSystem = </World/TrackSystem>
                    }
                }
            }

            over "WheelFrameSouth"
            {
                over "WheelFrame"
                {
                    string physics:targetVelocity = "-100km/h"

                    over "trackJoint"
                    {
                        rel physics:trackSystem = </World/TrackSystem>
                    }
                }
            }
        }
    }
}

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

    def DomeLight "DomeLight" (
        prepend apiSchemas = ["ShapingAPI"]
    )
    {
        float inputs:intensity = 1000
        float inputs:shaping:cone:angle = 180
        float inputs:shaping:cone:softness
        float inputs:shaping:focus
        color3f inputs:shaping:focusTint
        asset inputs:shaping:ies:file
        token inputs:texture:format = "latlong"
        quatd xformOp:orient = (1, 0, 0, 0)
        double3 xformOp:scale = (1, 1, 1)
        double3 xformOp:translate = (0, 0, 0)
        uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"]
    }
}

