core: Add Vector dot product
This commit is contained in:
@@ -213,6 +213,12 @@ operator*(double a, const Vector3D& b)
|
||||
return Vector3D(b.x * a, b.y * a, b.z * a);
|
||||
}
|
||||
|
||||
double
|
||||
operator*(const Vector3D& a, const Vector3D& b)
|
||||
{
|
||||
return a.x * b.x + a.y * b.y + a.z * b.z;
|
||||
}
|
||||
|
||||
std::ostream&
|
||||
operator<<(std::ostream& os, const Vector2D& vector)
|
||||
{
|
||||
@@ -292,4 +298,10 @@ operator*(double a, const Vector2D& b)
|
||||
return Vector2D(b.x * a, b.y * a);
|
||||
}
|
||||
|
||||
double
|
||||
operator*(const Vector2D& a, const Vector2D& b)
|
||||
{
|
||||
return a.x * b.x + a.y * b.y;
|
||||
}
|
||||
|
||||
} // namespace ns3
|
||||
|
||||
@@ -188,6 +188,14 @@ class Vector3D
|
||||
* \returns The vector \pname{b} scaled by \pname{a}.
|
||||
*/
|
||||
friend Vector3D operator*(double a, const Vector3D& b);
|
||||
|
||||
/**
|
||||
* Dot product operator.
|
||||
* \param [in] a lhs vector.
|
||||
* \param [in] b rhs vector.
|
||||
* \returns The dot product of \pname{a} and \pname{b}.
|
||||
*/
|
||||
friend double operator*(const Vector3D& a, const Vector3D& b);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -333,6 +341,14 @@ class Vector2D
|
||||
* \returns The vector \pname{b} scaled by \pname{a}.
|
||||
*/
|
||||
friend Vector2D operator*(double a, const Vector2D& b);
|
||||
|
||||
/**
|
||||
* Dot product operator.
|
||||
* \param [in] a lhs vector.
|
||||
* \param [in] b rhs vector.
|
||||
* \returns The dot product of \pname{a} and \pname{b}.
|
||||
*/
|
||||
friend double operator*(const Vector2D& a, const Vector2D& b);
|
||||
};
|
||||
|
||||
double CalculateDistance(const Vector3D& a, const Vector3D& b);
|
||||
|
||||
Reference in New Issue
Block a user