diff --git a/src/math/Vector2D.cpp b/src/math/Vector2D.cpp index 1e078e1..6957154 100644 --- a/src/math/Vector2D.cpp +++ b/src/math/Vector2D.cpp @@ -62,19 +62,19 @@ Vector2D Hyprutils::Math::Vector2D::transform(eTransform transform, const Vector case HYPRUTILS_TRANSFORM_NORMAL: return *this; case HYPRUTILS_TRANSFORM_90: - return Vector2D(this->y, monitorSize.y - this->x); + return Vector2D(y, monitorSize.y - x); case HYPRUTILS_TRANSFORM_180: - return Vector2D(monitorSize.x - this->x, monitorSize.y - this->y); + return Vector2D(monitorSize.x - x, monitorSize.y - y); case HYPRUTILS_TRANSFORM_270: - return Vector2D(monitorSize.x - this->y, this->x); + return Vector2D(monitorSize.x - y, x); case HYPRUTILS_TRANSFORM_FLIPPED: - return Vector2D(monitorSize.x - this->x, this->y); + return Vector2D(monitorSize.x - x, y); case HYPRUTILS_TRANSFORM_FLIPPED_90: - return Vector2D(this->y, this->x); + return Vector2D(y, x); case HYPRUTILS_TRANSFORM_FLIPPED_180: - return Vector2D(this->x, monitorSize.y - this->y); + return Vector2D(x, monitorSize.y - y); case HYPRUTILS_TRANSFORM_FLIPPED_270: - return Vector2D(monitorSize.x - this->y, monitorSize.y - this->x); + return Vector2D(monitorSize.x - y, monitorSize.y - x); default: return *this; } diff --git a/tests/math.cpp b/tests/math.cpp index 316a6fc..8df3af3 100644 --- a/tests/math.cpp +++ b/tests/math.cpp @@ -104,5 +104,19 @@ int main(int argc, char** argv, char** envp) { EXPECT(std::abs(expected.getMatrix().at(8) - matrixBox.getMatrix().at(8)) < 0.1, true); } + { + Vector2D original(30, 40); + Vector2D monitorSize(100, 200); + + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_NORMAL, monitorSize), Vector2D(30, 40 )); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_90, monitorSize), Vector2D(40, 200 - 30)); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_180, monitorSize), Vector2D(100 - 30, 200 - 40)); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_270, monitorSize), Vector2D(100 - 40, 30 )); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_FLIPPED, monitorSize), Vector2D(100 - 30, 40 )); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_FLIPPED_90, monitorSize), Vector2D(40, 30 )); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_FLIPPED_180, monitorSize), Vector2D(30, 200 - 40)); + EXPECT_VECTOR2D(original.transform(HYPRUTILS_TRANSFORM_FLIPPED_270, monitorSize), Vector2D(100 - 40, 200 - 30)); + } + return ret; -} \ No newline at end of file +}