1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef TITANIC_RECT_H 24 #define TITANIC_RECT_H 25 26 #include "common/rect.h" 27 28 namespace Titanic { 29 30 enum Quadrant { 31 Q_CENTER = 0, Q_LEFT, Q_RIGHT, Q_TOP, Q_BOTTOM 32 }; 33 34 typedef Common::Point Point; 35 36 class Rect : public Common::Rect { 37 public: Rect()38 Rect() : Common::Rect() {} Rect(int16 w,int16 h)39 Rect(int16 w, int16 h) : Common::Rect(w, h) {} Rect(int16 x1,int16 y1,int16 x2,int16 y2)40 Rect(int16 x1, int16 y1, int16 x2, int16 y2) : Common::Rect(x1, y1, x2, y2) {} 41 42 /** 43 * Returns the top/left corner of the rect as a point 44 */ Point()45 operator Point() { return Point(left, top); } 46 47 /** 48 * Clear the rect 49 */ clear()50 void clear() { left = top = right = bottom = 0; } 51 52 /** 53 * Combine another rect into this one 54 */ 55 void combine(const Rect &r); 56 57 /** 58 * Constrains/clips to the intersection area of the given rect 59 */ 60 void constrain(const Rect &r); 61 62 /** 63 * Returns a center point for a given edge or center of the rect 64 */ 65 Point getPoint(Quadrant quadrant); 66 }; 67 68 } // End of namespace Titanic 69 70 #endif /* TITANIC_RECT_H */ 71