summaryrefslogtreecommitdiffstats
path: root/src/Data/Vector.cpp
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2008-04-14 00:10:04 +0200
committerneoraider <devnull@localhost>2008-04-14 00:10:04 +0200
commit36d1bb8999ecfe305319c0f2b4313a169a368c13 (patch)
treef1cc3e3f4572c0140aa9e5ae319f8f7db7cbffff /src/Data/Vector.cpp
parent184c6305a677d968e60eb6cba9b29dd840cdce3c (diff)
downloadzoomedit-36d1bb8999ecfe305319c0f2b4313a169a368c13.tar
zoomedit-36d1bb8999ecfe305319c0f2b4313a169a368c13.zip
zoomedit:
* Changed CPPFLAGS and LIBS handling * Added cross and dot product to Vector class * Added View classes
Diffstat (limited to 'src/Data/Vector.cpp')
-rw-r--r--src/Data/Vector.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Data/Vector.cpp b/src/Data/Vector.cpp
index ad17447..8677fd1 100644
--- a/src/Data/Vector.cpp
+++ b/src/Data/Vector.cpp
@@ -39,6 +39,10 @@ Vector Vector::operator-(const Vector &v) const {
return Vector(x - v.x, y - v.y, z - v.z);
}
+float Vector::operator*(const Vector &v) const {
+ return (x*v.x + y*v.y + z*v.z);
+}
+
Vector Vector::operator*(float f) const {
return Vector(x*f, y*f, z*f);
}
@@ -47,6 +51,10 @@ Vector Vector::operator/(float f) const {
return Vector(x/f, y/f, z/f);
}
+Vector Vector::operator%(const Vector &v) const {
+ return Vector(y*v.z-z*v.y, z*v.x-x*v.z, x*v.y-y*v.x);
+}
+
Vector& Vector::operator+=(const Vector &v) {
x += v.x;
y += v.y;
@@ -79,5 +87,10 @@ Vector& Vector::operator/=(float f) {
return *this;
}
+Vector& Vector::operator%=(const Vector &v) {
+ *this = *this % v;
+ return *this;
+}
+
}
}