#usda 1.0
(
    defaultPrim = "Root"
    metersPerUnit = 1
    upAxis = "Y"
)

def Xform "Root"
{
    float3[] extent = [(-0.005, -0.005, -0.005), (0.005, 0.005, 0.005)]

    def Cube "Cube" (
        active = true
        prepend apiSchemas = ["MaterialBindingAPI"]
    )
    {
        rel material:binding = </Root/Cube/DefaultMaterial>
        double size = 0.01

        def Material "DefaultMaterial"
        {
            token inputs:frame:stPrimvarName = "st"
            token outputs:mtlx:surface
            token outputs:realitykit:vertex
            prepend token outputs:surface.connect = </Root/Cube/DefaultMaterial/DefaultSurfaceShader.outputs:surface>

            def Shader "DefaultSurfaceShader"
            {
                uniform token info:id = "UsdPreviewSurface"
                color3f inputs:diffuseColor = (1, 1, 1)
                color3f inputs:diffuseColor.connect = </Root/Cube/DefaultMaterial/diffuseColor.outputs:rgb>
                float inputs:metallic = 1
                float inputs:roughness = 0.75
                token outputs:surface
            }

            def Shader "diffuseColor"
            {
                uniform token info:id = "UsdUVTexture"
                asset inputs:file = @Backgrounds/solid_color_image_01.jpg@
                float2 inputs:st.connect = </Root/Cube/DefaultMaterial/diffuseColor/TexCoordReader.outputs:result>
                color3f outputs:rgb

                def Shader "TexCoordReader"
                {
                    uniform token info:id = "UsdPrimvarReader_float2"
                    token inputs:varname.connect = </Root/Cube/DefaultMaterial/DefaultSurfaceShader.inputs:frame:stPrimvarName>
                    float2 outputs:result
                }

                def FrameSampler "RandomTexture" {
                    asset folder = @LeonaroTexturesAssets/TextureImages@
                    string[] filenames = ["*.jpg", "*.hdr"]
                }
            }
        }
    }
}
