00001 /*************************************************************************************************** 00002 ***** Copyright (C) 2005 John Schneiderman <JohnMS@member.fsf.org> ***** 00003 ***** ***** 00004 ***** This program is free software; you can redistribute it and/or modify ***** 00005 ***** it under the terms of the GNU General Public License as published by ***** 00006 ***** the Free Software Foundation; either version 2 of the License, or ***** 00007 ***** (at your option) any later version. ***** 00008 ***** ***** 00009 ***** This program is distributed in the hope that it will be useful, ***** 00010 ***** but WITHOUT ANY WARRANTY; without even the implied warranty of ***** 00011 ***** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ***** 00012 ***** GNU General Public License for more details. ***** 00013 ***** ***** 00014 ***** You should have received a copy of the GNU General Public License ***** 00015 ***** along with this program; if not, write to the Free Software ***** 00016 ***** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***** 00017 ***************************************************************************************************/ 00018 #ifndef COORDINATE_H 00019 #define COORDINATE_H 00020 00021 #include <iostream> 00022 using std::istream; 00023 using std::ostream; 00024 00030 class Coordinate 00031 { 00032 public: 00036 double x; 00040 double y; 00044 double z; 00045 00049 Coordinate(); 00054 Coordinate(double value); 00061 Coordinate(double setX, double setY, double setZ); 00066 Coordinate(const Coordinate &point); 00072 Coordinate& operator=(const Coordinate &rhs); 00081 Coordinate operator+(const Coordinate &rhs) const; 00090 Coordinate operator-(const Coordinate &rhs) const; 00099 Coordinate operator*(const Coordinate &rhs) const; 00108 Coordinate operator/(const Coordinate &rhs) const; 00117 Coordinate& operator+=(const Coordinate &rhs); 00126 Coordinate& operator-=(const Coordinate &rhs); 00135 Coordinate& operator*=(const Coordinate &rhs); 00144 Coordinate& operator/=(const Coordinate &rhs); 00150 bool operator==(const Coordinate &rhs) const; 00156 bool operator!=(const Coordinate &rhs) const; 00163 friend istream& operator>>(istream &in, Coordinate &point); 00170 friend ostream& operator<<(ostream &out, const Coordinate &point); 00171 }; 00172 #endif