| #include "rive/joystick.hpp" |
| #include "rive/shapes/shape.hpp" |
| #include "rive_file_reader.hpp" |
| #include "rive_testing.hpp" |
| |
| TEST_CASE("joystick flags load as expected", "[file]") |
| { |
| auto file = ReadRiveFile("../../test/assets/joystick_flag_test.riv"); |
| auto artboard = file->artboard(); |
| |
| auto invertX = artboard->find<rive::Joystick>("Invert X Joystick"); |
| REQUIRE(invertX->isJoystickFlagged(rive::JoystickFlags::invertX)); |
| REQUIRE(!invertX->isJoystickFlagged(rive::JoystickFlags::invertY)); |
| REQUIRE(!invertX->isJoystickFlagged(rive::JoystickFlags::worldSpace)); |
| |
| invertX->x(0.0f); |
| invertX->apply(artboard); |
| REQUIRE(artboard->find<rive::Shape>("invert_x_rect")->x() == 350.0f); |
| |
| invertX->x(1.0f); |
| invertX->apply(artboard); |
| REQUIRE(artboard->find<rive::Shape>("invert_x_rect")->x() == 300.0f); |
| |
| invertX->x(-1.0f); |
| invertX->apply(artboard); |
| REQUIRE(artboard->find<rive::Shape>("invert_x_rect")->x() == 400.0f); |
| |
| auto invertY = artboard->find<rive::Joystick>("Invert Y Joystick"); |
| REQUIRE(!invertY->isJoystickFlagged(rive::JoystickFlags::invertX)); |
| REQUIRE(invertY->isJoystickFlagged(rive::JoystickFlags::invertY)); |
| REQUIRE(!invertY->isJoystickFlagged(rive::JoystickFlags::worldSpace)); |
| |
| invertY->y(0.0f); |
| invertY->apply(artboard); |
| REQUIRE(artboard->find<rive::Shape>("invert_y_ellipse")->x() == 425.0f); |
| |
| invertY->y(1.0f); |
| invertY->apply(artboard); |
| REQUIRE(artboard->find<rive::Shape>("invert_y_ellipse")->x() == 400.0f); |
| |
| invertY->y(-1.0f); |
| invertY->apply(artboard); |
| REQUIRE(artboard->find<rive::Shape>("invert_y_ellipse")->x() == 450.0f); |
| |
| auto world = artboard->find<rive::Joystick>("World Joystick"); |
| REQUIRE(!world->isJoystickFlagged(rive::JoystickFlags::invertX)); |
| REQUIRE(!world->isJoystickFlagged(rive::JoystickFlags::invertY)); |
| REQUIRE(world->isJoystickFlagged(rive::JoystickFlags::worldSpace)); |
| |
| auto normal = artboard->find<rive::Joystick>("Normal Joystick"); |
| REQUIRE(!normal->isJoystickFlagged(rive::JoystickFlags::invertX)); |
| REQUIRE(!normal->isJoystickFlagged(rive::JoystickFlags::invertY)); |
| REQUIRE(!normal->isJoystickFlagged(rive::JoystickFlags::worldSpace)); |
| } |