00001 /*************************************************************************** 00002 * Copyright (C) 2007 by Daniel Brody * 00003 * erasnode@gmail.com * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU General Public License as published by * 00007 * the Free Software Foundation; either version 3 of the License, or * 00008 * (at your option) any later version. * 00009 * * 00010 * This program is distributed in the hope that it will be useful, * 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00013 * GNU General Public License for more details. * 00014 * * 00015 * You should have received a copy of the GNU General Public License * 00016 * along with this program; if not, write to the * 00017 * Free Software Foundation, Inc., * 00018 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 00019 ***************************************************************************/ 00020 00021 #pragma once 00022 00033 class Coordinate 00034 { 00035 public: 00036 static Coordinate NORTH; 00037 static Coordinate NUP; 00038 static Coordinate NDOWN; 00040 static Coordinate SOUTH; 00041 static Coordinate SUP; 00042 static Coordinate SDOWN; 00044 static Coordinate EAST; 00045 static Coordinate EUP; 00046 static Coordinate EDOWN; 00048 static Coordinate WEST; 00049 static Coordinate WUP; 00050 static Coordinate WDOWN; 00052 static Coordinate NW; 00053 static Coordinate NWUP; 00054 static Coordinate NWDOWN; 00056 static Coordinate NE; 00057 static Coordinate NEUP; 00058 static Coordinate NEDOWN; 00060 static Coordinate SW; 00061 static Coordinate SWUP; 00062 static Coordinate SWDOWN; 00064 static Coordinate SE; 00065 static Coordinate SEUP; 00066 static Coordinate SEDOWN; 00068 static Coordinate UP; 00069 static Coordinate DOWN; 00077 Coordinate(long X, long Y, long Z); 00078 00083 Coordinate(const Coordinate& rhs); 00084 00088 ~Coordinate(); 00089 00095 Coordinate operator+ (const Coordinate & rhs) const; 00096 00097 00103 Coordinate operator- (const Coordinate & rhs) const; 00104 00109 long getXCoordinate() const; 00110 00115 long getYCoordinate() const; 00116 00121 long getZCoordinate() const; 00122 00123 private: 00127 Coordinate() {}; 00128 00129 long m_xcoordinate; 00130 long m_ycoordinate; 00131 long m_zcoordinate; 00132 };