1#ifndef FANG_ROBOTICS_MCB_UTIL_MATH_LINEAR_VECTOR_2D_HPP
2#define FANG_ROBOTICS_MCB_UTIL_MATH_LINEAR_VECTOR_2D_HPP
6 template <
typename Unit>
19 const double rawX{
static_cast<double>(
x)};
20 const double rawY{
static_cast<double>(
y)};
37 const double xSquared{raw.
x * raw.x};
38 const double ySquared{raw.y * raw.y};
39 const double squareSum{xSquared + ySquared};
40 const double distance{std::sqrt(squareSum)};
41 return Unit{distance};
49 const double rawMagnitude{
static_cast<double>(
getMagnitude())};
68 return {
x - subtrahend.
x,
y - subtrahend.
y};
78 template <
typename ScaleUnit>
84 template <
typename ScaleUnit>
87 return vector * scale;
90 template <
typename Unit>
93 return vector * scale;
Vector2D< ScaleUnit > operator*(const Vector2D< double > &vector, const ScaleUnit &scale)
Definition vector_2d.hpp:79
Definition vector_2d.hpp:8
Vector2D< double > getUnitVector() const
Definition vector_2d.hpp:47
Unit x
Definition vector_2d.hpp:11
Vector2D< Unit > operator*(double scalar)
Definition vector_2d.hpp:71
Vector2D< Unit > operator-(const Vector2D &subtrahend)
Definition vector_2d.hpp:66
Vector2D< Unit > operator+(const Vector2D &addend)
Definition vector_2d.hpp:61
Vector2D< Unit > operator-()
Definition vector_2d.hpp:56
Vector2D< double > getRawVector() const
Definition vector_2d.hpp:17
Unit unit
Definition vector_2d.hpp:9
Unit getMagnitude() const
Definition vector_2d.hpp:24
Unit y
Definition vector_2d.hpp:12