-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[Merged by Bors] - Fix incorrect rotation in Transform::rotate_around
.
#5300
Conversation
Transform::rotate_around
.
I really need to stop forgetting to edit the PR title. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The changes make sense to me. Should this be considered a breaking change since it would change the behavior of an api?
I think not, because from what I understood, the current behavior is incorrect, therefore a bug. |
I added |
bors r+ |
Someone noted that the `rotate_around` method did not give the results they expected: [discord thread](https://discord.com/channels/691052431525675048/996497295325544479) I tested `rotate_around` and their workaround and it seems like it was indeed incorrect. Here is a scene with some cubes at different angles all being rotated around the center on the Y axis. https://user-images.githubusercontent.com/29694403/178598432-407d7e80-1caf-4b17-b69b-66d9156c81e1.mp4 Interestingly, the middle cube rotates as you might expect. This threw me for a bit of a loop before I added the other cubes to the test haha. Here is the same scene with the order multiplication of the quaternions flipped in `rotate_around`. https://user-images.githubusercontent.com/29694403/178598446-a98026f3-524c-448b-8437-4d0d3175c6ca.mp4 That looks better :) ## Changelog * Fixed `rotate_around` rotating the wrong way around * Added `translate_around`. - Split out the translation code from `rotate_around`. * Simplified/optimized `rotate_local_*` methods. - Yep, That works somehow. <sup>Quaternions sure are wacky. Do not ask me how this works exactly, haha.</sup> Co-authored-by: devil-ira <[email protected]>
Build failed (retrying...): |
Someone noted that the `rotate_around` method did not give the results they expected: [discord thread](https://discord.com/channels/691052431525675048/996497295325544479) I tested `rotate_around` and their workaround and it seems like it was indeed incorrect. Here is a scene with some cubes at different angles all being rotated around the center on the Y axis. https://user-images.githubusercontent.com/29694403/178598432-407d7e80-1caf-4b17-b69b-66d9156c81e1.mp4 Interestingly, the middle cube rotates as you might expect. This threw me for a bit of a loop before I added the other cubes to the test haha. Here is the same scene with the order multiplication of the quaternions flipped in `rotate_around`. https://user-images.githubusercontent.com/29694403/178598446-a98026f3-524c-448b-8437-4d0d3175c6ca.mp4 That looks better :) ## Changelog * Fixed `rotate_around` rotating the wrong way around * Added `translate_around`. - Split out the translation code from `rotate_around`. * Simplified/optimized `rotate_local_*` methods. - Yep, That works somehow. <sup>Quaternions sure are wacky. Do not ask me how this works exactly, haha.</sup> Co-authored-by: devil-ira <[email protected]>
Transform::rotate_around
.Transform::rotate_around
.
Someone noted that the `rotate_around` method did not give the results they expected: [discord thread](https://discord.com/channels/691052431525675048/996497295325544479) I tested `rotate_around` and their workaround and it seems like it was indeed incorrect. Here is a scene with some cubes at different angles all being rotated around the center on the Y axis. https://user-images.githubusercontent.com/29694403/178598432-407d7e80-1caf-4b17-b69b-66d9156c81e1.mp4 Interestingly, the middle cube rotates as you might expect. This threw me for a bit of a loop before I added the other cubes to the test haha. Here is the same scene with the order multiplication of the quaternions flipped in `rotate_around`. https://user-images.githubusercontent.com/29694403/178598446-a98026f3-524c-448b-8437-4d0d3175c6ca.mp4 That looks better :) ## Changelog * Fixed `rotate_around` rotating the wrong way around * Added `translate_around`. - Split out the translation code from `rotate_around`. * Simplified/optimized `rotate_local_*` methods. - Yep, That works somehow. <sup>Quaternions sure are wacky. Do not ask me how this works exactly, haha.</sup> Co-authored-by: devil-ira <[email protected]>
Someone noted that the `rotate_around` method did not give the results they expected: [discord thread](https://discord.com/channels/691052431525675048/996497295325544479) I tested `rotate_around` and their workaround and it seems like it was indeed incorrect. Here is a scene with some cubes at different angles all being rotated around the center on the Y axis. https://user-images.githubusercontent.com/29694403/178598432-407d7e80-1caf-4b17-b69b-66d9156c81e1.mp4 Interestingly, the middle cube rotates as you might expect. This threw me for a bit of a loop before I added the other cubes to the test haha. Here is the same scene with the order multiplication of the quaternions flipped in `rotate_around`. https://user-images.githubusercontent.com/29694403/178598446-a98026f3-524c-448b-8437-4d0d3175c6ca.mp4 That looks better :) ## Changelog * Fixed `rotate_around` rotating the wrong way around * Added `translate_around`. - Split out the translation code from `rotate_around`. * Simplified/optimized `rotate_local_*` methods. - Yep, That works somehow. <sup>Quaternions sure are wacky. Do not ask me how this works exactly, haha.</sup> Co-authored-by: devil-ira <[email protected]>
Someone noted that the `rotate_around` method did not give the results they expected: [discord thread](https://discord.com/channels/691052431525675048/996497295325544479) I tested `rotate_around` and their workaround and it seems like it was indeed incorrect. Here is a scene with some cubes at different angles all being rotated around the center on the Y axis. https://user-images.githubusercontent.com/29694403/178598432-407d7e80-1caf-4b17-b69b-66d9156c81e1.mp4 Interestingly, the middle cube rotates as you might expect. This threw me for a bit of a loop before I added the other cubes to the test haha. Here is the same scene with the order multiplication of the quaternions flipped in `rotate_around`. https://user-images.githubusercontent.com/29694403/178598446-a98026f3-524c-448b-8437-4d0d3175c6ca.mp4 That looks better :) ## Changelog * Fixed `rotate_around` rotating the wrong way around * Added `translate_around`. - Split out the translation code from `rotate_around`. * Simplified/optimized `rotate_local_*` methods. - Yep, That works somehow. <sup>Quaternions sure are wacky. Do not ask me how this works exactly, haha.</sup> Co-authored-by: devil-ira <[email protected]>
Someone noted that the
rotate_around
method did not give the results they expected: discord threadI tested
rotate_around
and their workaround and it seems like it was indeed incorrect.Here is a scene with some cubes at different angles all being rotated around the center on the Y axis.
2022-07-12.22-52-49.mp4
Interestingly, the middle cube rotates as you might expect. This threw me for a bit of a loop before I added the other cubes to the test haha.
Here is the same scene with the order multiplication of the quaternions flipped in
rotate_around
.2022-07-12.22-53-20.mp4
That looks better :)
Changelog
rotate_around
rotating the wrong way aroundtranslate_around
. - Split out the translation code fromrotate_around
.rotate_local_*
methods. - Yep, That works somehow.Quaternions sure are wacky. Do not ask me how this works exactly, haha.