[ModelIO] Fix MDLAnimatedQuaternion bindings (#6991)
Quaternion does need our special marshalling.
This commit is contained in:
Родитель
5511bb7ec6
Коммит
a1fba90ecb
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
Загрузка…
Ссылка в новой задаче