Browse Source

Improve the Vector2 rotated code

Aaron Franke 5 years ago
parent
commit
23a349c427
2 changed files with 5 additions and 11 deletions
  1. 5 5
      core/math/vector2.cpp
  2. 0 6
      core/math/vector2.h

+ 5 - 5
core/math/vector2.cpp

@@ -119,11 +119,11 @@ Vector2 Vector2::round() const {
 }
 
 Vector2 Vector2::rotated(real_t p_by) const {
-
-	Vector2 v;
-	v.set_rotation(angle() + p_by);
-	v *= length();
-	return v;
+	real_t sine = Math::sin(p_by);
+	real_t cosi = Math::cos(p_by);
+	return Vector2(
+			x * cosi - y * sine,
+			x * sine + y * cosi);
 }
 
 Vector2 Vector2::posmod(const real_t p_mod) const {

+ 0 - 6
core/math/vector2.h

@@ -123,12 +123,6 @@ struct Vector2 {
 
 	real_t angle() const;
 
-	void set_rotation(real_t p_radians) {
-
-		x = Math::cos(p_radians);
-		y = Math::sin(p_radians);
-	}
-
 	_FORCE_INLINE_ Vector2 abs() const {
 
 		return Vector2(Math::abs(x), Math::abs(y));