Przeglądaj źródła

LibGfx: Add AffineTransform::skew_radians()

MacDue 2 lat temu
rodzic
commit
b8d1fae31f

+ 7 - 0
Userland/Libraries/LibGfx/AffineTransform.cpp

@@ -79,6 +79,13 @@ AffineTransform& AffineTransform::set_scale(FloatPoint s)
     return set_scale(s.x(), s.y());
 }
 
+AffineTransform& AffineTransform::skew_radians(float x_radians, float y_radians)
+{
+    AffineTransform skew_transform(1, AK::tan(y_radians), AK::tan(x_radians), 1, 0, 0);
+    multiply(skew_transform);
+    return *this;
+}
+
 AffineTransform& AffineTransform::translate(float tx, float ty)
 {
     m_values[4] += tx * m_values[0] + ty * m_values[2];

+ 1 - 0
Userland/Libraries/LibGfx/AffineTransform.h

@@ -64,6 +64,7 @@ public:
     AffineTransform& set_translation(float tx, float ty);
     AffineTransform& set_translation(FloatPoint t);
     AffineTransform& rotate_radians(float);
+    AffineTransform& skew_radians(float x_radians, float y_radians);
     AffineTransform& multiply(AffineTransform const&);
 
     Optional<AffineTransform> inverse() const;