Beispiel #1
0
        public static void PrimvarsTest()
        {
            var sample  = PrimvarSample.GetTestSample();
            var sample2 = new PrimvarSample();
            var scene   = USD.NET.Scene.Create();

            scene.Write("/Foo", sample);

            PrintScene(scene);

            var prim = scene.Stage.GetPrimAtPath(new pxr.SdfPath("/Foo"));

            var garply = prim.GetAttribute(new pxr.TfToken("nested:foo:bar:garply"));

            AssertTrue(garply.GetNamespace() == new pxr.TfToken("nested:foo:bar"));

            var primvar = new pxr.UsdGeomPrimvar(
                prim.GetAttribute(new pxr.TfToken("primvars:somePrimvar")));

            AssertEqual(primvar.GetElementSize(), 1);

            primvar = new pxr.UsdGeomPrimvar(
                prim.GetAttribute(new pxr.TfToken("primvars:somePrimvar1")));
            AssertEqual(primvar.GetElementSize(), 1);

            primvar = new pxr.UsdGeomPrimvar(
                prim.GetAttribute(new pxr.TfToken("primvars:somePrimvar2")));
            AssertEqual(primvar.GetElementSize(), 2);

            primvar = new pxr.UsdGeomPrimvar(
                prim.GetAttribute(new pxr.TfToken("primvars:skel:jointIndices")));
            AssertEqual(primvar.GetElementSize(), 3);

            primvar = new pxr.UsdGeomPrimvar(
                prim.GetAttribute(new pxr.TfToken("primvars:nested:foo:bar:baz")));
            AssertEqual(primvar.GetElementSize(), 4);

            sample2.nestedSample = new PrimvarSample.NestedSample();
            scene.Read("/Foo", sample2);

            AssertEqual(sample.somePrimvar, sample2.somePrimvar);
            AssertEqual(sample.somePrimvar1, sample2.somePrimvar1);
            AssertEqual(sample.somePrimvar2, sample2.somePrimvar2);
            AssertEqual(sample.jointIndices, sample2.jointIndices);
            AssertEqual(sample.nestedSample.baz, sample2.nestedSample.baz);
            AssertEqual(sample.nestedSample.garply, sample2.nestedSample.garply);

            //
            // Test deserialization without nested object instantiated.
            //
            sample2 = new PrimvarSample();
            sample2.nestedSample = null;
            scene.Read("/Foo", sample2);

            AssertEqual(sample.somePrimvar, sample2.somePrimvar);
            AssertEqual(sample.somePrimvar1, sample2.somePrimvar1);
            AssertEqual(sample.somePrimvar2, sample2.somePrimvar2);
            AssertEqual(sample.jointIndices, sample2.jointIndices);
            AssertEqual(null, sample2.nestedSample);
        }
Beispiel #2
0
            public static PrimvarSample GetTestSample()
            {
                var sample = new PrimvarSample();

                sample.somePrimvar         = new int[] { 1, 2, 3, 4 };
                sample.somePrimvar1        = new int[] { 2, 4, 6, 8 };
                sample.somePrimvar2        = new int[] { 9, 8, 7, 6 };
                sample.jointIndices        = new int[] { 9, 8, 7, 6, 5, 3 };
                sample.nestedSample        = new NestedSample();
                sample.nestedSample.baz    = new int[] { 9, 8, 7, 1 };
                sample.nestedSample.garply = new int[] { 99, 88, 77 };
                return(sample);
            }
Beispiel #3
0
            public static PrimvarSample GetTestSample()
            {
                var sample = new PrimvarSample();

                sample.somePrimvar         = new int[] { 1, 2, 3, 4 };
                sample.somePrimvar1        = new int[] { 2, 4, 6, 8 };
                sample.somePrimvar2        = new int[] { 9, 8, 7, 6 };
                sample.jointIndices        = new int[] { 9, 8, 7, 6, 5, 3 };
                sample.nestedSample        = new NestedSample();
                sample.nestedSample.baz    = new int[] { 9, 8, 7, 1 };
                sample.nestedSample.garply = new int[] { 99, 88, 77 };

                var pv = new USD.NET.Primvar <float[]>();

                pv.value = new float[] { 123f };
                sample.nestedSample.namespacedDict["Foo"] = pv;

                pv       = new USD.NET.Primvar <float[]>();
                pv.value = new float[] { 3245f };
                sample.nestedSample.vanillaDict["Bar"] = pv;
                return(sample);
            }
        public static void PrimvarTest()
        {
            var scene   = Scene.Create();
            var sample  = new PrimvarSample();
            var sample2 = new PrimvarSample();

            sample.serialized.value         = new float[10];
            sample.serialized.interpolation = PrimvarInterpolation.FaceVarying;
            sample.serialized.elementSize   = 3;
            sample.serialized.indices       = new int[] { 1, 2, 3, 4, 1 };

            sample.scalar.value = 2.1f;
            AssertEqual(sample.scalar.interpolation, PrimvarInterpolation.Constant);
            AssertEqual(sample.scalar.GetInterpolationToken(), UsdGeomTokens.constant);

            sample.vector.value = new UnityEngine.Vector4[] {
                new UnityEngine.Vector4(1, 2, 3, 4),
                new UnityEngine.Vector4(4, 5, 6, 7)
            };
            sample.vector.elementSize = 4;

            scene.Write("/Foo/Bar", sample);
            WriteAndRead(ref sample, ref sample2, true);

            AssertEqual(sample.serialized.value, sample2.serialized.value);
            AssertEqual(sample.serialized.indices, sample2.serialized.indices);
            AssertEqual(sample.serialized.interpolation, sample2.serialized.interpolation);
            AssertEqual(sample.serialized.elementSize, sample2.serialized.elementSize);

            AssertEqual(sample.vector.value, sample2.vector.value);
            AssertEqual(sample.vector.indices, sample2.vector.indices);
            AssertEqual(sample.vector.interpolation, sample2.vector.interpolation);
            AssertEqual(sample.vector.elementSize, sample2.vector.elementSize);

            sample.notSerialized = new Primvar <float[]>();
            WriteAndRead(ref sample, ref sample2, true);
        }