Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 150

crystalspace-doc-1.2.1-5mdv2010.0.i586.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>Crystal Space 1.2.1: CS::SubRectanglesCompact 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&nbsp;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&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<div class="nav">
<a class="el" href="namespaceCS.html">CS</a>::<a class="el" href="classCS_1_1SubRectanglesCompact.html">SubRectanglesCompact</a></div>
<h1>CS::SubRectanglesCompact Class Reference</h1><!-- doxytag: class="CS::SubRectanglesCompact" --><!-- doxytag: inherits="CS::SubRectangles" -->A variation of <a class="el" href="classCS_1_1SubRectangles.html" title="A class managing allocations of sub-rectangles.">SubRectangles</a> that tries to place rectangles in a rectangular fashion.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="subrec_8h-source.html">csgeom/subrec.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for CS::SubRectanglesCompact:</div>
<div class="dynsection">
<p><center><img src="classCS_1_1SubRectanglesCompact__inherit__graph.png" border="0" usemap="#CS_1_1SubRectanglesCompact__inherit__map" alt="Inheritance graph"></center>
<map name="CS_1_1SubRectanglesCompact__inherit__map">
<area shape="rect" href="classCS_1_1SubRectangles.html" title="A class managing allocations of sub&#45;rectangles." alt="" coords="44,84,188,111"><area shape="rect" href="classCS_1_1Memory_1_1CustomAllocated.html" title="Class that overrides operator new/operator delete/etc." alt="" coords="5,7,227,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classCS_1_1SubRectanglesCompact-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">SubRect *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1SubRectanglesCompact.html#380d04ff3cbba0625c9d39561ce2eba6">Alloc</a> (int w, int h, <a class="el" href="classcsRect.html">csRect</a> &amp;rect)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a new rectangle.  <a href="#380d04ff3cbba0625c9d39561ce2eba6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SubRect *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1SubRectanglesCompact.html#cd7ea6cd7e679f56751a07054d2954fd">AllocNoGrow</a> (int w, int h, <a class="el" href="classcsRect.html">csRect</a> &amp;rect)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a rectangle but don't attempt growing to fit.  <a href="#cd7ea6cd7e679f56751a07054d2954fd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1SubRectanglesCompact.html#17e8b55ded228a30a7e0550838f16599">Clear</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free all rectangles in this region.  <a href="#17e8b55ded228a30a7e0550838f16599"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1SubRectanglesCompact.html#d6b57d94d693b855fd8fcf1eba0a5908">GetGrowPO2</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return whether growing to PO2 dimensions is enabled.  <a href="#d6b57d94d693b855fd8fcf1eba0a5908"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classcsRect.html">csRect</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1SubRectanglesCompact.html#6936a1c9cd3660dd8fa5a9b3494a3ee2">GetMaximumRectangle</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the upper limit of the rectangle.  <a href="#6936a1c9cd3660dd8fa5a9b3494a3ee2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCS_1_1SubRectanglesCompact.html#1c53fb61150b6d589ffe28ae1de8d6b1">SetGrowPO2</a> (bool growPO2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable growing to PO2 dimensions.  <a href="#1c53fb61150b6d589ffe28ae1de8d6b1"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A variation of <a class="el" href="classCS_1_1SubRectangles.html" title="A class managing allocations of sub-rectangles.">SubRectangles</a> that tries to place rectangles in a rectangular fashion. 
<p>
This means all allocated rectangles are attempted to be placed compactly in a rectangle in the upper left corner, where as the normal <a class="el" href="classCS_1_1SubRectangles.html" title="A class managing allocations of sub-rectangles.">SubRectangles</a> quickly "expands" in the X and Y directions.<p>
This variation is useful if the rectangle you fill is an upper limit but the covered area should be as small as possible. It has slightly more overhead than the normal <a class="el" href="classCS_1_1SubRectangles.html" title="A class managing allocations of sub-rectangles.">SubRectangles</a>, though.<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>works best if bigger rectangles are inserted first. The malus from not doing so is bigger than the <a class="el" href="classCS_1_1SubRectangles.html" title="A class managing allocations of sub-rectangles.">CS::SubRectangles</a> one. </dd></dl>

<p>Definition at line <a class="el" href="subrec_8h-source.html#l00251">251</a> of file <a class="el" href="subrec_8h-source.html">subrec.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="380d04ff3cbba0625c9d39561ce2eba6"></a><!-- doxytag: member="CS::SubRectanglesCompact::Alloc" ref="380d04ff3cbba0625c9d39561ce2eba6" args="(int w, int h, csRect &amp;rect)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SubRect* CS::SubRectanglesCompact::Alloc           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rect</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new rectangle. 
<p>
Returns 0 if there is no room 
<p>Reimplemented from <a class="el" href="classCS_1_1SubRectangles.html#81482d1c1f66941113cdfad4543470fb">CS::SubRectangles</a>.</p>

</div>
</div><p>
<a class="anchor" name="cd7ea6cd7e679f56751a07054d2954fd"></a><!-- doxytag: member="CS::SubRectanglesCompact::AllocNoGrow" ref="cd7ea6cd7e679f56751a07054d2954fd" args="(int w, int h, csRect &amp;rect)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SubRect* CS::SubRectanglesCompact::AllocNoGrow           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRect.html">csRect</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rect</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a rectangle but don't attempt growing to fit. 
<p>

<p>Definition at line <a class="el" href="subrec_8h-source.html#l00278">278</a> of file <a class="el" href="subrec_8h-source.html">subrec.h</a>.</p>

<p>References <a class="el" href="classCS_1_1SubRectangles.html#81482d1c1f66941113cdfad4543470fb">CS::SubRectangles::Alloc()</a>.</p>

</div>
</div><p>
<a class="anchor" name="17e8b55ded228a30a7e0550838f16599"></a><!-- doxytag: member="CS::SubRectanglesCompact::Clear" ref="17e8b55ded228a30a7e0550838f16599" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CS::SubRectanglesCompact::Clear           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free all rectangles in this region. 
<p>

<p>Reimplemented from <a class="el" href="classCS_1_1SubRectangles.html#1452514180853b9bf963384e3199e196">CS::SubRectangles</a>.</p>

</div>
</div><p>
<a class="anchor" name="d6b57d94d693b855fd8fcf1eba0a5908"></a><!-- doxytag: member="CS::SubRectanglesCompact::GetGrowPO2" ref="d6b57d94d693b855fd8fcf1eba0a5908" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CS::SubRectanglesCompact::GetGrowPO2           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return whether growing to PO2 dimensions is enabled. 
<p>

<p>Definition at line <a class="el" href="subrec_8h-source.html#l00275">275</a> of file <a class="el" href="subrec_8h-source.html">subrec.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="6936a1c9cd3660dd8fa5a9b3494a3ee2"></a><!-- doxytag: member="CS::SubRectanglesCompact::GetMaximumRectangle" ref="6936a1c9cd3660dd8fa5a9b3494a3ee2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classcsRect.html">csRect</a>&amp; CS::SubRectanglesCompact::GetMaximumRectangle           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the upper limit of the rectangle. 
<p>

<p>Definition at line <a class="el" href="subrec_8h-source.html#l00266">266</a> of file <a class="el" href="subrec_8h-source.html">subrec.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="1c53fb61150b6d589ffe28ae1de8d6b1"></a><!-- doxytag: member="CS::SubRectanglesCompact::SetGrowPO2" ref="1c53fb61150b6d589ffe28ae1de8d6b1" args="(bool growPO2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CS::SubRectanglesCompact::SetGrowPO2           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>growPO2</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enable growing to PO2 dimensions. 
<p>
Means that if an enlargement of the rectangle is necessary it will be to a PO2 dimension. Useful when e.g. the rectangle is to be used as a texture. 
<p>Definition at line <a class="el" href="subrec_8h-source.html#l00273">273</a> of file <a class="el" href="subrec_8h-source.html">subrec.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="subrec_8h-source.html">subrec.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>