Sophie

Sophie

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

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: csPartialOrder&lt; T &gt; Class Template 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>
<h1>csPartialOrder&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="csPartialOrder" -->A generic finite partial order class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="partialorder_8h-source.html">csutil/partialorder.h</a>&gt;</code>
<p>

<p>
<a href="classcsPartialOrder-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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#65d4a11892772a892de83773fef1b399">Add</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a node. If the node is already present, has no effect.  <a href="#65d4a11892772a892de83773fef1b399"></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="classcsPartialOrder.html#59f8261061cd5bcd4a4b1db83c11406c">AddOrder</a> (const T &amp;node1, const T &amp;node2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add an ordering constraint (node1 precedes node2).  <a href="#59f8261061cd5bcd4a4b1db83c11406c"></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="classcsPartialOrder.html#a5a51a4c110addc4e962ee32e541009e">ClearMark</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear all "marked" flags.  <a href="#a5a51a4c110addc4e962ee32e541009e"></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="classcsPartialOrder.html#53b49d62606991fd51c58703c917fed5">ClearMark</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear the "marked" flag for a given node.  <a href="#53b49d62606991fd51c58703c917fed5"></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="classcsPartialOrder.html#a2d8b4105fbbad447276689fe057a775">Contains</a> (const T &amp;pre, const T &amp;post)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query an edge's presence. Does not check for transitive connectivity.  <a href="#a2d8b4105fbbad447276689fe057a775"></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="classcsPartialOrder.html#7f0eb5707007485b7f04460d2de00cff">Contains</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query a node's presence.  <a href="#7f0eb5707007485b7f04460d2de00cff"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#498c0364f7640329afb86ab2c7476e7e">csPartialOrder</a> (const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a> *other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#498c0364f7640329afb86ab2c7476e7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#c049ed09a49c6bc15c02fed6c964541f">csPartialOrder</a> (const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a> &amp;other)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor.  <a href="#c049ed09a49c6bc15c02fed6c964541f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#74776d0e1abc139c8d1d37fa32562e9a">csPartialOrder</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a partial order graph.  <a href="#74776d0e1abc139c8d1d37fa32562e9a"></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="classcsPartialOrder.html#e8942b40daf0f0e751493e41616b3f87">Delete</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a node and all edges connected to it.  <a href="#e8942b40daf0f0e751493e41616b3f87"></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="classcsPartialOrder.html#6b7a8dfe6fa9e3a909c1a2a275abf58a">DeleteOrder</a> (const T &amp;node1, const T &amp;node2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove an ordering constraint (node1 precedes node2).  <a href="#6b7a8dfe6fa9e3a909c1a2a275abf58a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#b690c9faa3674e0e5a42d8858a282db5">GetByIndex</a> (size_t i)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a node with a given index (0 through <a class="el" href="classcsPartialOrder.html#f0fe0b0bcd5835fa7cfee9def815f2ba" title="Number of nodes in the graph.">Size()</a>-1).  <a href="#b690c9faa3674e0e5a42d8858a282db5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const T&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#3948a1cf8b69d0de21d8f3f586c5a74b">GetEnabled</a> (T fail)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an enabled node.  <a href="#3948a1cf8b69d0de21d8f3f586c5a74b"></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="classcsPartialOrder.html#975de72526be86e223f1cc651815f602">HasEnabled</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if any node is enabled.  <a href="#975de72526be86e223f1cc651815f602"></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="classcsPartialOrder.html#3182ef0737a36dae86152ce3fc05f0c7">IsEnabled</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if all of the node's (zero or more) predecessors have been marked and the node itself has not.  <a href="#3182ef0737a36dae86152ce3fc05f0c7"></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="classcsPartialOrder.html#c721d05bef4034c47ab13e61b5cc71b5">IsMarked</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query whether a given node is "marked".  <a href="#c721d05bef4034c47ab13e61b5cc71b5"></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="classcsPartialOrder.html#343c1d3e9ab33e351b3079566d732453">Mark</a> (const T &amp;node)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the "marked" flag for a given node.  <a href="#343c1d3e9ab33e351b3079566d732453"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#f0fe0b0bcd5835fa7cfee9def815f2ba">Size</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of nodes in the graph.  <a href="#f0fe0b0bcd5835fa7cfee9def815f2ba"></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="classcsPartialOrder.html#d91a8f82306af55c5cf5e29134b500e3">Solve</a> (<a class="el" href="classcsList.html">csList</a>&lt; const T &gt; &amp;result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Produce a valid "solution" to the partial order graph, i.e., a sequence of nodes that violates no constraints.  <a href="#d91a8f82306af55c5cf5e29134b500e3"></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"><a class="anchor" name="23c4136f9aee34312a493702aacbb2cf"></a><!-- doxytag: member="csPartialOrder::CycleTest" ref="23c4136f9aee34312a493702aacbb2cf" args="(const T &amp;node)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#23c4136f9aee34312a493702aacbb2cf">CycleTest</a> (const T &amp;node)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8c82fc79f67f35f6ee0669ef7cd3bc07"></a><!-- doxytag: member="csPartialOrder::InternalCycleTest" ref="8c82fc79f67f35f6ee0669ef7cd3bc07" args="(size_t n)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#8c82fc79f67f35f6ee0669ef7cd3bc07">InternalCycleTest</a> (size_t n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9246f05824e723c48c4bc82bd83abf21"></a><!-- doxytag: member="csPartialOrder::InternalCycleTest" ref="9246f05824e723c48c4bc82bd83abf21" args="(size_t n1, size_t n2)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#9246f05824e723c48c4bc82bd83abf21">InternalCycleTest</a> (size_t n1, size_t n2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3bcaa06c84c029e6bbff6ce51cb5adc2"></a><!-- doxytag: member="csPartialOrder::InternalIsEnabled" ref="3bcaa06c84c029e6bbff6ce51cb5adc2" args="(size_t i)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#3bcaa06c84c029e6bbff6ce51cb5adc2">InternalIsEnabled</a> (size_t i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a2af761ae85027f8ef28fe70818ae12"></a><!-- doxytag: member="csPartialOrder::SanityCheck" ref="9a2af761ae85027f8ef28fe70818ae12" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#9a2af761ae85027f8ef28fe70818ae12">SanityCheck</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="40387ebdcee22aa03f91b9e48253025a"></a><!-- doxytag: member="csPartialOrder::NodeMap" ref="40387ebdcee22aa03f91b9e48253025a" args="" -->
<a class="el" href="classcsHash.html">csHash</a>&lt; size_t, const T &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#40387ebdcee22aa03f91b9e48253025a">NodeMap</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8adaefa03d5ee93ca042496c5477c976"></a><!-- doxytag: member="csPartialOrder::Nodes" ref="8adaefa03d5ee93ca042496c5477c976" args="" -->
<a class="el" href="classcsArray.html">csArray</a>&lt; <a class="el" href="classcsPartialOrder_1_1Node.html">Node</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#8adaefa03d5ee93ca042496c5477c976">Nodes</a></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder_1_1Node.html">Node</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class T&gt;<br>
 class csPartialOrder&lt; T &gt;</h3>

A generic finite partial order class. 
<p>
A finite partial order is a graph with the following properties:<ul>
<li>A finite number of nodes (of type T).</li><li>A finite number of reflexive tuple relations T1 &lt;= T2.</li><li>An absense of any non-trivial cycles, e.g., T1 &lt; T2 &lt; T1 where T1!=T2.</li></ul>
<p>
An insert of an edge which violates the third constraint will fail (return false and have no effect). <p>
There must be a <a class="el" href="classcsHashComputer.html" title="Template for hash value computing.">csHashComputer</a> for type T. 
<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00052">52</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="74776d0e1abc139c8d1d37fa32562e9a"></a><!-- doxytag: member="csPartialOrder::csPartialOrder" ref="74776d0e1abc139c8d1d37fa32562e9a" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::<a class="el" href="classcsPartialOrder.html">csPartialOrder</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a partial order graph. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00078">78</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c049ed09a49c6bc15c02fed6c964541f"></a><!-- doxytag: member="csPartialOrder::csPartialOrder" ref="c049ed09a49c6bc15c02fed6c964541f" args="(const csPartialOrder &amp;other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::<a class="el" href="classcsPartialOrder.html">csPartialOrder</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00085">85</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="498c0364f7640329afb86ab2c7476e7e"></a><!-- doxytag: member="csPartialOrder::csPartialOrder" ref="498c0364f7640329afb86ab2c7476e7e" args="(const csPartialOrder *other)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::<a class="el" href="classcsPartialOrder.html">csPartialOrder</a>           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt; *&nbsp;</td>
          <td class="paramname"> <em>other</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy constructor. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00124">124</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="65d4a11892772a892de83773fef1b399"></a><!-- doxytag: member="csPartialOrder::Add" ref="65d4a11892772a892de83773fef1b399" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Add           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a node. If the node is already present, has no effect. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00131">131</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="59f8261061cd5bcd4a4b1db83c11406c"></a><!-- doxytag: member="csPartialOrder::AddOrder" ref="59f8261061cd5bcd4a4b1db83c11406c" args="(const T &amp;node1, const T &amp;node2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::AddOrder           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node2</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>
Add an ordering constraint (node1 precedes node2). 
<p>
Edge addition is not idempotent, i.e., if you add an edge three times, it must be removed three times before it will disappear from the graph. 
<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00224">224</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a5a51a4c110addc4e962ee32e541009e"></a><!-- doxytag: member="csPartialOrder::ClearMark" ref="a5a51a4c110addc4e962ee32e541009e" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::ClearMark           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clear all "marked" flags. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00357">357</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="53b49d62606991fd51c58703c917fed5"></a><!-- doxytag: member="csPartialOrder::ClearMark" ref="53b49d62606991fd51c58703c917fed5" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::ClearMark           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Clear the "marked" flag for a given node. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00346">346</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="a2d8b4105fbbad447276689fe057a775"></a><!-- doxytag: member="csPartialOrder::Contains" ref="a2d8b4105fbbad447276689fe057a775" args="(const T &amp;pre, const T &amp;post)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Contains           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>pre</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>post</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>
Query an edge's presence. Does not check for transitive connectivity. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00148">148</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7f0eb5707007485b7f04460d2de00cff"></a><!-- doxytag: member="csPartialOrder::Contains" ref="7f0eb5707007485b7f04460d2de00cff" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Contains           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query a node's presence. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00142">142</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="e8942b40daf0f0e751493e41616b3f87"></a><!-- doxytag: member="csPartialOrder::Delete" ref="e8942b40daf0f0e751493e41616b3f87" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Delete           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Delete a node and all edges connected to it. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00165">165</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="6b7a8dfe6fa9e3a909c1a2a275abf58a"></a><!-- doxytag: member="csPartialOrder::DeleteOrder" ref="6b7a8dfe6fa9e3a909c1a2a275abf58a" args="(const T &amp;node1, const T &amp;node2)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::DeleteOrder           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node2</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>
Remove an ordering constraint (node1 precedes node2). 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00251">251</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b690c9faa3674e0e5a42d8858a282db5"></a><!-- doxytag: member="csPartialOrder::GetByIndex" ref="b690c9faa3674e0e5a42d8858a282db5" args="(size_t i)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::GetByIndex           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>i</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a node with a given index (0 through <a class="el" href="classcsPartialOrder.html#f0fe0b0bcd5835fa7cfee9def815f2ba" title="Number of nodes in the graph.">Size()</a>-1). 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00270">270</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3948a1cf8b69d0de21d8f3f586c5a74b"></a><!-- doxytag: member="csPartialOrder::GetEnabled" ref="3948a1cf8b69d0de21d8f3f586c5a74b" args="(T fail)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::GetEnabled           </td>
          <td>(</td>
          <td class="paramtype">T&nbsp;</td>
          <td class="paramname"> <em>fail</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return an enabled node. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00392">392</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="975de72526be86e223f1cc651815f602"></a><!-- doxytag: member="csPartialOrder::HasEnabled" ref="975de72526be86e223f1cc651815f602" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::HasEnabled           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return true if any node is enabled. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00379">379</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3182ef0737a36dae86152ce3fc05f0c7"></a><!-- doxytag: member="csPartialOrder::IsEnabled" ref="3182ef0737a36dae86152ce3fc05f0c7" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::IsEnabled           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return true if all of the node's (zero or more) predecessors have been marked and the node itself has not. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00369">369</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c721d05bef4034c47ab13e61b5cc71b5"></a><!-- doxytag: member="csPartialOrder::IsMarked" ref="c721d05bef4034c47ab13e61b5cc71b5" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::IsMarked           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query whether a given node is "marked". 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00335">335</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="343c1d3e9ab33e351b3079566d732453"></a><!-- doxytag: member="csPartialOrder::Mark" ref="343c1d3e9ab33e351b3079566d732453" args="(const T &amp;node)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Mark           </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&nbsp;</td>
          <td class="paramname"> <em>node</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the "marked" flag for a given node. 
<p>
This is useful for implementing your own graph iterators. 
<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00324">324</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f0fe0b0bcd5835fa7cfee9def815f2ba"></a><!-- doxytag: member="csPartialOrder::Size" ref="f0fe0b0bcd5835fa7cfee9def815f2ba" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Size           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Number of nodes in the graph. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00264">264</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="d91a8f82306af55c5cf5e29134b500e3"></a><!-- doxytag: member="csPartialOrder::Solve" ref="d91a8f82306af55c5cf5e29134b500e3" args="(csList&lt; const T &gt; &amp;result)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>&lt; T &gt;::Solve           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsList.html">csList</a>&lt; const T &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>result</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Produce a valid "solution" to the partial order graph, i.e., a sequence of nodes that violates no constraints. 
<p>

<p>Definition at line <a class="el" href="partialorder_8h-source.html#l00279">279</a> of file <a class="el" href="partialorder_8h-source.html">partialorder.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csutil/<a class="el" href="partialorder_8h-source.html">partialorder.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>