/**************************************************************************** * * * Program: point3v.cpp * * * * Author: Robb T. Koether * * * * Date: Sep 30, 2005 * * * * Purpose: This file contains the implementations of the Point3v * * member functions * * * /***************************************************************************/ // Include header files #include "point3v.h" /**************************************************************************** * * * Function: addV * * * /***************************************************************************/ Point3v Point3v::addV(const Vector3v& v) const { Point3v p; for (int i = 0; i < 4; i++) p.coord[i] = coord[i] + v.coord[i]; return p; } /**************************************************************************** * * * Function: addV * * * /***************************************************************************/ Point3v Point3v::subtractV(const Vector3v& v) const { Point3v p; for (int i = 0; i < 4; i++) p.coord[i] = coord[i] - v.coord[i]; return p; } /**************************************************************************** * * * Function: addV * * * /***************************************************************************/ Vector3v Point3v::subtractP(const Point3v& p) const { Vector3v v; for (int i = 0; i < 4; i++) v.coord[i] = coord[i] - p.coord[i]; return v; } /**************************************************************************** * * * Function: addV * * * /***************************************************************************/ bool Point3v::equal(const Point3v& p) const { bool eq = true; for (int i = 0; i < 4; i++) if (coord[i] != p.coord[i]) return false; return true; } /**************************************************************************** * * * Function: aoperator<< * * * /***************************************************************************/ ostream& operator<<(ostream& out, const Point3v& p) { p.Output(out); return out; } /**************************************************************************** * * * Function: operator+(Point3v, Vector3v) * * * /***************************************************************************/ Point3v operator+(const Point3v& p, const Vector3v& v) { return p.addV(v); } /**************************************************************************** * * * Function: operator-(Point3v, Point3v) * * * /***************************************************************************/ Vector3v operator-(const Point3v& p, const Point3v& q) { return p.subtractP(q); } /**************************************************************************** * * * Function: operator-(Point3v, Vector3v) * * * /***************************************************************************/ Point3v operator-(const Point3v& p, const Vector3v& v) { return p.subtractV(v); } /**************************************************************************** * * * Function: operator==(Point3v, Point3v) * * * /***************************************************************************/ bool operator==(const Point3v& p, const Point3v& q) { return p.equal(q); }