GUIScript: Make LoadSymbol return an object.
[gemrb.git] / gemrb / core / Region.h
blob675663b001c3c72f81ea6feda51435035e1555ff
1 /* GemRB - Infinity Engine Emulator
2 * Copyright (C) 2003 The GemRB Project
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 /**
22 * @file Region.h
23 * Declares Point and Region, 2d-space primitive types
24 * @author The GemRB Project
28 #ifndef REGION_H
29 #define REGION_H
31 #include "exports.h"
32 #include "ie_types.h"
34 /**
35 * @class Point
36 * Point in 2d-space: [x, y]
39 class GEM_EXPORT Point {
40 public:
41 Point(void);
42 Point(const Point& pnt);
43 Point(short x, short y);
44 ~Point(void);
46 Point& operator=(const Point& pnt);
47 bool operator==(const Point &pnt);
48 bool operator!=(const Point &pnt);
50 /** if it is [-1.-1] */
51 bool isempty() const;
52 /** if it is [0.0] */
53 bool isnull() const;
54 inline void empty() {
55 x=-1;
56 y=-1;
58 inline void null() {
59 x=0;
60 y=0;
62 bool PointInside(const Point &p) const;
64 ieDword asDword() const; // store coordinates in uint32 ((y << 16) | x)
65 void fromDword(ieDword val); // extract coordinates from uint32
67 short x,y;
71 /**
72 * @class Region
73 * Rectangular area in 2d-space [x, y] - [x+w, y+h]
76 class GEM_EXPORT Region {
77 public:
78 Region(void);
79 ~Region(void);
80 int x;
81 int y;
82 int w;
83 int h;
84 Region(const Region& rgn);
85 Region(const Point& p, int w, int h);
86 Region& operator=(const Region& rgn);
87 bool operator==(const Region& rgn);
88 bool operator!=(const Region& rgn);
89 Region(int x, int y, int w, int h);
90 bool PointInside(unsigned short XPos, unsigned short YPos) const;
91 bool PointInside(const Point &p) const;
92 bool InsideRegion(const Region& rgn) const;
93 void Normalize();
96 #endif // ! REGION_H