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); }
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); }
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); }