Adding vec matrix transform for direction only.
diff --git a/Source/Vec2D.cpp b/Source/Vec2D.cpp
index 71e9810..3136fbc 100644
--- a/Source/Vec2D.cpp
+++ b/Source/Vec2D.cpp
@@ -27,6 +27,14 @@
 	result[1] = m[1] * x + m[3] * y + m[5];
 }
 
+void Vec2D::transformDir(Vec2D& result, const Vec2D& a, const Mat2D& m)
+{
+	float x = a[0];
+	float y = a[1];
+	result[0] = m[0] * x + m[2] * y;
+	result[1] = m[1] * x + m[3] * y;
+}
+
 void Vec2D::add(Vec2D& result, const Vec2D& a, const Vec2D& b)
 {
 	result[0] = a[0] + b[0];
diff --git a/Source/Vec2D.hpp b/Source/Vec2D.hpp
index 63c9118..c1c36da 100644
--- a/Source/Vec2D.hpp
+++ b/Source/Vec2D.hpp
@@ -21,6 +21,7 @@
 			const float& operator[](std::size_t idx) const { return m_Buffer[idx]; }
 
 			static void transform(Vec2D& result, const Vec2D& a, const Mat2D& m);
+			static void transformDir(Vec2D& result, const Vec2D& a, const Mat2D& m);
 			static void subtract(Vec2D& result, const Vec2D& a, const Vec2D& b);
 			static void add(Vec2D& result, const Vec2D& a, const Vec2D& b);
 			static float length(const Vec2D& a);