summaryrefslogtreecommitdiff
path: root/scene/2d
diff options
context:
space:
mode:
authorYaohua Xiong <xiongyaohua@gmail.com>2022-11-24 20:43:34 +0800
committerYaohua Xiong <xiongyaohua@gmail.com>2022-12-05 21:22:05 +0800
commit91e9ad92f5f78dd1578df46205f028599f095357 (patch)
treef13fa7ecddc68dc33d4bac4016f77184fd483169 /scene/2d
parent8912f3e4a7c012443e941f4c6f2342c9913fa330 (diff)
Refactor baking code for Curve2D
The main change is to caculate tangent directly from bezier curve, without going through discretized polyline, avoiding pitfalls of discretization. A similar refacor had been applied to Curve3D. The test cases for Curve2D is updated, comparing floating point with is_equal_approxmiate() instead of `==`, in order to avoid float precision problem.
Diffstat (limited to 'scene/2d')
-rw-r--r--scene/2d/path_2d.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp
index b5945a4562..b68a8fb031 100644
--- a/scene/2d/path_2d.cpp
+++ b/scene/2d/path_2d.cpp
@@ -177,7 +177,7 @@ void PathFollow2D::_update_transform() {
}
if (rotates) {
- Transform2D xform = c->sample_baked_with_rotation(progress, cubic, loop, lookahead);
+ Transform2D xform = c->sample_baked_with_rotation(progress, cubic);
xform.translate_local(v_offset, h_offset);
set_rotation(xform[1].angle());
set_position(xform[2]);