From 4e8d9e793b350faa85bb619037ae82d35c31bf8e Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Tue, 6 Aug 2013 14:31:46 +1000 Subject: [PATCH] Add subtraction operators for point - vector --- point.cpp | 22 ++++++++++++++++++++++ point.hpp | 2 ++ 2 files changed, 24 insertions(+) diff --git a/point.cpp b/point.cpp index beb6f416..873b731c 100644 --- a/point.cpp +++ b/point.cpp @@ -87,6 +87,27 @@ util::point::operator* (double f) const { } +//----------------------------------------------------------------------------- +template +util::point +util::point::operator- (const util::vector &rhs) const { + util::point out; + + for (size_t i = 0; i < S; ++i) + out.data[i] = this->data[i] - rhs.data[i]; + return out; +} + + +template +util::point& +util::point::operator-= (const util::vector &rhs) { + for (size_t i = 0; i < S; ++i) + this->data[i] -= rhs.data[i]; + return *this; +} + +//----------------------------------------------------------------------------- template util::point util::point::operator+ (const util::vector &rhs) const { @@ -107,6 +128,7 @@ util::point::operator+= (const util::vector &rhs) { } +//----------------------------------------------------------------------------- template util::point util::point::operator- (const util::point &rhs) const { diff --git a/point.hpp b/point.hpp index 48b02e35..e16399f6 100644 --- a/point.hpp +++ b/point.hpp @@ -46,6 +46,8 @@ namespace util { point operator* (double) const; point operator- (const point&) const; + point operator- (const util::vector&) const; + point& operator-= (const util::vector&); point operator+ (const util::vector&) const; point& operator+= (const util::vector&);