feat(vector): add C3Vector::Mag

This commit is contained in:
fallenoak 2020-11-26 10:48:52 -06:00
parent 6c1bd11811
commit e38af58adb
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 23 additions and 0 deletions

View file

@ -1,4 +1,5 @@
#include "tempest/vector/C3Vector.hpp" #include "tempest/vector/C3Vector.hpp"
#include "tempest/Math.hpp"
C3Vector& C3Vector::operator*=(float a) { C3Vector& C3Vector::operator*=(float a) {
this->x *= a; this->x *= a;
@ -8,6 +9,10 @@ C3Vector& C3Vector::operator*=(float a) {
return *this; return *this;
} }
float C3Vector::Mag() const {
return CMath::sqrt(this->SquaredMag());
}
float C3Vector::SquaredMag() const { float C3Vector::SquaredMag() const {
return this->x * this->x + this->y * this->y + this->z * this->z; return this->x * this->x + this->y * this->y + this->z * this->z;
} }

View file

@ -15,6 +15,7 @@ class C3Vector {
, y(y) , y(y)
, z(z) {}; , z(z) {};
C3Vector& operator*=(float a); C3Vector& operator*=(float a);
float Mag() const;
float SquaredMag() const; float SquaredMag() const;
}; };

View file

@ -43,6 +43,23 @@ TEST_CASE("C3Vector::operator*=", "[vector]") {
} }
} }
TEST_CASE("C3Vector::Mag", "[vector]") {
SECTION("calculates mag") {
auto vector = C3Vector(4.0f, 16.0f, 32.0f);
REQUIRE(vector.Mag() == 36.0f);
}
SECTION("calculates mag of C3Vector(0.0f, 0.0f, 0.0f)") {
auto vector = C3Vector(0.0f, 0.0f, 0.0f);
REQUIRE(vector.Mag() == 0.0f);
}
SECTION("calculates mag of C3Vector(-4.0f, -16.0f, -32.0f)") {
auto vector = C3Vector(-4.0f, -16.0f, -32.0f);
REQUIRE(vector.Mag() == 36.0f);
}
}
TEST_CASE("C3Vector::SquaredMag", "[vector]") { TEST_CASE("C3Vector::SquaredMag", "[vector]") {
SECTION("calculates squared mag") { SECTION("calculates squared mag") {
auto vector = C3Vector(1.0f, 2.0f, 3.0f); auto vector = C3Vector(1.0f, 2.0f, 3.0f);