added cross- and dot-products to util/Vector
git-svn-id: svn://anubis/gvsu@358 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
cba45f29a2
commit
1d26118e32
@ -14,3 +14,19 @@ std::ostream & operator<<(std::ostream & out, const Vector & v)
|
|||||||
out << "[" << v[0] << ", " << v[1] << ", " << v[2] << "]";
|
out << "[" << v[0] << ", " << v[1] << ", " << v[2] << "]";
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Compute the dot-product of two vectors */
|
||||||
|
double operator%(const Vector & v1, const Vector & v2)
|
||||||
|
{
|
||||||
|
return v1[0] * v2[0] + v1[1] * v2[1] + v1[2] * v2[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Compute the cross-product of two vectors */
|
||||||
|
Vector operator*(const Vector & v1, const Vector & v2)
|
||||||
|
{
|
||||||
|
Vector result;
|
||||||
|
result[0] = v1[1] * v2[2] - v1[2] * v2[1];
|
||||||
|
result[1] = v1[2] * v2[0] - v1[0] * v2[2];
|
||||||
|
result[2] = v1[0] * v2[1] - v1[1] * v2[0];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
@ -12,6 +12,8 @@ class Vector
|
|||||||
double & operator[](int idx) { return m_array[idx]; }
|
double & operator[](int idx) { return m_array[idx]; }
|
||||||
double operator[](int idx) const { return m_array[idx]; }
|
double operator[](int idx) const { return m_array[idx]; }
|
||||||
friend std::ostream & operator<<(std::ostream & out, const Vector & v);
|
friend std::ostream & operator<<(std::ostream & out, const Vector & v);
|
||||||
|
friend double operator%(const Vector & v1, const Vector & v2);
|
||||||
|
friend Vector operator*(const Vector & v1, const Vector & v2);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
double m_array[3];
|
double m_array[3];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user