<!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>Crystal Space 1.2.1: csRectRegion Class Reference (Crystal Space 1.2.1 Public API Reference)</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="head"> <tr height="59"> <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td> <td class="head"><h2>Public API Reference</h2></td> </tr> <tr height="11"> <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td> </tr> </table> <div class="content"> <!-- Generated by Doxygen 1.5.3 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <h1>csRectRegion Class Reference<br> <small> [<a class="el" href="group__geom__utils.html">Geometry utilities</a>]</small> </h1><!-- doxytag: class="csRectRegion" -->A rect region is a class that implements splittable 2d rectangles. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="csrectrg_8h-source.html">csgeom/csrectrg.h</a>></code> <p> <p> <a href="classcsRectRegion-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#67b6eecf39c39bf3813f03987d3b16b4">ClipTo</a> (<a class="el" href="classcsRect.html">csRect</a> &clip)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clips everything in the region to the borders given. <a href="#67b6eecf39c39bf3813f03987d3b16b4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#9ca364cece07fd3b809695234969b5d2">Count</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of rectangles in this region. <a href="#9ca364cece07fd3b809695234969b5d2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#7d4b642982e0bb4384edf7893d6308db">csRectRegion</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#7d4b642982e0bb4384edf7893d6308db"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#484e83b71babd1136e6d4dbda483cc62">Exclude</a> (const <a class="el" href="classcsRect.html">csRect</a> &rect)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Exclude a rect from this region; may cause splitting. <a href="#484e83b71babd1136e6d4dbda483cc62"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#ed030c9849fa84c238d0c440d897296b">Include</a> (const <a class="el" href="classcsRect.html">csRect</a> &rect)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a rect to this region; may cause unions, but will not adjance (see <a class="el" href="classcsRect.html" title="Rectangle class: simple class for manipulating 2D rectangles.">csRect</a>). <a href="#ed030c9849fa84c238d0c440d897296b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#a1c05b7c68abc68d0fbb0ddbd7f842f0">MakeEmpty</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Resets the region count to zero. <a href="#a1c05b7c68abc68d0fbb0ddbd7f842f0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsRect.html">csRect</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#5c4245798542ec76199f77d36cd0b213">RectAt</a> (size_t i) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the rect at a specific index. <a href="#5c4245798542ec76199f77d36cd0b213"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#ca150e546d590989afc2fd6ebd62ce0f">~csRectRegion</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#ca150e546d590989afc2fd6ebd62ce0f"></a><br></td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#bc598924c0307d2051b1f83aaab479c5">fragmentContainedRect</a> (<a class="el" href="classcsRect.html">csRect</a> &r1, <a class="el" href="classcsRect.html">csRect</a> &r2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Work method fragments rects properly when they intersect. <a href="#bc598924c0307d2051b1f83aaab479c5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#843836616b3c505a30496413c7e5894d">fragmentRect</a> (<a class="el" href="classcsRect.html">csRect</a> &, <a class="el" href="classcsRect.html">csRect</a> &, int mode)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Controls fragmentContainedRect, used to perform all-side clipping and edge intersection. <a href="#843836616b3c505a30496413c7e5894d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#99ac7ac00f6778647f833eb6875fa10c">gatherFragments</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gathers all regions since the mark into the fragment buffer. <a href="#99ac7ac00f6778647f833eb6875fa10c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#fffbf8f625a97150b2add16b0ae46e4f">markForGather</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Marks the current region insertion point for gather. <a href="#fffbf8f625a97150b2add16b0ae46e4f"></a><br></td></tr> <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsRect.html">csRect</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#c7681fa9df1781f42590cbb6425173d2">fragment</a> [<a class="el" href="classcsRectRegion.html#221d1a945303f9f37a3fab982b7ceb7f">FRAGMENT_BUFFER_SIZE</a>]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The fragment buffer, used for performing fragment operations. <a href="#c7681fa9df1781f42590cbb6425173d2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#d1a03fe59b2642e91826356f155a303a">gather_mark</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The gather marker. <a href="#d1a03fe59b2642e91826356f155a303a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsArray.html">csArray</a>< <a class="el" href="classcsRect.html">csRect</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#c124ef08373f13d063e91515b1e14ff9">region</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The pointer the list of regions. <a href="#c124ef08373f13d063e91515b1e14ff9"></a><br></td></tr> <tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="221d1a945303f9f37a3fab982b7ceb7f"></a><!-- doxytag: member="csRectRegion::FRAGMENT_BUFFER_SIZE" ref="221d1a945303f9f37a3fab982b7ceb7f" args="" --> static const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsRectRegion.html#221d1a945303f9f37a3fab982b7ceb7f">FRAGMENT_BUFFER_SIZE</a> = 64</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A rect region is a class that implements splittable 2d rectangles. <p> The region may be composed of one or more rectangles that do not need to occupy the same area. The idea being that you need to be able to have a number of disparate rectangular regions for updates. This class uses <a class="el" href="classcsRect.html" title="Rectangle class: simple class for manipulating 2D rectangles.">csRect</a> for nearly all rectangle operations. <p> To use you can Include and Exclude rectangles from this region. When finished, this class will have a list of optimal rectangles that occupy a region. If used properly, it will result in faster overall painting performance, since several areas will not require overwriting. <p>Definition at line <a class="el" href="csrectrg_8h-source.html#l00055">55</a> of file <a class="el" href="csrectrg_8h-source.html">csrectrg.h</a>.</p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="7d4b642982e0bb4384edf7893d6308db"></a><!-- doxytag: member="csRectRegion::csRectRegion" ref="7d4b642982e0bb4384edf7893d6308db" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csRectRegion::csRectRegion </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor. <p> </div> </div><p> <a class="anchor" name="ca150e546d590989afc2fd6ebd62ce0f"></a><!-- doxytag: member="csRectRegion::~csRectRegion" ref="ca150e546d590989afc2fd6ebd62ce0f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">csRectRegion::~csRectRegion </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="67b6eecf39c39bf3813f03987d3b16b4"></a><!-- doxytag: member="csRectRegion::ClipTo" ref="67b6eecf39c39bf3813f03987d3b16b4" args="(csRect &clip)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::ClipTo </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname"> <em>clip</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Clips everything in the region to the borders given. <p> </div> </div><p> <a class="anchor" name="9ca364cece07fd3b809695234969b5d2"></a><!-- doxytag: member="csRectRegion::Count" ref="9ca364cece07fd3b809695234969b5d2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t csRectRegion::Count </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Returns the number of rectangles in this region. <p> <p>Definition at line <a class="el" href="csrectrg_8h-source.html#l00097">97</a> of file <a class="el" href="csrectrg_8h-source.html">csrectrg.h</a>.</p> </div> </div><p> <a class="anchor" name="484e83b71babd1136e6d4dbda483cc62"></a><!-- doxytag: member="csRectRegion::Exclude" ref="484e83b71babd1136e6d4dbda483cc62" args="(const csRect &rect)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::Exclude </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname"> <em>rect</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Exclude a rect from this region; may cause splitting. <p> </div> </div><p> <a class="anchor" name="bc598924c0307d2051b1f83aaab479c5"></a><!-- doxytag: member="csRectRegion::fragmentContainedRect" ref="bc598924c0307d2051b1f83aaab479c5" args="(csRect &r1, csRect &r2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::fragmentContainedRect </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname"> <em>r1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname"> <em>r2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Work method fragments rects properly when they intersect. <p> </div> </div><p> <a class="anchor" name="843836616b3c505a30496413c7e5894d"></a><!-- doxytag: member="csRectRegion::fragmentRect" ref="843836616b3c505a30496413c7e5894d" args="(csRect &, csRect &, int mode)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::fragmentRect </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>mode</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Controls fragmentContainedRect, used to perform all-side clipping and edge intersection. <p> </div> </div><p> <a class="anchor" name="99ac7ac00f6778647f833eb6875fa10c"></a><!-- doxytag: member="csRectRegion::gatherFragments" ref="99ac7ac00f6778647f833eb6875fa10c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::gatherFragments </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Gathers all regions since the mark into the fragment buffer. <p> </div> </div><p> <a class="anchor" name="ed030c9849fa84c238d0c440d897296b"></a><!-- doxytag: member="csRectRegion::Include" ref="ed030c9849fa84c238d0c440d897296b" args="(const csRect &rect)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::Include </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsRect.html">csRect</a> & </td> <td class="paramname"> <em>rect</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Add a rect to this region; may cause unions, but will not adjance (see <a class="el" href="classcsRect.html" title="Rectangle class: simple class for manipulating 2D rectangles.">csRect</a>). <p> </div> </div><p> <a class="anchor" name="a1c05b7c68abc68d0fbb0ddbd7f842f0"></a><!-- doxytag: member="csRectRegion::MakeEmpty" ref="a1c05b7c68abc68d0fbb0ddbd7f842f0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::MakeEmpty </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Resets the region count to zero. <p> </div> </div><p> <a class="anchor" name="fffbf8f625a97150b2add16b0ae46e4f"></a><!-- doxytag: member="csRectRegion::markForGather" ref="fffbf8f625a97150b2add16b0ae46e4f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void csRectRegion::markForGather </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Marks the current region insertion point for gather. <p> </div> </div><p> <a class="anchor" name="5c4245798542ec76199f77d36cd0b213"></a><!-- doxytag: member="csRectRegion::RectAt" ref="5c4245798542ec76199f77d36cd0b213" args="(size_t i) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classcsRect.html">csRect</a>& csRectRegion::RectAt </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>i</em> </td> <td> ) </td> <td width="100%"> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Returns the rect at a specific index. <p> <p>Definition at line <a class="el" href="csrectrg_8h-source.html#l00099">99</a> of file <a class="el" href="csrectrg_8h-source.html">csrectrg.h</a>.</p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="c7681fa9df1781f42590cbb6425173d2"></a><!-- doxytag: member="csRectRegion::fragment" ref="c7681fa9df1781f42590cbb6425173d2" args="[FRAGMENT_BUFFER_SIZE]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsRect.html">csRect</a> <a class="el" href="classcsRectRegion.html#c7681fa9df1781f42590cbb6425173d2">csRectRegion::fragment</a>[<a class="el" href="classcsRectRegion.html#221d1a945303f9f37a3fab982b7ceb7f">FRAGMENT_BUFFER_SIZE</a>]<code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The fragment buffer, used for performing fragment operations. <p> <p>Definition at line <a class="el" href="csrectrg_8h-source.html#l00063">63</a> of file <a class="el" href="csrectrg_8h-source.html">csrectrg.h</a>.</p> </div> </div><p> <a class="anchor" name="d1a03fe59b2642e91826356f155a303a"></a><!-- doxytag: member="csRectRegion::gather_mark" ref="d1a03fe59b2642e91826356f155a303a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classcsRectRegion.html#d1a03fe59b2642e91826356f155a303a">csRectRegion::gather_mark</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The gather marker. <p> <p>Definition at line <a class="el" href="csrectrg_8h-source.html#l00065">65</a> of file <a class="el" href="csrectrg_8h-source.html">csrectrg.h</a>.</p> </div> </div><p> <a class="anchor" name="c124ef08373f13d063e91515b1e14ff9"></a><!-- doxytag: member="csRectRegion::region" ref="c124ef08373f13d063e91515b1e14ff9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsArray.html">csArray</a><<a class="el" href="classcsRect.html">csRect</a>> <a class="el" href="classcsRectRegion.html#c124ef08373f13d063e91515b1e14ff9">csRectRegion::region</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> The pointer the list of regions. <p> <p>Definition at line <a class="el" href="csrectrg_8h-source.html#l00061">61</a> of file <a class="el" href="csrectrg_8h-source.html">csrectrg.h</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>csgeom/<a class="el" href="csrectrg_8h-source.html">csrectrg.h</a></ul> <hr size="1"><address><small>Generated for Crystal Space 1.2.1 by <a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 </small></address> </div></body> </html>