mirror of
https://github.com/godotengine/godot.git
synced 2025-12-07 22:00:10 +00:00
Add support for interpolating skewed transforms
This commit is contained in:
parent
218bef90af
commit
5f3d3722b2
2 changed files with 19 additions and 33 deletions
|
|
@ -84,6 +84,19 @@ TEST_CASE("[Transform2D] rotation") {
|
|||
CHECK(orig.rotated_local(phi) == orig * R);
|
||||
}
|
||||
|
||||
TEST_CASE("[Transform2D] Interpolation") {
|
||||
Transform2D rotate_scale_skew_pos = Transform2D(Math::deg_to_rad(170.0), Vector2(3.6, 8.0), Math::deg_to_rad(20.0), Vector2(2.4, 6.8));
|
||||
Transform2D rotate_scale_skew_pos_halfway = Transform2D(Math::deg_to_rad(85.0), Vector2(2.3, 4.5), Math::deg_to_rad(10.0), Vector2(1.2, 3.4));
|
||||
Transform2D interpolated = Transform2D().interpolate_with(rotate_scale_skew_pos, 0.5);
|
||||
CHECK(interpolated.get_origin().is_equal_approx(rotate_scale_skew_pos_halfway.get_origin()));
|
||||
CHECK(interpolated.get_rotation() == doctest::Approx(rotate_scale_skew_pos_halfway.get_rotation()));
|
||||
CHECK(interpolated.get_scale().is_equal_approx(rotate_scale_skew_pos_halfway.get_scale()));
|
||||
CHECK(interpolated.get_skew() == doctest::Approx(rotate_scale_skew_pos_halfway.get_skew()));
|
||||
CHECK(interpolated.is_equal_approx(rotate_scale_skew_pos_halfway));
|
||||
interpolated = rotate_scale_skew_pos.interpolate_with(Transform2D(), 0.5);
|
||||
CHECK(interpolated.is_equal_approx(rotate_scale_skew_pos_halfway));
|
||||
}
|
||||
|
||||
TEST_CASE("[Transform2D] Finite number checks") {
|
||||
const Vector2 x(0, 1);
|
||||
const Vector2 infinite(NAN, NAN);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue