#sdf 1.4.32
(
    """
    Museum case demonstrating time offset behaviors.
    """
)

def "Root" (
    """
    This example has a prim, Root, which references
    A.sdf with a time offset. A.sdf sublayers
    B.sdf with another time offset. In B.sdf,
    there is a prim, Model, with some animation, 
    which should get shifted due to the offsets.

    In B.sdf, there is also a child prim, Anim, 
    which has an Align avar that constrains to a 
    sibling prim, Frame, on frame 5. The constraint 
    path must be translated across the reference 
    from Model to Root. It must also be shifted
    by the offsets.
    """
    references = @./A.sdf@</Model> (offset = 10)
)
{
}

def "RefPayload" (
    """
    This example references a layer stack that introduces
    a payload in a sublayer. Both the reference and sublayer
    have offsets; the net effect of these offsets should
    be applied to the payload. 
    """
    references = @./ref.sdf@</Ref> (offset = 10)
)
{
}

def "MultiRef" (
    """
    This is similar to the RefPayload test case above, 
    but uses another reference instead of a payload. The
    net effect of all the offsets should be applied to
    this reference node just like the payload in the
    other test case.
    """
    references = @./ref.sdf@</Ref2> (offset = 10)
)
{
}

# The follow cases are repeats of the above case but using payloads instead
# of references and using a scale as well in the layer offset.
def "PayloadRoot" (
    payload = @./A.sdf@</Model> (offset = 10; scale = 2)
)
{
}

def "PayloadRefPayload" (
    payload = @./ref.sdf@</Ref> (offset = 10; scale = 2)
)
{
}

def "PayloadMultiRef" (
    payload = @./ref.sdf@</Ref2> (offset = 10; scale = 2)
)
{
}
