#usda 1.0
(
    defaultPrim = "CubeWithVariantsModel"
    upAxis = "Z"
)

def Xform "CubeWithVariantsModel" (
    assetInfo = {
        asset identifier = @./CubeWithVariantsModel.usda@
        string name = "CubeWithVariantsModel"
    }
    kind = "prop"
    variants = {
        string fooVariant = "DefaultFooVariant"
        string modelingVariant = "DefaultModelingVariant"
        string shadingVariant = "DefaultShadingVariant"
    }
    add variantSets = ["fooVariant", "modelingVariant", "shadingVariant"]
)
{
    def Xform "Geom"
    {
        def Mesh "Cube"
        {
            float3[] extent = [(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)]
            int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
            int[] faceVertexIndices = [0, 1, 3, 2, 2, 3, 5, 4, 4, 5, 7, 6, 6, 7, 1, 0, 1, 7, 5, 3, 6, 0, 2, 4]
            point3f[] points = [(-0.5, -0.5, 0.5), (0.5, -0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, -0.5), (0.5, 0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, -0.5, -0.5)]
            color3f[] primvars:displayColor = [(0.217638, 0.217638, 0.217638)]
        }
    }
    variantSet "fooVariant" = {
        "DefaultFooVariant" {
            over "Geom"
            {
                over "Cube"
                {
                    string variantAttribute = "Default"
                }
            }
        }

        "FooVariantA" {
            over "Geom"
            {
                over "Cube"
                {
                    string variantAttribute = "A"
                }
            }
        }

        "FooVariantB" {
            over "Geom"
            {
                over "Cube"
                {
                    string variantAttribute = "B"
                }
            }
        }

        "FooVariantC" {
            over "Geom"
            {
                over "Cube"
                {
                    string variantAttribute = "C"
                }
            }
        }
    }
    variantSet "modelingVariant" = {
        "DefaultModelingVariant" {

        }
        "ModVariantA" {

        }
        "ModVariantB" {

        }
        "ModVariantC" {

        }
    }
    variantSet "shadingVariant" = {
        "DefaultShadingVariant" {

        }
        "ShadVariantA" {

        }
        "ShadVariantB" {

        }
        "ShadVariantC" {

        }
    }
}
