From ca5cabb6efa765b7485d7ba5a00c1808567c398d Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 16 Jul 2014 23:23:26 -0700 Subject: [PATCH] Add LinearCombination for Vectors --- src/basics.cc | 11 +++++++++++ src/basics.h | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/src/basics.cc b/src/basics.cc index eac030c..a46c8a4 100644 --- a/src/basics.cc +++ b/src/basics.cc @@ -251,6 +251,17 @@ operator<<(std::ostream &os, const Vector3 &v) return os; } + +Vector3 +LinearCombination(const double k1, const Vector3& v1, + const double k2, const Vector3& v2, + const double k3, const Vector3& v3) +{ + return Vector3(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); +} + #pragma mark - Rays /* diff --git a/src/basics.h b/src/basics.h index 04d6d38..8e1c97b 100644 --- a/src/basics.h +++ b/src/basics.h @@ -52,6 +52,11 @@ const Vector3 operator*(const float &lhs, const Vector3 &rhs); std::ostream &operator<<(std::ostream &os, const Vector3 &v); +Vector3 LinearCombination(const double k1, const Vector3& v1, + const double k2, const Vector3& v2, + const double k3, const Vector3& v3); + + struct Ray { Ray();