summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-08 11:55:06 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-08 11:55:06 +0100
commit665c3edee227cef79f95038c4d39548bbd295275 (patch)
tree835785d0e1948f9dbca1203c61c9270272f002c2
parent53d47a389ce19f7e11f862cf179f04a2fa1ec8f2 (diff)
parent41e4f3c215c45bcfaf9b4330f8bce50e911d6be8 (diff)
downloadredot-engine-665c3edee227cef79f95038c4d39548bbd295275.tar.gz
Merge pull request #86557 from kleonc/polygon2d-with-skeleton-transform-fix
Fix Polygon2D to Skeleton2D transform calculation
-rw-r--r--scene/2d/polygon_2d.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp
index ee186de5f1..4266060466 100644
--- a/scene/2d/polygon_2d.cpp
+++ b/scene/2d/polygon_2d.cpp
@@ -375,14 +375,14 @@ void Polygon2D::_notification(int p_what) {
// Compute transform between mesh and skeleton for runtime AABB compute.
const Transform2D mesh_transform = get_global_transform();
const Transform2D skeleton_transform = skeleton_node->get_global_transform();
- const Transform2D mesh_to_sk2d = mesh_transform * skeleton_transform.affine_inverse();
+ const Transform2D mesh_to_sk2d = skeleton_transform.affine_inverse() * mesh_transform;
// Convert 2d transform to 3d.
sd.mesh_to_skeleton_xform.basis.rows[0][0] = mesh_to_sk2d.columns[0][0];
- sd.mesh_to_skeleton_xform.basis.rows[0][1] = mesh_to_sk2d.columns[0][1];
+ sd.mesh_to_skeleton_xform.basis.rows[1][0] = mesh_to_sk2d.columns[0][1];
sd.mesh_to_skeleton_xform.origin.x = mesh_to_sk2d.get_origin().x;
- sd.mesh_to_skeleton_xform.basis.rows[1][0] = mesh_to_sk2d.columns[1][0];
+ sd.mesh_to_skeleton_xform.basis.rows[0][1] = mesh_to_sk2d.columns[1][0];
sd.mesh_to_skeleton_xform.basis.rows[1][1] = mesh_to_sk2d.columns[1][1];
sd.mesh_to_skeleton_xform.origin.y = mesh_to_sk2d.get_origin().y;
}