Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 58828b263d8f56d90ac336dea07a4586 > files > 931

irrlicht-doc-1.6.1-1mdv2010.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Irrlicht Engine: rect.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table class="irrlicht" >
  <tr valign="middle"> 
    <td><font size="2"><a class="qindex" href="index.html"><font color="#FFFFFF">Home</font></a> 
      | <a class="qindex" href="namespaces.html"><font color="#FFFFFF">Namespaces</font></a> 
      | <a class="qindex" href="hierarchy.html"><font color="#FFFFFF">Hierarchy</font></a> 
      | <a class="qindex" href="classes.html"><font color="#FFFFFF">Alphabetical 
      List</font></a> | <a class="qindex" href="annotated.html"><font color="#FFFFFF"> 
      Class list</font></a> | <a class="qindex" href="files.html"><font color="#FFFFFF">Files</font></a> 
      | <a class="qindex" href="namespacemembers.html"><font color="#FFFFFF"> 
      Namespace&nbsp;Members</font></a> | <a class="qindex" href="functions.html"><font color="#FFFFFF">Class 
      members</font></a> | <a class="qindex" href="globals.html"><font color="#FFFFFF">File 
      members</font></a> | <a class="qindex" href="pages.html"><font color="#FFFFFF">Tutorials</font></a></font> </td>
  </tr>
</table>
<!-- Generated by Doxygen 1.5.6 -->
<h1>rect.h</h1><a href="rect_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// Copyright (C) 2002-2009 Nikolaus Gebhardt</span>
<a name="l00002"></a>00002 <span class="comment">// This file is part of the "Irrlicht Engine".</span>
<a name="l00003"></a>00003 <span class="comment">// For conditions of distribution and use, see copyright notice in irrlicht.h</span>
<a name="l00004"></a>00004 
<a name="l00005"></a>00005 <span class="preprocessor">#ifndef __IRR_RECT_H_INCLUDED__</span>
<a name="l00006"></a>00006 <span class="preprocessor"></span><span class="preprocessor">#define __IRR_RECT_H_INCLUDED__</span>
<a name="l00007"></a>00007 <span class="preprocessor"></span>
<a name="l00008"></a>00008 <span class="preprocessor">#include "<a class="code" href="irr_types_8h.html">irrTypes.h</a>"</span>
<a name="l00009"></a>00009 <span class="preprocessor">#include "<a class="code" href="dimension2d_8h.html">dimension2d.h</a>"</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="position2d_8h.html">position2d.h</a>"</span>
<a name="l00011"></a>00011 
<a name="l00012"></a>00012 <span class="keyword">namespace </span>irr
<a name="l00013"></a>00013 {
<a name="l00014"></a>00014 <span class="keyword">namespace </span>core
<a name="l00015"></a>00015 {
<a name="l00016"></a>00016 
<a name="l00018"></a>00018 
<a name="l00025"></a>00025         <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
<a name="l00026"></a><a class="code" href="classirr_1_1core_1_1rect.html">00026</a>         <span class="keyword">class </span><a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect</a>
<a name="l00027"></a>00027         {
<a name="l00028"></a>00028         <span class="keyword">public</span>:
<a name="l00029"></a>00029 
<a name="l00031"></a><a class="code" href="classirr_1_1core_1_1rect.html#04c79e7af6ff14b62e569628c4f83e44">00031</a>                 <a class="code" href="classirr_1_1core_1_1rect.html#04c79e7af6ff14b62e569628c4f83e44" title="Default constructor creating empty rectangle at (0,0).">rect</a>() : <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>(0,0), <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>(0,0) {}
<a name="l00032"></a>00032 
<a name="l00034"></a><a class="code" href="classirr_1_1core_1_1rect.html#f7d59f53cd24d5f9f587896160ece50a">00034</a>                 <a class="code" href="classirr_1_1core_1_1rect.html#04c79e7af6ff14b62e569628c4f83e44" title="Default constructor creating empty rectangle at (0,0).">rect</a>(T x, T y, T x2, T y2)
<a name="l00035"></a>00035                         : <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>(x,y), <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>(x2,y2) {}
<a name="l00036"></a>00036 
<a name="l00038"></a><a class="code" href="classirr_1_1core_1_1rect.html#8f207109cebad893de44b01cc67e9e34">00038</a>                 <a class="code" href="classirr_1_1core_1_1rect.html#04c79e7af6ff14b62e569628c4f83e44" title="Default constructor creating empty rectangle at (0,0).">rect</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; upperLeft, <span class="keyword">const</span> position2d&lt;T&gt;&amp; lowerRight)
<a name="l00039"></a>00039                         : <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>(upperLeft), <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>(lowerRight) {}
<a name="l00040"></a>00040 
<a name="l00042"></a>00042                 <span class="keyword">template</span> &lt;<span class="keyword">class</span> U&gt;
<a name="l00043"></a><a class="code" href="classirr_1_1core_1_1rect.html#6a944267fd3b60c085bac64d4a6d5d9a">00043</a>                 <a class="code" href="classirr_1_1core_1_1rect.html#04c79e7af6ff14b62e569628c4f83e44" title="Default constructor creating empty rectangle at (0,0).">rect</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1dimension2d.html" title="Specifies a 2 dimensional size.">dimension2d&lt;U&gt;</a>&amp; size)
<a name="l00044"></a>00044                         : <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>(pos), <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>(pos.X + size.Width, pos.Y + size.Height) {}
<a name="l00045"></a>00045 
<a name="l00047"></a><a class="code" href="classirr_1_1core_1_1rect.html#699b98aff4bf8b7d92cef6d3c940354f">00047</a>                 <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a> <a class="code" href="classirr_1_1core_1_1rect.html#699b98aff4bf8b7d92cef6d3c940354f" title="move right by given numbers">operator+</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; pos)<span class="keyword"> const</span>
<a name="l00048"></a>00048 <span class="keyword">                </span>{
<a name="l00049"></a>00049                         <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a> ret(*<span class="keyword">this</span>);
<a name="l00050"></a>00050                         <span class="keywordflow">return</span> ret+=pos;
<a name="l00051"></a>00051                 }
<a name="l00052"></a>00052 
<a name="l00054"></a><a class="code" href="classirr_1_1core_1_1rect.html#4f4f1c3c3321d1ca5e9f617ebf47421c">00054</a>                 <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; <a class="code" href="classirr_1_1core_1_1rect.html#4f4f1c3c3321d1ca5e9f617ebf47421c" title="move right by given numbers">operator+=</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; pos)
<a name="l00055"></a>00055                 {
<a name="l00056"></a>00056                         <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a> += pos;
<a name="l00057"></a>00057                         <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a> += pos;
<a name="l00058"></a>00058                         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00059"></a>00059                 }
<a name="l00060"></a>00060 
<a name="l00062"></a><a class="code" href="classirr_1_1core_1_1rect.html#031c021cf1ccbc4efe5b5242e85cdc6d">00062</a>                 <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a> <a class="code" href="classirr_1_1core_1_1rect.html#031c021cf1ccbc4efe5b5242e85cdc6d" title="move left by given numbers">operator-</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; pos)<span class="keyword"> const</span>
<a name="l00063"></a>00063 <span class="keyword">                </span>{
<a name="l00064"></a>00064                         <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a> ret(*<span class="keyword">this</span>);
<a name="l00065"></a>00065                         <span class="keywordflow">return</span> ret-=pos;
<a name="l00066"></a>00066                 }
<a name="l00067"></a>00067 
<a name="l00069"></a><a class="code" href="classirr_1_1core_1_1rect.html#3ef4f6f13ec79c3d5745df3a76f9e1e1">00069</a>                 <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; <a class="code" href="classirr_1_1core_1_1rect.html#3ef4f6f13ec79c3d5745df3a76f9e1e1" title="move left by given numbers">operator-=</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; pos)
<a name="l00070"></a>00070                 {
<a name="l00071"></a>00071                         <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a> -= pos;
<a name="l00072"></a>00072                         <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a> -= pos;
<a name="l00073"></a>00073                         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00074"></a>00074                 }
<a name="l00075"></a>00075 
<a name="l00077"></a><a class="code" href="classirr_1_1core_1_1rect.html#e788c2c726f187fc4681f9ca6eef2b19">00077</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1core_1_1rect.html#e788c2c726f187fc4681f9ca6eef2b19" title="equality operator">operator==</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; other)<span class="keyword"> const</span>
<a name="l00078"></a>00078 <span class="keyword">                </span>{
<a name="l00079"></a>00079                         <span class="keywordflow">return</span> (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a> == other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a> &amp;&amp;
<a name="l00080"></a>00080                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a> == other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>);
<a name="l00081"></a>00081                 }
<a name="l00082"></a>00082 
<a name="l00084"></a><a class="code" href="classirr_1_1core_1_1rect.html#68e23478fc9788779820988f106b9fd2">00084</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1core_1_1rect.html#68e23478fc9788779820988f106b9fd2" title="inequality operator">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; other)<span class="keyword"> const</span>
<a name="l00085"></a>00085 <span class="keyword">                </span>{
<a name="l00086"></a>00086                         <span class="keywordflow">return</span> (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a> != other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a> ||
<a name="l00087"></a>00087                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a> != other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>);
<a name="l00088"></a>00088                 }
<a name="l00089"></a>00089 
<a name="l00091"></a><a class="code" href="classirr_1_1core_1_1rect.html#bcba5b76777333253cd37ed041e7c3a7">00091</a>                 <span class="keywordtype">bool</span> operator&lt;(const rect&lt;T&gt;&amp; other) <span class="keyword">const</span>
<a name="l00092"></a>00092                 {
<a name="l00093"></a>00093                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1core_1_1rect.html#ec261cb39303c6051faf8202741f2b53" title="Returns size of rectangle.">getArea</a>() &lt; other.getArea();
<a name="l00094"></a>00094                 }
<a name="l00095"></a>00095 
<a name="l00097"></a><a class="code" href="classirr_1_1core_1_1rect.html#ec261cb39303c6051faf8202741f2b53">00097</a>                 T <a class="code" href="classirr_1_1core_1_1rect.html#ec261cb39303c6051faf8202741f2b53" title="Returns size of rectangle.">getArea</a>()<span class="keyword"> const</span>
<a name="l00098"></a>00098 <span class="keyword">                </span>{
<a name="l00099"></a>00099                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1core_1_1rect.html#e313a3674095733348d5e8bcb75c49b4" title="Get width of rectangle.">getWidth</a>() * <a class="code" href="classirr_1_1core_1_1rect.html#61b4192aa7aee5b55c288b1eac29d76b" title="Get height of rectangle.">getHeight</a>();
<a name="l00100"></a>00100                 }
<a name="l00101"></a>00101 
<a name="l00103"></a>00103 
<a name="l00105"></a><a class="code" href="classirr_1_1core_1_1rect.html#3276400775d230f377ff1e2755cbb4ef">00105</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1core_1_1rect.html#3276400775d230f377ff1e2755cbb4ef" title="Returns if a 2d point is within this rectangle.">isPointInside</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; pos)<span class="keyword"> const</span>
<a name="l00106"></a>00106 <span class="keyword">                </span>{
<a name="l00107"></a>00107                         <span class="keywordflow">return</span> (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X &lt;= pos.X &amp;&amp;
<a name="l00108"></a>00108                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y &lt;= pos.Y &amp;&amp;
<a name="l00109"></a>00109                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X &gt;= pos.X &amp;&amp;
<a name="l00110"></a>00110                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y &gt;= pos.Y);
<a name="l00111"></a>00111                 }
<a name="l00112"></a>00112 
<a name="l00114"></a>00114 
<a name="l00116"></a><a class="code" href="classirr_1_1core_1_1rect.html#bb2b27935e617dfad6445b2f25f7513d">00116</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1core_1_1rect.html#bb2b27935e617dfad6445b2f25f7513d" title="Check if the rectangle collides with another rectangle.">isRectCollided</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; other)<span class="keyword"> const</span>
<a name="l00117"></a>00117 <span class="keyword">                </span>{
<a name="l00118"></a>00118                         <span class="keywordflow">return</span> (<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y &gt; other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y &amp;&amp;
<a name="l00119"></a>00119                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y &lt; other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y &amp;&amp;
<a name="l00120"></a>00120                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X &gt; other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X &amp;&amp;
<a name="l00121"></a>00121                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X &lt; other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X);
<a name="l00122"></a>00122                 }
<a name="l00123"></a>00123 
<a name="l00125"></a>00125 
<a name="l00126"></a><a class="code" href="classirr_1_1core_1_1rect.html#86645d45a8bed1a3539bba9865e93de4">00126</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1core_1_1rect.html#86645d45a8bed1a3539bba9865e93de4" title="Clips this rectangle with another one.">clipAgainst</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; other)
<a name="l00127"></a>00127                 {
<a name="l00128"></a>00128                         <span class="keywordflow">if</span> (other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X &lt; <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X)
<a name="l00129"></a>00129                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X = other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X;
<a name="l00130"></a>00130                         <span class="keywordflow">if</span> (other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y &lt; <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y)
<a name="l00131"></a>00131                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y = other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y;
<a name="l00132"></a>00132 
<a name="l00133"></a>00133                         <span class="keywordflow">if</span> (other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X &gt; <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X)
<a name="l00134"></a>00134                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X = other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X;
<a name="l00135"></a>00135                         <span class="keywordflow">if</span> (other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y &gt; <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y)
<a name="l00136"></a>00136                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y = other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y;
<a name="l00137"></a>00137 
<a name="l00138"></a>00138                         <span class="comment">// correct possible invalid rect resulting from clipping</span>
<a name="l00139"></a>00139                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y &gt; <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y)
<a name="l00140"></a>00140                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y = <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y;
<a name="l00141"></a>00141                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X &gt; <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X)
<a name="l00142"></a>00142                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X = <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X;
<a name="l00143"></a>00143                 }
<a name="l00144"></a>00144 
<a name="l00146"></a>00146 
<a name="l00147"></a><a class="code" href="classirr_1_1core_1_1rect.html#4515d2a1349dc805775854a422465f63">00147</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1core_1_1rect.html#4515d2a1349dc805775854a422465f63" title="Moves this rectangle to fit inside another one.">constrainTo</a>(<span class="keyword">const</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;T&gt;</a>&amp; other)
<a name="l00148"></a>00148                 {
<a name="l00149"></a>00149                         <span class="keywordflow">if</span> (other.<a class="code" href="classirr_1_1core_1_1rect.html#e313a3674095733348d5e8bcb75c49b4" title="Get width of rectangle.">getWidth</a>() &lt; <a class="code" href="classirr_1_1core_1_1rect.html#e313a3674095733348d5e8bcb75c49b4" title="Get width of rectangle.">getWidth</a>() || other.<a class="code" href="classirr_1_1core_1_1rect.html#61b4192aa7aee5b55c288b1eac29d76b" title="Get height of rectangle.">getHeight</a>() &lt; <a class="code" href="classirr_1_1core_1_1rect.html#61b4192aa7aee5b55c288b1eac29d76b" title="Get height of rectangle.">getHeight</a>())
<a name="l00150"></a>00150                                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00151"></a>00151 
<a name="l00152"></a>00152                         T diff = other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X - <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X;
<a name="l00153"></a>00153                         <span class="keywordflow">if</span> (diff &lt; 0)
<a name="l00154"></a>00154                         {
<a name="l00155"></a>00155                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X += diff;
<a name="l00156"></a>00156                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X  += diff;
<a name="l00157"></a>00157                         }
<a name="l00158"></a>00158 
<a name="l00159"></a>00159                         diff = other.<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y - <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y;
<a name="l00160"></a>00160                         <span class="keywordflow">if</span> (diff &lt; 0)
<a name="l00161"></a>00161                         {
<a name="l00162"></a>00162                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y += diff;
<a name="l00163"></a>00163                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y  += diff;
<a name="l00164"></a>00164                         }
<a name="l00165"></a>00165 
<a name="l00166"></a>00166                         diff = <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X - other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X;
<a name="l00167"></a>00167                         <span class="keywordflow">if</span> (diff &lt; 0)
<a name="l00168"></a>00168                         {
<a name="l00169"></a>00169                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X  -= diff;
<a name="l00170"></a>00170                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X -= diff;
<a name="l00171"></a>00171                         }
<a name="l00172"></a>00172 
<a name="l00173"></a>00173                         diff = <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y - other.<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y;
<a name="l00174"></a>00174                         <span class="keywordflow">if</span> (diff &lt; 0)
<a name="l00175"></a>00175                         {
<a name="l00176"></a>00176                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y  -= diff;
<a name="l00177"></a>00177                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y -= diff;
<a name="l00178"></a>00178                         }
<a name="l00179"></a>00179 
<a name="l00180"></a>00180                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00181"></a>00181                 }
<a name="l00182"></a>00182 
<a name="l00184"></a><a class="code" href="classirr_1_1core_1_1rect.html#e313a3674095733348d5e8bcb75c49b4">00184</a>                 T <a class="code" href="classirr_1_1core_1_1rect.html#e313a3674095733348d5e8bcb75c49b4" title="Get width of rectangle.">getWidth</a>()<span class="keyword"> const</span>
<a name="l00185"></a>00185 <span class="keyword">                </span>{
<a name="l00186"></a>00186                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X - <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X;
<a name="l00187"></a>00187                 }
<a name="l00188"></a>00188 
<a name="l00190"></a><a class="code" href="classirr_1_1core_1_1rect.html#61b4192aa7aee5b55c288b1eac29d76b">00190</a>                 T <a class="code" href="classirr_1_1core_1_1rect.html#61b4192aa7aee5b55c288b1eac29d76b" title="Get height of rectangle.">getHeight</a>()<span class="keyword"> const</span>
<a name="l00191"></a>00191 <span class="keyword">                </span>{
<a name="l00192"></a>00192                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y - <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y;
<a name="l00193"></a>00193                 }
<a name="l00194"></a>00194 
<a name="l00196"></a><a class="code" href="classirr_1_1core_1_1rect.html#45c7665e74aed626bb5c01729f206775">00196</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1core_1_1rect.html#45c7665e74aed626bb5c01729f206775" title="If the lower right corner of the rect is smaller then the upper left, the points...">repair</a>()
<a name="l00197"></a>00197                 {
<a name="l00198"></a>00198                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X &lt; <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X)
<a name="l00199"></a>00199                         {
<a name="l00200"></a>00200                                 T t = <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X;
<a name="l00201"></a>00201                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X = <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X;
<a name="l00202"></a>00202                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X = t;
<a name="l00203"></a>00203                         }
<a name="l00204"></a>00204 
<a name="l00205"></a>00205                         <span class="keywordflow">if</span> (<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y &lt; <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y)
<a name="l00206"></a>00206                         {
<a name="l00207"></a>00207                                 T t = <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y;
<a name="l00208"></a>00208                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y = <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y;
<a name="l00209"></a>00209                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y = t;
<a name="l00210"></a>00210                         }
<a name="l00211"></a>00211                 }
<a name="l00212"></a>00212 
<a name="l00214"></a>00214 
<a name="l00216"></a><a class="code" href="classirr_1_1core_1_1rect.html#1ab043c2f686a7d02fc72a1655162faf">00216</a>                 <span class="keywordtype">bool</span> <a class="code" href="classirr_1_1core_1_1rect.html#1ab043c2f686a7d02fc72a1655162faf" title="Returns if the rect is valid to draw.">isValid</a>()<span class="keyword"> const</span>
<a name="l00217"></a>00217 <span class="keyword">                </span>{
<a name="l00218"></a>00218                         <span class="keywordflow">return</span> ((<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X &gt;= <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X) &amp;&amp;
<a name="l00219"></a>00219                                 (<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y &gt;= <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y));
<a name="l00220"></a>00220                 }
<a name="l00221"></a>00221 
<a name="l00223"></a><a class="code" href="classirr_1_1core_1_1rect.html#44fa44c31767208d5bf2b6e6980a742c">00223</a>                 position2d&lt;T&gt; <a class="code" href="classirr_1_1core_1_1rect.html#44fa44c31767208d5bf2b6e6980a742c" title="Get the center of the rectangle.">getCenter</a>()<span class="keyword"> const</span>
<a name="l00224"></a>00224 <span class="keyword">                </span>{
<a name="l00225"></a>00225                         <span class="keywordflow">return</span> position2d&lt;T&gt;(
<a name="l00226"></a>00226                                         (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X + <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X) / 2,
<a name="l00227"></a>00227                                         (<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y + <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y) / 2);
<a name="l00228"></a>00228                 }
<a name="l00229"></a>00229 
<a name="l00231"></a><a class="code" href="classirr_1_1core_1_1rect.html#dffacbb0f07d8268a32af2a32b3ac3ac">00231</a>                 <a class="code" href="classirr_1_1core_1_1dimension2d.html" title="Specifies a 2 dimensional size.">dimension2d&lt;T&gt;</a> <a class="code" href="classirr_1_1core_1_1rect.html#dffacbb0f07d8268a32af2a32b3ac3ac" title="Get the dimensions of the rectangle.">getSize</a>()<span class="keyword"> const</span>
<a name="l00232"></a>00232 <span class="keyword">                </span>{
<a name="l00233"></a>00233                         <span class="keywordflow">return</span> <a class="code" href="classirr_1_1core_1_1dimension2d.html" title="Specifies a 2 dimensional size.">dimension2d&lt;T&gt;</a>(<a class="code" href="classirr_1_1core_1_1rect.html#e313a3674095733348d5e8bcb75c49b4" title="Get width of rectangle.">getWidth</a>(), <a class="code" href="classirr_1_1core_1_1rect.html#61b4192aa7aee5b55c288b1eac29d76b" title="Get height of rectangle.">getHeight</a>());
<a name="l00234"></a>00234                 }
<a name="l00235"></a>00235 
<a name="l00236"></a>00236 
<a name="l00238"></a>00238 
<a name="l00241"></a><a class="code" href="classirr_1_1core_1_1rect.html#0b7496319a32ceda640c730f5822f1ef">00241</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1core_1_1rect.html#0b7496319a32ceda640c730f5822f1ef" title="Adds a point to the rectangle.">addInternalPoint</a>(<span class="keyword">const</span> position2d&lt;T&gt;&amp; p)
<a name="l00242"></a>00242                 {
<a name="l00243"></a>00243                         <a class="code" href="classirr_1_1core_1_1rect.html#0b7496319a32ceda640c730f5822f1ef" title="Adds a point to the rectangle.">addInternalPoint</a>(p.X, p.Y);
<a name="l00244"></a>00244                 }
<a name="l00245"></a>00245 
<a name="l00247"></a>00247 
<a name="l00251"></a><a class="code" href="classirr_1_1core_1_1rect.html#25b80222bc003a238fa8f5157bdb8b9d">00251</a>                 <span class="keywordtype">void</span> <a class="code" href="classirr_1_1core_1_1rect.html#0b7496319a32ceda640c730f5822f1ef" title="Adds a point to the rectangle.">addInternalPoint</a>(T x, T y)
<a name="l00252"></a>00252                 {
<a name="l00253"></a>00253                         <span class="keywordflow">if</span> (x&gt;<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X)
<a name="l00254"></a>00254                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.X = x;
<a name="l00255"></a>00255                         <span class="keywordflow">if</span> (y&gt;<a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y)
<a name="l00256"></a>00256                                 <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>.Y = y;
<a name="l00257"></a>00257 
<a name="l00258"></a>00258                         <span class="keywordflow">if</span> (x&lt;<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X)
<a name="l00259"></a>00259                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.X = x;
<a name="l00260"></a>00260                         <span class="keywordflow">if</span> (y&lt;<a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y)
<a name="l00261"></a>00261                                 <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>.Y = y;
<a name="l00262"></a>00262                 }
<a name="l00263"></a>00263 
<a name="l00265"></a><a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573">00265</a>                 position2d&lt;T&gt; <a class="code" href="classirr_1_1core_1_1rect.html#bd47b3a4967b2153e58984d964af6573" title="Upper left corner.">UpperLeftCorner</a>;
<a name="l00267"></a><a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e">00267</a>                 position2d&lt;T&gt; <a class="code" href="classirr_1_1core_1_1rect.html#a7c7e38bbff5f32992f69b36fc8cec1e" title="Lower right corner.">LowerRightCorner</a>;
<a name="l00268"></a>00268         };
<a name="l00269"></a>00269 
<a name="l00271"></a><a class="code" href="namespaceirr_1_1core.html#d76013a2b724e7a279f7488f399eb1c0">00271</a>         <span class="keyword">typedef</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;f32&gt;</a> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rectf</a>;
<a name="l00273"></a><a class="code" href="namespaceirr_1_1core.html#628365d56b9d3ca9c887cd7f651f7b45">00273</a>         <span class="keyword">typedef</span> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">rect&lt;s32&gt;</a> <a class="code" href="classirr_1_1core_1_1rect.html" title="Rectangle template.">recti</a>;
<a name="l00274"></a>00274 
<a name="l00275"></a>00275 } <span class="comment">// end namespace core</span>
<a name="l00276"></a>00276 } <span class="comment">// end namespace irr</span>
<a name="l00277"></a>00277 
<a name="l00278"></a>00278 <span class="preprocessor">#endif</span>
<a name="l00279"></a>00279 <span class="preprocessor"></span>
</pre></div></div>
<hr size="1">
<address style="align: right;">
<small> </small>
</address>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr> 
    <td width="0"> <div align="left"><small><a href="http://irrlicht.sourceforge.net" target="_blank"><img src="irrlicht.png" alt="The Irrlicht Engine" align="middle" border=0 width=88 height=31></a></small></div></td>
    <td> <div align="left"><small><em><font size="2">The <a href="http://irrlicht.sourceforge.net" target="_blank">Irrlicht 
        Engine</a> Documentation &copy; 2003-2009 by Nikolaus Gebhardt. Generated 
        on Sun Jan 10 09:24:04 2010 by <a href="http://www.doxygen.org" target="_blank">Doxygen</a> 
        (1.5.6)</font></em></small></div></td>
  </tr>
</table>
<address style="align: right;">
</address>
</body>
</html>