public void MDLAnimatedQuaternionTest() { // Quaternion TestRuntime.AssertXcodeVersion(11, 0); using (var animatedQuat = new MDLAnimatedQuaternion()) { var quat = new Quaternion(1.1f, 2.2f, 3.3f, 4.4f); animatedQuat.SetQuaternion(quat, 0); var returnedQuat = animatedQuat.GetFloatQuaternion(0); Asserts.AreEqual(quat, returnedQuat, "A"); animatedQuat.Reset(TestMatrices.QuaternionArray, TestMatrices.GetTimesArray(TestMatrices.QuaternionArray.Length)); var arr = animatedQuat.GetQuaternionValues(20); Asserts.AreEqual(TestMatrices.QuaternionArray, arr, "C1"); } using (var animatedQuat = new MDLAnimatedQuaternion()) { var quatd = new Quaterniond(10.1, 20.2, 30.3, 40.4); animatedQuat.SetQuaternion(quatd, 0); Asserts.AreEqual(quatd, animatedQuat.GetDoubleQuaternion(0), 0.0001, "B"); animatedQuat.Reset(TestMatrices.QuaterniondArray, TestMatrices.GetTimesArray(TestMatrices.QuaterniondArray.Length)); var arrd = animatedQuat.GetQuaterniondValues(20); Asserts.AreEqual(TestMatrices.QuaterniondArray, arrd, "C2"); } }
public static void AreEqual(Quaterniond expected, Quaterniond actual, double delta, string message) { Assert.AreEqual(expected.X, actual.X, delta, $"{message} (X) expected: {expected} actual: {actual}"); Assert.AreEqual(expected.Y, actual.Y, delta, $"{message} (Y) expected: {expected} actual: {actual}"); Assert.AreEqual(expected.Z, actual.Z, delta, $"{message} (Z) expected: {expected} actual: {actual}"); Assert.AreEqual(expected.W, actual.W, delta, $"{message} (W) expected: {expected} actual: {actual}"); }
public static void AreEqual(Quaterniond expected, Quaterniond actual, double delta, string message) { Assert.AreEqual(expected.X, actual.X, delta, message + " (X)"); Assert.AreEqual(expected.Y, actual.Y, delta, message + " (Y)"); Assert.AreEqual(expected.Z, actual.Z, delta, message + " (Z)"); Assert.AreEqual(expected.W, actual.W, delta, message + " (W)"); }
public void Rotate_d() { var quaternion = new Quaterniond(1, 2, 3, 4); var matrix = SCNMatrix4.Rotate(quaternion); AssertEqual(matrix, "Rotate", TwoFifteenths, 7 * TwoFifteenths, -OneThird, 0, -TwoThirds, OneThird, TwoThirds, 0, 11 * OneFifteenth, TwoFifteenths, TwoThirds, 0, 0, 0, 0, 1); }
public virtual Quaterniond [] GetQuaterniondValues() { var count = ElementCount * TimeSampleCount; var timesArr = new Quaterniond [(int)count]; unsafe { int typeSize = sizeof(Quaterniond); fixed(Quaterniond *arrptr = timesArr) MDLMemoryHelper.FetchValues(typeSize, (IntPtr)arrptr, count, _GetDoubleQuaternionArray); } return(timesArr); }
public virtual Quaterniond [] GetQuaterniondValues(nuint maxCount) { var timesArr = new Quaterniond [(int)maxCount]; unsafe { int typeSize = sizeof(Quaterniond); fixed(Quaterniond *arrptr = timesArr) { var rv = MDLMemoryHelper.FetchValues(typeSize, (IntPtr)arrptr, maxCount, _GetDoubleQuaternionArray); Array.Resize(ref timesArr, (int)rv); } } return(timesArr); }
public static void AreEqual(Quaterniond expected, Quaterniond actual, string message) { if (expected == null) { if (actual == null) { return; } Assert.Fail($"Expected null, got {actual}. {message}"); } else if (actual == null) { Assert.Fail($"Expected {expected}, got null. {message}"); } Assert.AreEqual(expected.X, actual.X, $"{message} (X) expected: {expected} actual: {actual}"); Assert.AreEqual(expected.Y, actual.Y, $"{message} (Y) expected: {expected} actual: {actual}"); Assert.AreEqual(expected.Z, actual.Z, $"{message} (Z) expected: {expected} actual: {actual}"); Assert.AreEqual(expected.W, actual.W, $"{message} (W) expected: {expected} actual: {actual}"); }