Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XAMCORE_4_0: Our managed SCNMatrix4 is row-major, while the native SCNMatrix4 is column-major. #4652

Closed
rolfbjarne opened this issue Aug 20, 2018 · 0 comments · Fixed by #13695
Labels
breaking-change If an issue or a pull request represents a breaking change enhancement The issue or pull request is an enhancement iOS Issues affecting iOS macOS Issues affecting macOS
Milestone

Comments

@rolfbjarne
Copy link
Member

Our managed SCNMatrix4 is row-major, while the native SCNMatrix4 is column-major.

This should be fixed, but it's a breaking change.

See #4525 for more information.

@rolfbjarne rolfbjarne added this to the XAMCORE_4_0 milestone Aug 20, 2018
@rolfbjarne rolfbjarne added enhancement The issue or pull request is an enhancement breaking-change If an issue or a pull request represents a breaking change labels Aug 20, 2018
@rolfbjarne rolfbjarne added macOS Issues affecting macOS iOS Issues affecting iOS labels Sep 3, 2018
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Dec 22, 2021
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Jan 12, 2022
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Jan 12, 2022
* Implement a column-major version of SCNMatrix4 in .NET to match native code.
* This was done by copying the existing SCMatrix4 implementation, and modify it
  as required (doing it with conditional compilation in the same file turned out
  to be quite messy, so I opted for using different files for legacy Xamarin and
  .NET).
* There was one major change: the matrix inversion algorithm is new (copied from
   .NET instead), because the legacy Xamarin version showed strange results with
  some test values.
* Add setters for SCNMatrix4.Column[0-3] for legacy Xamarin to match the .NET API.
* Add CreateFromColumns methods for legacy Xamarin to match the .NET API.
* Add tests for all the new API.

Fixes dotnet#4652.
rolfbjarne added a commit that referenced this issue Jan 14, 2022
* Implement a column-major version of SCNMatrix4 in .NET to match native code.
* This was done by copying the existing SCMatrix4 implementation, and modify it
  as required (doing it with conditional compilation in the same file turned out
  to be quite messy, so I opted for using different files for legacy Xamarin and
  .NET).
* There was one major change: the matrix inversion algorithm is new (copied from
   .NET instead), because the legacy Xamarin version showed strange results with
  some test values.
* Add setters for SCNMatrix4.Column[0-3] for legacy Xamarin to match the .NET API.
* Add CreateFromColumns methods for legacy Xamarin to match the .NET API.
* Add tests for all the new API.

Fixes #4652.
@ghost ghost locked as resolved and limited conversation to collaborators May 5, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking-change If an issue or a pull request represents a breaking change enhancement The issue or pull request is an enhancement iOS Issues affecting iOS macOS Issues affecting macOS
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant