Cleanup
This commit is contained in:
		
							parent
							
								
									66e47d736f
								
							
						
					
					
						commit
						f7d9d976fc
					
				
							
								
								
									
										16
									
								
								Polar.cpp
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Polar.cpp
									
									
									
									
									
								
							@ -40,6 +40,15 @@ bool Polar::operator==(const Polar &v) {
 | 
			
		||||
  return (this->distance == v.distance && this->angle == v.angle);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Polar Polar::Normalize(const Polar &v) {
 | 
			
		||||
  Polar r = Polar(1, v.angle);
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
Polar Polar::normalized() const {
 | 
			
		||||
  Polar r = Polar(1, this->angle);
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Polar Polar::operator+(Polar &v2) {
 | 
			
		||||
  if (v2.distance == 0)
 | 
			
		||||
    return Polar(this->distance, this->angle);
 | 
			
		||||
@ -96,7 +105,8 @@ float Polar::Distance(const Polar &v1, const Polar &v2) {
 | 
			
		||||
  return d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Polar Polar::Rotate(Polar v, Angle angle) {
 | 
			
		||||
  v.angle = Angle::Normalize(v.angle + angle);
 | 
			
		||||
  return v;
 | 
			
		||||
Polar Polar::Rotate(const Polar &v, Angle angle) {
 | 
			
		||||
  Angle a = Angle::Normalize(v.angle + angle);
 | 
			
		||||
  Polar r = Polar(v.distance, a);
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								Polar.h
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								Polar.h
									
									
									
									
									
								
							@ -52,6 +52,22 @@ public:
 | 
			
		||||
  /// effects. Equality on floats should be avoided.
 | 
			
		||||
  bool operator==(const Polar &v);
 | 
			
		||||
 | 
			
		||||
  /// @brief The vector length
 | 
			
		||||
  /// @param v The vector for which you need the length
 | 
			
		||||
  /// @return The vector length;
 | 
			
		||||
  inline static float Magnitude(const Polar &v) { return v.distance; }
 | 
			
		||||
  /// @brief The vector length
 | 
			
		||||
  /// @return The vector length
 | 
			
		||||
  inline float magnitude() const { return this->distance; }
 | 
			
		||||
 | 
			
		||||
  /// @brief Convert the vector to a length of 1
 | 
			
		||||
  /// @param v The vector to convert
 | 
			
		||||
  /// @return The vector normalized to a length of 1
 | 
			
		||||
  static Polar Normalize(const Polar &v);
 | 
			
		||||
  /// @brief Convert the vector to a length of a
 | 
			
		||||
  /// @return The vector normalized to a length of 1
 | 
			
		||||
  Polar normalized() const;
 | 
			
		||||
 | 
			
		||||
  /// @brief Negate the vector
 | 
			
		||||
  /// @return The negated vector
 | 
			
		||||
  /// This will rotate the vector by 180 degrees. Distance will stay the same.
 | 
			
		||||
@ -87,7 +103,7 @@ public:
 | 
			
		||||
  /// @param v The vector to rotate
 | 
			
		||||
  /// @param a The angle in degreesto rotate
 | 
			
		||||
  /// @return The rotated vector
 | 
			
		||||
  static Polar Rotate(Polar v, Angle a);
 | 
			
		||||
  static Polar Rotate(const Polar &v, Angle a);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Passer
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								Vector2.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Vector2.cpp
									
									
									
									
									
								
							@ -60,7 +60,7 @@ float Vector2::magnitude() const { return (float)sqrtf(x * x + y * y); }
 | 
			
		||||
float Vector2::SqrMagnitude(const Vector2 &a) { return a.x * a.x + a.y * a.y; }
 | 
			
		||||
float Vector2::sqrMagnitude() const { return (x * x + y * y); }
 | 
			
		||||
 | 
			
		||||
Vector2 Vector2::Normalize(Vector2 v) {
 | 
			
		||||
Vector2 Vector2::Normalize(const Vector2 &v) {
 | 
			
		||||
  float num = Vector2::Magnitude(v);
 | 
			
		||||
  Vector2 result = Vector2::zero;
 | 
			
		||||
  if (num > Float::epsilon) {
 | 
			
		||||
@ -89,10 +89,10 @@ Vector2 Vector2::operator+(const Vector2 &v2) const {
 | 
			
		||||
Vector2 Vector2::Scale(const Vector2 &p1, const Vector2 &p2) {
 | 
			
		||||
  return Vector2(p1.x * p2.x, p1.y * p2.y);
 | 
			
		||||
}
 | 
			
		||||
Vector2 Vector2::operator*(const float &f) const {
 | 
			
		||||
Vector2 Vector2::operator*(float f) const {
 | 
			
		||||
  return Vector2(this->x * f, this->y * f);
 | 
			
		||||
}
 | 
			
		||||
Vector2 Vector2::operator/(const float &f) const {
 | 
			
		||||
Vector2 Vector2::operator/(float f) const {
 | 
			
		||||
  return Vector2(this->x / f, this->y / f);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -125,7 +125,7 @@ float Vector2::SignedAngle(const Vector2 &v1, const Vector2 &v2) {
 | 
			
		||||
  return -(angleTo - angleFrom) * Angle::Rad2Deg;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Vector2 Vector2::Rotate(const Vector2 &v, const float &a) {
 | 
			
		||||
Vector2 Vector2::Rotate(const Vector2 &v, Passer::Angle a) {
 | 
			
		||||
  float angleRad = a * Angle::Deg2Rad;
 | 
			
		||||
#if defined(AVR)
 | 
			
		||||
  float sinValue = sin(angleRad);
 | 
			
		||||
@ -142,7 +142,7 @@ Vector2 Vector2::Rotate(const Vector2 &v, const float &a) {
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Vector2 Vector2::Lerp(const Vector2 &v1, const Vector2 &v2, const float f) {
 | 
			
		||||
Vector2 Vector2::Lerp(const Vector2 &v1, const Vector2 &v2, float f) {
 | 
			
		||||
  Vector2 v = v1 + (v2 - v1) * f;
 | 
			
		||||
  return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								Vector2.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Vector2.h
									
									
									
									
									
								
							@ -5,6 +5,8 @@
 | 
			
		||||
#ifndef VECTOR2_H
 | 
			
		||||
#define VECTOR2_H
 | 
			
		||||
 | 
			
		||||
#include "Angle.h"
 | 
			
		||||
 | 
			
		||||
extern "C" {
 | 
			
		||||
/// <summary>
 | 
			
		||||
/// 2-dimensional Vector representation
 | 
			
		||||
@ -106,7 +108,7 @@ public:
 | 
			
		||||
  /// @brief Convert the vector to a length of 1
 | 
			
		||||
  /// @param v The vector to convert
 | 
			
		||||
  /// @return The vector normalized to a length of 1
 | 
			
		||||
  static Vector2 Normalize(Vector2 v);
 | 
			
		||||
  static Vector2 Normalize(const Vector2 &v);
 | 
			
		||||
  /// @brief Convert the vector to a length 1
 | 
			
		||||
  /// @return The vector normalized to a length of 1
 | 
			
		||||
  Vector2 normalized() const;
 | 
			
		||||
@ -136,12 +138,12 @@ public:
 | 
			
		||||
  /// @return The scaled vector
 | 
			
		||||
  /// @remark Each component of the vector will be multipled with the same
 | 
			
		||||
  /// factor f.
 | 
			
		||||
  Vector2 operator*(const float &f) const;
 | 
			
		||||
  Vector2 operator*(float f) const;
 | 
			
		||||
  /// @brief Scale the vector uniformly down
 | 
			
		||||
  /// @param f The scaling factor
 | 
			
		||||
  /// @return The scaled vector
 | 
			
		||||
  /// @remark Each componet of the vector will be divided by the same factor.
 | 
			
		||||
  Vector2 operator/(const float &f) const;
 | 
			
		||||
  Vector2 operator/(float f) const;
 | 
			
		||||
 | 
			
		||||
  /// @brief The dot product of two vectors
 | 
			
		||||
  /// @param v1 The first vector
 | 
			
		||||
@ -173,7 +175,7 @@ public:
 | 
			
		||||
  /// @param v The vector to rotate
 | 
			
		||||
  /// @param a The angle in degrees to rotate
 | 
			
		||||
  /// @return The rotated vector
 | 
			
		||||
  static Vector2 Rotate(const Vector2 &v, const float &a);
 | 
			
		||||
  static Vector2 Rotate(const Vector2 &v, Passer::Angle a);
 | 
			
		||||
 | 
			
		||||
  /// @brief Lerp (linear interpolation) between two vectors
 | 
			
		||||
  /// @param v1 The starting vector
 | 
			
		||||
@ -183,7 +185,7 @@ public:
 | 
			
		||||
  /// @remark The factor f is unclamped. Value 0 matches the vector *v1*, Value
 | 
			
		||||
  /// 1 matches vector *v2*. Value -1 is vector *v1* minus the difference
 | 
			
		||||
  /// between *v1* and *v2* etc.
 | 
			
		||||
  static Vector2 Lerp(const Vector2 &v1, const Vector2 &v2, const float f);
 | 
			
		||||
  static Vector2 Lerp(const Vector2 &v1, const Vector2 &v2, float f);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Passer
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user