Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/OgreMain/include/OgreRectangle.h @ 3

Last change on this file since 3 was 3, checked in by anonymous, 17 years ago

=update

File size: 2.4 KB
Line 
1/*
2-----------------------------------------------------------------------------
3This source file is part of OGRE
4    (Object-oriented Graphics Rendering Engine)
5For the latest info, see http://www.ogre3d.org
6
7Copyright (c) 2000-2006 Torus Knot Software Ltd
8Also see acknowledgements in Readme.html
9
10This program is free software; you can redistribute it and/or modify it under
11the terms of the GNU Lesser General Public License as published by the Free Software
12Foundation; either version 2 of the License, or (at your option) any later
13version.
14
15This program is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
18
19You should have received a copy of the GNU Lesser General Public License along with
20this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21Place - Suite 330, Boston, MA 02111-1307, USA, or go to
22http://www.gnu.org/copyleft/lesser.txt.
23
24You may alternatively use this source under the terms of a specific version of
25the OGRE Unrestricted License provided you have obtained such a license from
26Torus Knot Software Ltd.
27-----------------------------------------------------------------------------
28*/
29#ifndef _Rectangle_H__
30#define _Rectangle_H__
31
32#include "OgrePrerequisites.h"
33
34namespace Ogre {
35
36    struct _OgreExport Rectangle
37    {
38        Real left;
39        Real top;
40        Real right;
41        Real bottom;
42
43        inline bool inside(Real x, Real y) const { return x >= left && x <= right && y >= top && y <= bottom; }
44    };
45
46    /** Geometric intersection of two rectanglar regions.
47     *
48     * @remarks Calculates the geometric intersection of two rectangular
49     * regions.  Rectangle coordinates must be ([0-N], [0-N]), such that
50     * (0,0) is in the upper left hand corner.
51     *
52     * If the two input rectangles do not intersect, then the result will be
53     * a degenerate rectangle, i.e. left >= right or top >= bottom, or both.
54     */
55    inline Rectangle intersect(const Rectangle& lhs, const Rectangle& rhs)
56    {
57        Rectangle r;
58
59        r.left   = lhs.left   > rhs.left   ? lhs.left   : rhs.left;
60        r.top    = lhs.top    > rhs.top    ? lhs.top    : rhs.top;
61        r.right  = lhs.right  < rhs.right  ? lhs.right  : rhs.right;
62        r.bottom = lhs.bottom < rhs.bottom ? lhs.bottom : rhs.bottom;
63
64        return r;
65    }
66
67}
68
69#endif // _Rectangle_H__
Note: See TracBrowser for help on using the repository browser.