public void TestMarshal_MeshMorphAnimationChannel() { MeshMorphAnimationChannel morph = new MeshMorphAnimationChannel(); morph.Name = "TestMorph"; MeshMorphKey morphKey1 = new MeshMorphKey(); morphKey1.Time = 0.0f; morphKey1.Values.Add(1); morphKey1.Values.Add(2); morphKey1.Weights.Add(0.5); morphKey1.Weights.Add(1.0); MeshMorphKey morphKey2 = new MeshMorphKey(); morphKey2.Time = 1.0f; morphKey2.Values.Add(1); morphKey2.Values.Add(2); morphKey2.Weights.Add(.25); morphKey2.Weights.Add(.25); morph.MeshMorphKeys.Add(morphKey1); morph.MeshMorphKeys.Add(morphKey2); Animation anim = new Animation(); anim.MeshMorphAnimationChannels.Add(morph); Scene scene = new Scene(); scene.Animations.Add(anim); IntPtr scenePtr = Scene.ToUnmanagedScene(scene); Assert.IsTrue(scenePtr != IntPtr.Zero); Scene scene2 = Scene.FromUnmanagedScene(scenePtr); Scene.FreeUnmanagedScene(scenePtr); Assert.IsTrue(scene2.AnimationCount == 1); Animation otherAnim = scene2.Animations[0]; Assert.IsTrue(otherAnim.MeshMorphAnimationChannelCount == 1); MeshMorphAnimationChannel otherMorph = otherAnim.MeshMorphAnimationChannels[0]; Assert.IsTrue(otherMorph.Name == morph.Name); Assert.IsTrue(otherMorph.MeshMorphKeyCount == 2); CompareMorphKey(otherMorph.MeshMorphKeys[0], morph.MeshMorphKeys[0]); CompareMorphKey(otherMorph.MeshMorphKeys[1], morph.MeshMorphKeys[1]); }
private void CompareMorphKey(MeshMorphKey key1, MeshMorphKey key2) { TestHelper.AssertEquals(key1.Time, key2.Time); Assert.IsTrue(key1.Values.Count == key1.Weights.Count); Assert.IsTrue(key2.Values.Count == key2.Weights.Count); Assert.IsTrue(key1.Values.Count == key2.Values.Count); for (int i = 0; i < key1.Values.Count; i++) { TestHelper.AssertEquals(key1.Weights[i], key2.Weights[i]); Assert.IsTrue(key1.Values[i] == key2.Values[i]); } }