<!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< T > 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 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>csPartialOrder< T > Class Template Reference</h1><!-- doxytag: class="csPartialOrder" -->A generic finite partial order class. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="partialorder_8h-source.html">csutil/partialorder.h</a>></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#65d4a11892772a892de83773fef1b399">Add</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#59f8261061cd5bcd4a4b1db83c11406c">AddOrder</a> (const T &node1, const T &node2)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#a5a51a4c110addc4e962ee32e541009e">ClearMark</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#53b49d62606991fd51c58703c917fed5">ClearMark</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#a2d8b4105fbbad447276689fe057a775">Contains</a> (const T &pre, const T &post)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#7f0eb5707007485b7f04460d2de00cff">Contains</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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"> </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"> </td><td class="mdescRight">Copy constructor. <a href="#498c0364f7640329afb86ab2c7476e7e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#c049ed09a49c6bc15c02fed6c964541f">csPartialOrder</a> (const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a> &other)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#c049ed09a49c6bc15c02fed6c964541f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#74776d0e1abc139c8d1d37fa32562e9a">csPartialOrder</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#e8942b40daf0f0e751493e41616b3f87">Delete</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#6b7a8dfe6fa9e3a909c1a2a275abf58a">DeleteOrder</a> (const T &node1, const T &node2)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#b690c9faa3674e0e5a42d8858a282db5">GetByIndex</a> (size_t i)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#3948a1cf8b69d0de21d8f3f586c5a74b">GetEnabled</a> (T fail)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#975de72526be86e223f1cc651815f602">HasEnabled</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#3182ef0737a36dae86152ce3fc05f0c7">IsEnabled</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#c721d05bef4034c47ab13e61b5cc71b5">IsMarked</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#343c1d3e9ab33e351b3079566d732453">Mark</a> (const T &node)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#f0fe0b0bcd5835fa7cfee9def815f2ba">Size</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#d91a8f82306af55c5cf5e29134b500e3">Solve</a> (<a class="el" href="classcsList.html">csList</a>< const T > &result)</td></tr> <tr><td class="mdescLeft"> </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 &node)" --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsPartialOrder.html#23c4136f9aee34312a493702aacbb2cf">CycleTest</a> (const T &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 </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 </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 </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 </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>< size_t, const T > </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>< <a class="el" href="classcsPartialOrder_1_1Node.html">Node</a> > </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 </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<class T><br> class csPartialOrder< T ></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 <= T2.</li><li>An absense of any non-trivial cycles, e.g., T1 < T2 < 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 & 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<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::<a class="el" href="classcsPartialOrder.html">csPartialOrder</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &other)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::<a class="el" href="classcsPartialOrder.html">csPartialOrder</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T > & </td> <td class="paramname"> <em>other</em> </td> <td> ) </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<class T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::<a class="el" href="classcsPartialOrder.html">csPartialOrder</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T > * </td> <td class="paramname"> <em>other</em> </td> <td> ) </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Add </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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 &node1, const T &node2)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::AddOrder </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node2</em></td><td> </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<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::ClearMark </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::ClearMark </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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 &pre, const T &post)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Contains </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>pre</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"> <em>post</em></td><td> </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Contains </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Delete </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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 &node1, const T &node2)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::DeleteOrder </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node2</em></td><td> </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<class T> </div> <table class="memname"> <tr> <td class="memname">const T <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::GetByIndex </td> <td>(</td> <td class="paramtype">size_t </td> <td class="paramname"> <em>i</em> </td> <td> ) </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<class T> </div> <table class="memname"> <tr> <td class="memname">const T <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::GetEnabled </td> <td>(</td> <td class="paramtype">T </td> <td class="paramname"> <em>fail</em> </td> <td> ) </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<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::HasEnabled </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::IsEnabled </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::IsMarked </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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 &node)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Mark </td> <td>(</td> <td class="paramtype">const T & </td> <td class="paramname"> <em>node</em> </td> <td> ) </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<class T> </div> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Size </td> <td>(</td> <td class="paramname"> </td> <td> ) </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< const T > &result)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classcsPartialOrder.html">csPartialOrder</a>< T >::Solve </td> <td>(</td> <td class="paramtype"><a class="el" href="classcsList.html">csList</a>< const T > & </td> <td class="paramname"> <em>result</em> </td> <td> ) </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>