Пример #1
0
        public static void ApiTest()
        {
            UsdStage s    = UsdStage.CreateInMemory();
            var      prim = s.DefinePrim(new SdfPath("/Foo"));

            s.SetStartTimeCode(1.0);
            s.SetEndTimeCode(10.0);
            AssertEqual(1.0, s.GetStartTimeCode());
            AssertEqual(10.0, s.GetEndTimeCode());

            var defultPrimToken = new TfToken("defaultPrim");
            var value           = new VtValue();

            // Verify initial default prim / built-in metadata states.
            {
                AssertFalse(s.HasDefaultPrim());
                AssertFalse(s.GetDefaultPrim().IsValid());

                // defaultPrim is always valid metadata, it's built-in.
                AssertTrue(s.HasMetadata(defultPrimToken));
                // But it should not yet have an *authored* value.
                AssertFalse(s.HasAuthoredMetadata(defultPrimToken));
                // Even though it's not authored, reading it should succeed.
                AssertTrue(s.GetMetadata(defultPrimToken, value));
                AssertEqual(((TfToken)value).ToString(), "");
            }

            // Set the default prim, which should set the defaultPrim metadata.
            s.SetDefaultPrim(prim);
            {
                // Verify via the Stage API
                AssertTrue(s.HasDefaultPrim());
                AssertTrue(s.GetDefaultPrim().IsValid());
                AssertEqual(s.GetDefaultPrim().GetPath(), new SdfPath("/Foo"));

                // Verify via the metadata API
                AssertTrue(s.HasMetadata(defultPrimToken));
                AssertTrue(s.HasAuthoredMetadata(defultPrimToken));
                AssertTrue(s.GetMetadata(defultPrimToken, value));
                AssertEqual(((TfToken)value).ToString(), "Foo");
            }

            string str = s.GetRootLayer().ExportToString();

            s.ClearDefaultPrim();
            {
                AssertFalse(s.HasDefaultPrim());
                AssertFalse(s.GetDefaultPrim().IsValid());
                AssertFalse(s.HasAuthoredMetadata(defultPrimToken));
                AssertTrue(s.GetMetadata(defultPrimToken, value));
                AssertEqual(((TfToken)value).ToString(), "");
            }

            var classPrim = s.CreateClassPrim(new SdfPath("/Foo_class_"));

            {
                AssertTrue(classPrim.IsValid());
                AssertEqual(classPrim.GetPath(), new SdfPath("/Foo_class_"));
            }

            AssertEqual(s.GetFramesPerSecond(), 24.0);
            s.SetFramesPerSecond(90.0);
            AssertEqual(s.GetFramesPerSecond(), 90.0);
        }