public void TestVertexBuilderSkin8() { var v0 = new VERTEXSKINNED8() .WithGeometry(new Vector3(0, 3, 0)) .WithSkinning ( (0, 0.3f), (1, 0.2f), (2, 0.1f), (3, 0.1f), (4, 0.1f), (5, 0.1f), (6, 0.1f) ); v0.Validate(); var v1 = new VERTEXSKINNED8() .WithGeometry(new Vector3(0, 3, 0)) .WithSkinning ( (0, 3), (1, 2), (2, 1), (3, 3), (4, 4), (5, 5), (6, 6) ); v1.Validate(); }
public void TestSkinnedVertexEquality() { var p = new Vector3(0, 3, 0); var w0 = Transforms.SparseWeight8.CreateUnchecked(new Vector4(0, 1, 2, 3), new Vector4(4, 5, 6, 7), new Vector4(4, 3, 2, 1) * 0.6f, new Vector4(4, 3, 2, 1) * 0.4f); var w1 = Transforms.SparseWeight8.CreateUnchecked(new Vector4(3, 2, 1, 0), new Vector4(7, 6, 5, 4), new Vector4(1, 2, 3, 4) * 0.6f, new Vector4(1, 2, 3, 4) * 0.4f); // the index/weight pairs are ordered diferently... Assert.AreNotEqual(w0.Index0, w1.Index0); Assert.AreNotEqual(w0.Weight0, w1.Weight0); // but they should be effectively the same. Assert.AreEqual(w0, w1); var v0 = new VERTEXSKINNED4() .WithGeometry(p) .WithSkinning(w0); var v1 = new VERTEXSKINNED4() .WithGeometry(p) .WithSkinning(w1); Assert.AreEqual(v0, v1); var v2 = new VERTEXSKINNED8() .WithGeometry(p) .WithSkinning(w0); var v3 = new VERTEXSKINNED8() .WithGeometry(p) .WithSkinning(w1); Assert.AreEqual(v0, v1); }