public static Matrix4 ToOpenTK(this global::System.Numerics.Matrix4x4 m) { return(new Matrix4(m.M11, m.M12, m.M13, m.M14, m.M21, m.M22, m.M23, m.M24, m.M31, m.M32, m.M33, m.M34, m.M41, m.M42, m.M43, m.M44)); }
public static void AreEqual(MatrixFloat4x4 expected, Matrix4 actual, string message) { AreEqual(expected.M11, actual.M11, $"{message} (M11) expected: {expected} actual: {actual}"); AreEqual(expected.M21, actual.M21, $"{message} (M21) expected: {expected} actual: {actual}"); AreEqual(expected.M31, actual.M31, $"{message} (M31) expected: {expected} actual: {actual}"); AreEqual(expected.M41, actual.M41, $"{message} (M41) expected: {expected} actual: {actual}"); AreEqual(expected.M12, actual.M12, $"{message} (M12) expected: {expected} actual: {actual}"); AreEqual(expected.M22, actual.M22, $"{message} (M22) expected: {expected} actual: {actual}"); AreEqual(expected.M32, actual.M32, $"{message} (M32) expected: {expected} actual: {actual}"); AreEqual(expected.M42, actual.M42, $"{message} (M42) expected: {expected} actual: {actual}"); AreEqual(expected.M13, actual.M13, $"{message} (M13) expected: {expected} actual: {actual}"); AreEqual(expected.M23, actual.M23, $"{message} (M23) expected: {expected} actual: {actual}"); AreEqual(expected.M33, actual.M33, $"{message} (M33) expected: {expected} actual: {actual}"); AreEqual(expected.M43, actual.M43, $"{message} (M43) expected: {expected} actual: {actual}"); AreEqual(expected.M14, actual.M14, $"{message} (M14) expected: {expected} actual: {actual}"); AreEqual(expected.M24, actual.M24, $"{message} (M24) expected: {expected} actual: {actual}"); AreEqual(expected.M34, actual.M34, $"{message} (M34) expected: {expected} actual: {actual}"); AreEqual(expected.M44, actual.M44, $"{message} (M44) expected: {expected} actual: {actual}"); }
public static void AreEqual(MatrixFloat4x4 expected, Matrix4 actual, string message) { AreEqual(expected.M11, actual.M11, message + " (M11)"); AreEqual(expected.M21, actual.M21, message + " (M21)"); AreEqual(expected.M31, actual.M31, message + " (M31)"); AreEqual(expected.M41, actual.M41, message + " (M41)"); AreEqual(expected.M12, actual.M12, message + " (M12)"); AreEqual(expected.M22, actual.M22, message + " (M22)"); AreEqual(expected.M32, actual.M32, message + " (M32)"); AreEqual(expected.M42, actual.M42, message + " (M42)"); AreEqual(expected.M13, actual.M13, message + " (M13)"); AreEqual(expected.M23, actual.M23, message + " (M23)"); AreEqual(expected.M33, actual.M33, message + " (M33)"); AreEqual(expected.M43, actual.M43, message + " (M43)"); AreEqual(expected.M14, actual.M14, message + " (M14)"); AreEqual(expected.M24, actual.M24, message + " (M24)"); AreEqual(expected.M34, actual.M34, message + " (M34)"); AreEqual(expected.M44, actual.M44, message + " (M44)"); }
public bool TryGetTransformTo(string targetId, out global::System.Numerics.Matrix4x4 result) { throw new global::System.NotImplementedException("The member bool PerceptionDepthFrameSource.TryGetTransformTo(string targetId, out Matrix4x4 result) is not implemented in Uno."); }
public void SetMatrix4x4Parameter(string key, global::System.Numerics.Matrix4x4 value) { global::Windows.Foundation.Metadata.ApiInformation.TryRaiseNotImplemented("Windows.UI.Composition.CompositionAnimation", "void CompositionAnimation.SetMatrix4x4Parameter(string key, Matrix4x4 value)"); }
public void Ctors() { #if NET var id = NMatrix4.Identity; #else Matrix4 id = Matrix4.Identity; #endif var V3 = new Vector3(1, 2, 3); using (var obj = new MDLTransform(id)) { Asserts.AreEqual(Vector3.Zero, obj.Translation, "Translation"); Asserts.AreEqual(Vector3.One, obj.Scale, "Scale"); Asserts.AreEqual(Vector3.Zero, obj.Rotation, "Rotation"); Asserts.AreEqual(id, obj.Matrix, "Matrix"); if (TestRuntime.CheckXcodeVersion(8, 0)) { Asserts.AreEqual(false, obj.ResetsTransform, "ResetsTransform"); } obj.Translation = V3; Asserts.AreEqual(V3, obj.Translation, "Translation 2"); } if (TestRuntime.CheckXcodeVersion(8, 0)) { using (var obj = new MDLTransform(id, true)) { Asserts.AreEqual(Vector3.Zero, obj.Translation, "Translation"); Asserts.AreEqual(Vector3.One, obj.Scale, "Scale"); Asserts.AreEqual(Vector3.Zero, obj.Rotation, "Rotation"); Asserts.AreEqual(id, obj.Matrix, "Matrix"); Asserts.AreEqual(true, obj.ResetsTransform, "ResetsTransform"); obj.Translation = V3; Asserts.AreEqual(V3, obj.Translation, "Translation 2"); } } using (var obj = new MDLTransform(id)) { V3 *= 2; obj.Scale = V3; Asserts.AreEqual(V3, obj.Scale, "Scale 2"); } using (var obj = new MDLTransform(id)) { V3 *= 2; obj.Rotation = V3; Asserts.AreEqual(V3, obj.Rotation, "Rotation 2"); } using (var obj = new MDLTransform(id)) { V3 *= 2; obj.Rotation = V3; Asserts.AreEqual(V3, obj.Rotation, "Rotation 2"); } #if NET var m4 = new NMatrix4( 4, 0, 0, 2, 0, 3, 0, 3, 0, 0, 2, 4, 0, 0, 0, 1); #else var m4 = new Matrix4( 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 2, 3, 4, 1); #endif using (var obj = new MDLTransform(m4)) { Asserts.AreEqual(Vector3.Zero, obj.Rotation, "Rotation 3"); Asserts.AreEqual(new Vector3(4, 3, 2), obj.Scale, "Scale 3"); Asserts.AreEqual(new Vector3(2, 3, 4), obj.Translation, "Translation 3"); Asserts.AreEqual(m4, obj.Matrix, 0.0001f, "Matrix 3"); } #if !NET var m4x4 = new MatrixFloat4x4( 4, 0, 0, 2, 0, 3, 0, 3, 0, 0, 2, 4, 0, 0, 0, 1); using (var obj = new MDLTransform(m4x4)) { Asserts.AreEqual(Vector3.Zero, obj.Rotation, "Rotation 4"); Asserts.AreEqual(new Vector3(4, 3, 2), obj.Scale, "Scale 4"); Asserts.AreEqual(new Vector3(2, 3, 4), obj.Translation, "Translation 4"); #if NET Asserts.AreEqual(m4x4, obj.Matrix, 0.0001f, "Matrix4x4 4"); #else Asserts.AreEqual(m4x4, obj.GetMatrix4x4(), 0.0001f, "Matrix4x4 4"); #endif Asserts.AreEqual(m4x4, CFunctions.GetMatrixFloat4x4(obj, "matrix"), 0.0001f, "Matrix4x4-native 4"); } #endif }
public global::Windows.UI.Composition.CompositionGetValueStatus TryGetMatrix4x4(string propertyName, out global::System.Numerics.Matrix4x4 value) { throw new global::System.NotImplementedException("The member CompositionGetValueStatus CompositionPropertySet.TryGetMatrix4x4(string propertyName, out Matrix4x4 value) is not implemented in Uno."); }
public void InsertMatrix4x4(string propertyName, global::System.Numerics.Matrix4x4 value) { global::Windows.Foundation.Metadata.ApiInformation.TryRaiseNotImplemented("Windows.UI.Composition.CompositionPropertySet", "void CompositionPropertySet.InsertMatrix4x4(string propertyName, Matrix4x4 value)"); }
public void Ctors() { Vector2 V2; Vector3 V3; Vector4 V4; #if NET NMatrix4 M4; #else Matrix4 M4; MatrixFloat4x4 M4x4; #endif MDLTextureSampler tsv; NSUrl url; using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion)) { Assert.AreEqual(MDLMaterialSemantic.AmbientOcclusion, obj.Semantic, "1 Semantic"); Assert.IsNull(obj.Color, "1 Color"); Asserts.AreEqual(Vector2.Zero, obj.Float2Value, "1 Float2Value"); Asserts.AreEqual(Vector3.Zero, obj.Float3Value, "1 Float3Value"); Asserts.AreEqual(Vector4.Zero, obj.Float4Value, "1 Float4Value"); Assert.AreEqual(0.0f, obj.FloatValue, "1 FloatValue"); Asserts.AreEqual(Matrix4.Identity, obj.Matrix4x4, "1 Matrix4x4"); Assert.AreEqual("name", obj.Name, "1 Name"); Assert.IsNull(obj.StringValue, "1 StringValue"); Assert.IsNull(obj.TextureSamplerValue, "1 TextureSamplerValue"); Assert.AreEqual(MDLMaterialPropertyType.Float, obj.Type, "1 Type"); Assert.IsNull(obj.UrlValue, "1 UrlValue"); V2 = new Vector2(1, 2); V3 = new Vector3(3, 4, 5); V4 = new Vector4(6, 7, 8, 9); #if NET M4 = new NMatrix4(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); #else M4 = new Matrix4(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); M4x4 = new MatrixFloat4x4(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); #endif tsv = new MDLTextureSampler(); url = new NSUrl("http://xamarin.com"); obj.Semantic = MDLMaterialSemantic.Anisotropic; Assert.AreEqual(MDLMaterialSemantic.Anisotropic, obj.Semantic, "2 Semantic"); obj.Color = UIColor.Blue.CGColor; Assert.AreEqual(UIColor.Blue.CGColor.ToString(), obj.Color.ToString(), "2 Color"); obj.Float2Value = V2; Asserts.AreEqual(V2, obj.Float2Value, "2 Float2Value"); obj.Float3Value = V3; Asserts.AreEqual(V3, obj.Float3Value, "2 Float3Value"); obj.Float4Value = V4; Asserts.AreEqual(V4, obj.Float4Value, "2 Float4Value"); obj.FloatValue = 3.14f; Assert.AreEqual(3.14f, obj.FloatValue, "2 FloatValue"); obj.Matrix4x4 = M4; // It looks like the Matrix4 setter is ignored, assigning a matrix // doesn't work in Xcode either. Asserts.AreEqual(Matrix4.Identity, obj.Matrix4x4, "2 Matrix4x4"); obj.Name = "new name"; Assert.AreEqual("new name", obj.Name, "2 Name"); obj.StringValue = "string value"; Assert.AreEqual("string value", obj.StringValue, "2 StringValue"); obj.TextureSamplerValue = tsv; Assert.AreEqual(tsv.Handle, obj.TextureSamplerValue.Handle, "2 TextureSamplerValue"); Assert.AreEqual(MDLMaterialPropertyType.Texture, obj.Type, "2 Type"); // Looks like the URLValue can't change after construction obj.UrlValue = url; if (TestRuntime.CheckXcodeVersion(9, 0)) { Assert.AreSame(url, obj.UrlValue, "2 UrlValue"); } else { Assert.IsNull(obj.UrlValue, "2 UrlValue"); } } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, url)) { Assert.AreEqual(url.Handle, obj.UrlValue.Handle, "3 UrlValue"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, V3)) { Asserts.AreEqual(V3, obj.Float3Value, "4 Float3Value"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, tsv)) { Assert.AreEqual(tsv.Handle, obj.TextureSamplerValue.Handle, "5 TextureSamplerValue"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, "string value")) { Assert.AreEqual("string value", obj.StringValue, "6 StringValue"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, M4)) { Asserts.AreEqual(M4, obj.Matrix4x4, "7 Matrix4x4"); #if NET Asserts.AreEqual(CFunctions.GetMatrixFloat4x4(obj, "matrix4x4"), obj.Matrix4x4, "7b MatrixFloat4x4"); Asserts.AreEqual(M4, obj.Matrix4x4, "7c MatrixFloat4x4"); #else Asserts.AreEqual(CFunctions.GetMatrixFloat4x4(obj, "matrix4x4"), obj.MatrixFloat4x4, "7b MatrixFloat4x4"); Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)M4), obj.MatrixFloat4x4, "7c MatrixFloat4x4"); #endif } #if !NET using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, M4x4)) { Asserts.AreEqual(CFunctions.GetMatrixFloat4x4(obj, "matrix4x4"), obj.MatrixFloat4x4, "7' MatrixFloat4x4"); Asserts.AreEqual(M4x4, obj.MatrixFloat4x4, "7'b MatrixFloat4x4"); } #endif using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, V4)) { Asserts.AreEqual(V4, obj.Float4Value, "8 Float4Value"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, UIColor.Red.CGColor)) { Assert.AreEqual(UIColor.Blue.CGColor.ToString(), obj.Color.ToString(), "9 Color"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, V2)) { Asserts.AreEqual(V2, obj.Float2Value, "10 Float2Value"); } using (var obj = new MDLMaterialProperty("name", MDLMaterialSemantic.AmbientOcclusion, 3.1415f)) { Assert.AreEqual(3.1415f, obj.FloatValue, "11 FloatValue"); } }
public void Properties() { using (var obj = new MDLStereoscopicCamera()) { Assert.AreEqual(63f, obj.InterPupillaryDistance, "InterPupillaryDistance"); Assert.AreEqual(0f, obj.LeftVergence, "LeftVergence"); Assert.AreEqual(0f, obj.RightVergence, "RightVergence"); Assert.AreEqual(0f, obj.Overlap, "Overlap"); #if NET var mat1 = new Matrix4( 1, 0, 0, -0.63f, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); #else var mat1 = new Matrix4( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.63f, 0, 0, 1); #endif Asserts.AreEqual(mat1, obj.LeftViewMatrix, "LeftViewMatrix"); #if NET Asserts.AreEqual(mat1, CFunctions.GetMatrixFloat4x4(obj, "leftViewMatrix"), "LeftViewMatrix4x4 native"); #else Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat1), obj.LeftViewMatrix4x4, "LeftViewMatrix4x4"); Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat1), CFunctions.GetMatrixFloat4x4(obj, "leftViewMatrix"), "LeftViewMatrix4x4 native"); #endif #if NET var mat2 = new NMatrix4( 1, 0, 0, 0.63f, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); #else var mat2 = new Matrix4( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.63f, 0, 0, 1); #endif Asserts.AreEqual(mat2, obj.RightViewMatrix, "RightViewMatrix"); #if NET Asserts.AreEqual(mat2, CFunctions.GetMatrixFloat4x4(obj, "rightViewMatrix"), "RightViewMatrix4x4 native"); #else Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat2), obj.RightViewMatrix4x4, "RightViewMatrix4x4"); Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat2), CFunctions.GetMatrixFloat4x4(obj, "rightViewMatrix"), "RightViewMatrix4x4 native"); #endif #if NET var mat3 = new Matrix4( 1.308407f, 0, 0, 0, 0, 1.962611f, 0, 0, 0, 0, -1.0002f, -0.20002f, 0, 0, -1, 0); #else var mat3 = new Matrix4( 1.308407f, 0, 0, 0, 0, 1.962611f, 0, 0, 0, 0, -1.0002f, -1, 0, 0, -0.20002f, 0); #endif Asserts.AreEqual(mat3, obj.LeftProjectionMatrix, 0.0001f, "LeftProjectionMatrix"); #if NET Asserts.AreEqual(mat3, CFunctions.GetMatrixFloat4x4(obj, "leftProjectionMatrix"), 0.0001f, "LeftProjectionMatrix4x4 native"); #else Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat3), obj.LeftProjectionMatrix4x4, 0.0001f, "LeftProjectionMatrix4x4"); Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat3), CFunctions.GetMatrixFloat4x4(obj, "leftProjectionMatrix"), 0.0001f, "LeftProjectionMatrix4x4 native"); #endif Asserts.AreEqual(mat3, obj.RightProjectionMatrix, 0.0001f, "RightProjectionMatrix"); #if NET Asserts.AreEqual(mat3, CFunctions.GetMatrixFloat4x4(obj, "rightProjectionMatrix"), 0.0001f, "RightProjectionMatrix4x4 native"); #else Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat3), obj.RightProjectionMatrix4x4, 0.0001f, "RightProjectionMatrix4x4"); Asserts.AreEqual(MatrixFloat4x4.Transpose((MatrixFloat4x4)mat3), CFunctions.GetMatrixFloat4x4(obj, "rightProjectionMatrix"), 0.0001f, "RightProjectionMatrix4x4 native"); #endif } }