Implement Normalized, LinearCombination, and operator<< on Vector4s
This commit is contained in:
parent
9645a09a6c
commit
c49457a817
2 changed files with 47 additions and 1 deletions
|
|
@ -224,6 +224,42 @@ operator*(const Double& lhs,
|
||||||
return rhs * lhs;
|
return rhs * lhs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* charles::basics::Normalized --
|
||||||
|
*/
|
||||||
|
Vector4
|
||||||
|
Normalized(const Vector4& v)
|
||||||
|
{
|
||||||
|
return Vector4(v).Normalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* charles::basics::LinearCombination --
|
||||||
|
*/
|
||||||
|
Vector4
|
||||||
|
LinearCombination(const Double k1, const Vector4& v1,
|
||||||
|
const Double k2, const Vector4& v2,
|
||||||
|
const Double k3, const Vector4& v3)
|
||||||
|
{
|
||||||
|
return Vector4(k1 * v1.X() + k2 * v2.X() + k3 * v3.X(),
|
||||||
|
k1 * v1.Y() + k2 * v2.Y() + k3 * v3.Y(),
|
||||||
|
k1 * v1.Z() + k2 * v2.Z() + k3 * v3.Z());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* charles::basics::operator<< --
|
||||||
|
*/
|
||||||
|
std::ostream &
|
||||||
|
operator<<(std::ostream &os, const Vector3 &v)
|
||||||
|
{
|
||||||
|
// Stream the vector like this: <x, y, z>
|
||||||
|
os << "<" << v.X() << ", " << v.Y() << ", " << v.Z() << ">";
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
|
||||||
} /* namespace basics */
|
} /* namespace basics */
|
||||||
} /* namespace charles */
|
} /* namespace charles */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
#ifndef __BASICS_VECTOR_HH__
|
#ifndef __BASICS_VECTOR_HH__
|
||||||
#define __BASICS_VECTOR_HH__
|
#define __BASICS_VECTOR_HH__
|
||||||
|
|
||||||
|
#include <ostream>
|
||||||
|
|
||||||
#include "basics/matrix.hh"
|
#include "basics/matrix.hh"
|
||||||
#include "basics/types.hh"
|
#include "basics/types.hh"
|
||||||
|
|
||||||
|
|
@ -63,7 +65,15 @@ Vector4 operator*(const Double& lhs, const Vector4& rhs);
|
||||||
|
|
||||||
|
|
||||||
/** Normalize the given vector and return a copy of it. */
|
/** Normalize the given vector and return a copy of it. */
|
||||||
Vector4& Normalized(const Vector4& v);
|
Vector4 Normalized(const Vector4& v);
|
||||||
|
|
||||||
|
|
||||||
|
Vector4 LinearCombination(const Double k1, const Vector4& v1,
|
||||||
|
const Double k2, const Vector4& v2,
|
||||||
|
const Double k3, const Vector4& v3);
|
||||||
|
|
||||||
|
|
||||||
|
std::ostream& operator<<(std::ostream& ost, const Vector4& v);
|
||||||
|
|
||||||
} /* namespace basics */
|
} /* namespace basics */
|
||||||
} /* namespace charles */
|
} /* namespace charles */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue