Fix SetRotationNode: don't change rotation of previous objects #2414
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2413.
Quat
is a mutable type and because the SetRotationNode didn't clone the inputted quaternion, all previous usages of that quaternion were also changed and even if only one object would be used for this node, the inputted quaternion might be used in other places where it would also be changed by this node.In order to prevent an allocation on the heap, the rotation quat of an object is no longer exchanged, only its values are updated instead (
setFrom()
). Then the cloned quaternion can be inlined by Haxe.