Browse Source

Added Vector::sum(), so product() has a friend.

pull/279/head
Vladimír Vondruš 14 years ago
parent
commit
cfc955debe
  1. 5
      src/Math/Test/VectorTest.cpp
  2. 1
      src/Math/Test/VectorTest.h
  3. 12
      src/Math/Vector.h

5
src/Math/Test/VectorTest.cpp

@ -40,6 +40,7 @@ VectorTest::VectorTest() {
&VectorTest::length,
&VectorTest::lengthSquared,
&VectorTest::normalized,
&VectorTest::sum,
&VectorTest::product,
&VectorTest::angle,
&VectorTest::negative,
@ -121,6 +122,10 @@ void VectorTest::normalized() {
CORRADE_COMPARE(Vector4(1.0f, 1.0f, 1.0f, 1.0f).normalized(), Vector4(0.5f, 0.5f, 0.5f, 0.5f));
}
void VectorTest::sum() {
CORRADE_COMPARE(Vector3(1.0f, 2.0f, 4.0f).sum(), 7.0f);
}
void VectorTest::product() {
CORRADE_COMPARE(Vector3(1.0f, 2.0f, 3.0f).product(), 6.0f);
}

1
src/Math/Test/VectorTest.h

@ -32,6 +32,7 @@ class VectorTest: public Corrade::TestSuite::Tester<VectorTest> {
void length();
void lengthSquared();
void normalized();
void sum();
void product();
void angle();
void negative();

12
src/Math/Vector.h

@ -268,9 +268,19 @@ template<size_t size, class T> class Vector {
return *this/length();
}
/** @brief Sum of values in the vector */
T sum() const {
T out(0);
for(size_t i = 0; i != size; ++i)
out += (*this)[i];
return out;
}
/** @brief Product of values in the vector */
T product() const {
T out = 1;
T out(1);
for(size_t i = 0; i != size; ++i)
out *= (*this)[i];

Loading…
Cancel
Save