1 /* 2 * Copyright 2010-2014 OpenXcom Developers. 3 * 4 * This file is part of OpenXcom. 5 * 6 * OpenXcom is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * OpenXcom is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with OpenXcom. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 #ifndef OPENXCOM_POLYGON_H 20 #define OPENXCOM_POLYGON_H 21 22 #include <SDL.h> 23 24 namespace OpenXcom 25 { 26 27 /** 28 * Represents a polygon in the world map. 29 * Polygons constitute the textured land portions 30 * of the X-Com globe and typically have 3-4 points. 31 */ 32 class Polygon 33 { 34 private: 35 double *_lat, *_lon; 36 Sint16 *_x, *_y; 37 int _points, _texture; 38 public: 39 /// Creates a polygon with a number of points. 40 Polygon(int points); 41 /// Creates a new polygon from an existing one. 42 Polygon(const Polygon& other); 43 /// Cleans up the polygon. 44 ~Polygon(); 45 /// Gets the latitude of a point. 46 double getLatitude(int i) const; 47 /// Sets the latitude of a point. 48 void setLatitude(int i, double lat); 49 /// Gets the longitude of a point. 50 double getLongitude(int i) const; 51 /// Sets the longitude of a point. 52 void setLongitude(int i, double lon); 53 /// Gets the X coordinate of a point. 54 Sint16 getX(int i) const; 55 /// Sets the X coordinate of a point. 56 void setX(int i, Sint16 x); 57 /// Gets the Y coordinate of a point. 58 Sint16 getY(int i) const; 59 /// Sets the Y coordinate of a point. 60 void setY(int i, Sint16 y); 61 /// Gets the texture of the polygon. 62 int getTexture() const; 63 /// Sets the texture of the polygon. 64 void setTexture(int tex); 65 /// Gets the number of points of the polygon. 66 int getPoints() const; 67 }; 68 69 } 70 71 #endif 72