diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Transform.cpp b/packages/react-native/ReactCommon/react/renderer/graphics/Transform.cpp index 3cd227e0292df3..3fd74379cdaae0 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Transform.cpp +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Transform.cpp @@ -129,8 +129,6 @@ Transform Transform::RotateZ(Float radians) { Transform Transform::Rotate(Float x, Float y, Float z) { auto transform = Transform{}; - transform.operations.push_back( - TransformOperation{TransformOperationType::Rotate, x, y, z}); if (!isZero(x)) { transform = transform * Transform::RotateX(x); } diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/tests/TransformTest.cpp b/packages/react-native/ReactCommon/react/renderer/graphics/tests/TransformTest.cpp index dcbb3052e68b10..3fcd9d259ed51e 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/tests/TransformTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/graphics/tests/TransformTest.cpp @@ -77,6 +77,26 @@ TEST(TransformTest, rotatingRect) { ASSERT_NEAR(transformedRect.size.height, 14.1421, 0.0001); } +TEST(TransformTest, rotate3dOverload) { + auto point = facebook::react::Point{10, 10}; + auto size = facebook::react::Size{10, 10}; + auto rect = facebook::react::Rect{point, size}; + + auto transform = Transform::Rotate(0, 0, M_PI_4); + EXPECT_EQ(transform.operations.size(), 1); + EXPECT_EQ(transform.operations[0].type, TransformOperationType::Rotate); + EXPECT_EQ(transform.operations[0].x, 0); + EXPECT_EQ(transform.operations[0].y, 0); + ASSERT_NEAR(transform.operations[0].z, M_PI_4 - 0.0001, M_PI_4 + 0.0001); + + auto transformedRect = rect * Transform::Rotate(0, 0, M_PI_4); + + ASSERT_NEAR(transformedRect.origin.x, 7.9289, 0.0001); + ASSERT_NEAR(transformedRect.origin.y, 7.9289, 0.0001); + ASSERT_NEAR(transformedRect.size.width, 14.1421, 0.0001); + ASSERT_NEAR(transformedRect.size.height, 14.1421, 0.0001); +} + TEST(TransformTest, scalingAndTranslatingRect) { auto point = facebook::react::Point{100, 200}; auto size = facebook::react::Size{300, 400};