/**************************************************************************** * * * File: vector3v.cpp * * * * Author: Robb T. Koether * * * * Date: Sep 30, 2005 * * * * Purpose: This file contains the implementations of the Vector3v * * member functions * * * /***************************************************************************/ // Include header files #include "vector3v.h" /**************************************************************************** * * * Function: addV * * * /***************************************************************************/ Vector3v Vector3v::addV(const Vector3v& v) const { Vector3v u; for (int i = 0; i < 4; i++) u.coord[i] = coord[i] + v.coord[i]; return u; } /**************************************************************************** * * * Function: subtractV * * * /***************************************************************************/ Vector3v Vector3v::subtractV(const Vector3v& v) const { Vector3v u; for (int i = 0; i < 4; i++) u.coord[i] = coord[i] - v.coord[i]; return u; } /**************************************************************************** * * * Function: multiplyS * * * /***************************************************************************/ Vector3v Vector3v::multiplyS(const double& s) const { Vector3v v; for (int i = 0; i < 4; i++) v.coord[i] = s*coord[i]; return v; } /**************************************************************************** * * * Function: setDiff * * * /***************************************************************************/ void Vector3v::setDiff(const Point3v& p, const Point3v& q) {coord[0] = p.x() - q.x(); coord[1] = p.y() - q.y(); coord[2] = p.z() - q.z();} /**************************************************************************** * * * Function: addP * * * /***************************************************************************/ Point3v Vector3v::addP(const Point3v& p) const { Point3v q; for (int i = 0; i < 4; i++) q.coord[i] = coord[i] + p.coord[i]; return q; } /**************************************************************************** * * * Function: operator<< * * * /***************************************************************************/ ostream& operator<<(ostream& out, const Vector3v& v) { v.Output(out); return out; } /**************************************************************************** * * * Function: operator+(Vector3v, Vector3v) * * * /***************************************************************************/ Vector3v operator+(const Vector3v& u, const Vector3v& v) { return u.addV(v); } /**************************************************************************** * * * Function: operator-(Vector3v, Vector3v) * * * /***************************************************************************/ Vector3v operator-(const Vector3v& u, const Vector3v& v) { return u.subtractV(v); } /**************************************************************************** * * * Function: operator* * * * /***************************************************************************/ Vector3v operator*(const double s, const Vector3v& v) { return v.multiplyS(s); } /**************************************************************************** * * * Function: operator+(Vector3v, Point3v) * * * /***************************************************************************/ Point3v operator+(const Vector3v& v, const Point3v& p) { return v.addP(p); }