diff --git a/runtime/bindings-generator.cs b/runtime/bindings-generator.cs index aecccea761..11851709de 100644 --- a/runtime/bindings-generator.cs +++ b/runtime/bindings-generator.cs @@ -1499,6 +1499,30 @@ namespace Xamarin.BindingMethods.Generator } ); + data.Add ( + new FunctionData { + Comment = " // void func (Quaternion, double)", + Prefix = "simd__", + Variants = Variants.NonStret, + Parameters = new ParameterData [] { + new ParameterData { TypeData = Types.QuatF }, + new ParameterData { TypeData = Types.Double }, + }, + } + ); + + data.Add ( + new FunctionData { + Comment = " // void func (Quaterniond, double)", + Prefix = "simd__", + Variants = Variants.NonStret, + Parameters = new ParameterData [] { + new ParameterData { TypeData = Types.QuatD }, + new ParameterData { TypeData = Types.Double }, + }, + } + ); + data.Add ( new FunctionData { Comment = " // void func (Quaternion)", @@ -1522,6 +1546,18 @@ namespace Xamarin.BindingMethods.Generator } ); + data.Add ( + new FunctionData { + Comment = " // Quaternion func (double)", + Prefix = "simd__", + Variants = Variants.All, + ReturnType = Types.QuatF, + Parameters = new ParameterData [] { + new ParameterData { TypeData = Types.Double }, + }, + } + ); + // Required for ModelIO data.Add ( new FunctionData { diff --git a/src/modelio.cs b/src/modelio.cs index bc43fa0001..249ab4407d 100644 --- a/src/modelio.cs +++ b/src/modelio.cs @@ -3047,12 +3047,15 @@ namespace ModelIO { [iOS (13,0), Mac (10,15), TV (13,0)] [BaseType (typeof (MDLAnimatedValue))] interface MDLAnimatedQuaternion { + [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] [Export ("setFloatQuaternion:atTime:")] void SetQuaternion (Quaternion value, double atTime); + [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] [Export ("setDoubleQuaternion:atTime:")] void SetQuaternion (Quaterniond value, double atTime); + [MarshalDirective (NativePrefix = "xamarin_simd__", Library = "__Internal")] [Export ("floatQuaternionAtTime:")] Quaternion GetFloatQuaternion (double atTime); diff --git a/tests/monotouch-test/ModelIO/MDLAnimatedValueTypesTests.cs b/tests/monotouch-test/ModelIO/MDLAnimatedValueTypesTests.cs index 2169a76314..e552387b69 100644 --- a/tests/monotouch-test/ModelIO/MDLAnimatedValueTypesTests.cs +++ b/tests/monotouch-test/ModelIO/MDLAnimatedValueTypesTests.cs @@ -485,8 +485,9 @@ namespace MonoTouchFixtures.ModelIO { var quat = new Quaternion (1.1f, 2.2f, 3.3f, 4.4f); animatedQuat.SetQuaternion (quat, 0); - Asserts.AreEqual (quat, animatedQuat.GetFloatQuaternion (0), "A"); - + 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");