feat(vector): add operator+ for C3Vector and C3Vector

This commit is contained in:
fallenoak 2020-11-26 11:38:37 -06:00
parent 4278157faf
commit ee4612182a
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 21 additions and 0 deletions

View file

@ -20,3 +20,11 @@ void C3Vector::Normalize() {
float C3Vector::SquaredMag() const {
return this->x * this->x + this->y * this->y + this->z * this->z;
}
C3Vector operator+(const C3Vector& l, const C3Vector& r) {
float x = l.x + r.x;
float y = l.y + r.y;
float z = l.z + r.z;
return { x, y, z };
}

View file

@ -20,4 +20,6 @@ class C3Vector {
float SquaredMag() const;
};
C3Vector operator+(const C3Vector& l, const C3Vector& r);
#endif

View file

@ -99,3 +99,14 @@ TEST_CASE("C3Vector::SquaredMag", "[vector]") {
REQUIRE(vector.SquaredMag() == 3.0f);
}
}
TEST_CASE("C3Vector global operators", "[vector]") {
SECTION("C3Vector + C3Vector") {
auto vector1 = C3Vector(1.0f, 2.0f, 3.0f);
auto vector2 = C3Vector(4.0f, 5.0f, 6.0f);
auto vector3 = vector1 + vector2;
REQUIRE(vector3.x == 5.0f);
REQUIRE(vector3.y == 7.0f);
REQUIRE(vector3.z == 9.0f);
}
}