{"action":"closed","issue":{"url":"https://api.github.com/repos/Microsoft/WinObjC/issues/547","repository_url":"https://api.github.com/repos/Microsoft/WinObjC","labels_url":"https://api.github.com/repos/Microsoft/WinObjC/issues/547/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/WinObjC/issues/547/comments","events_url":"https://api.github.com/repos/Microsoft/WinObjC/issues/547/events","html_url":"https://github.com/Microsoft/WinObjC/issues/547","id":159720305,"number":547,"title":"[GLKit] GLKMatrix4Invert Non-invertible matrices not properly detected","user":{"login":"shahmeeresmail","id":17790501,"avatar_url":"https://avatars.githubusercontent.com/u/17790501?v=3","gravatar_id":"","url":"https://api.github.com/users/shahmeeresmail","html_url":"https://github.com/shahmeeresmail","followers_url":"https://api.github.com/users/shahmeeresmail/followers","following_url":"https://api.github.com/users/shahmeeresmail/following{/other_user}","gists_url":"https://api.github.com/users/shahmeeresmail/gists{/gist_id}","starred_url":"https://api.github.com/users/shahmeeresmail/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shahmeeresmail/subscriptions","organizations_url":"https://api.github.com/users/shahmeeresmail/orgs","repos_url":"https://api.github.com/users/shahmeeresmail/repos","events_url":"https://api.github.com/users/shahmeeresmail/events{/privacy}","received_events_url":"https://api.github.com/users/shahmeeresmail/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-06-10T20:47:10Z","updated_at":"2016-06-22T02:37:24Z","closed_at":"2016-06-22T02:37:24Z","body":"According to the spec, if a matrix is non-invertible, the identity matrix should be returned and the value pointed to by the bool pointer passed in should be set to false.\r\n\r\nNeither is being done right now for non-invertible matrices and the value pointed to by the passed in bool pointer is always set to true as long as it isn't a null pointer.\r\n\r\nExample:\r\nGLKMatrix4 trans = GLKMatrix4MakeTranslation(1.0f, 1.0f, 1.0f);\r\nGLKMatrix4 rot = GLKMatrix4MakeXRotation(M_PI_2);\r\nGLKMatrix4 prod = GLKMatrix4Multiply(rot, trans);\r\n// Setting this element to 0 makes the matrix non-invertible\r\nprod.m33 = 0.0f;\r\n// Attempt to invert\r\nbool isInvertible = true;\r\nGLKMatrix4 inverse = GLKMatrix4Invert(prod, &isInvertible);\r\n\r\nExpected: The value of inverse is GLKMatrix4Identity and isInvertible is false.\r\n\r\nActual: Inverse is not the identity and isInvertible is true."}}
{"actor":{"display_login":"rajsesh-msft"}}