geos_390_docs/classgeos_1_1index_1_1inter...

446 lines
22 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GEOS: geos::index::intervalrtree::SortedPackedIntervalRTree Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GEOS
&#160;<span id="projectnumber">3.9.1dev</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacegeos.html">geos</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1index.html">index</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1index_1_1intervalrtree.html">intervalrtree</a></li><li class="navelem"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html">SortedPackedIntervalRTree</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::index::intervalrtree::SortedPackedIntervalRTree Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A static index on a set of 1-dimensional intervals, using an R-Tree packed based on the order of the interval midpoints.
<a href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::index::intervalrtree::SortedPackedIntervalRTree:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree__coll__graph.svg" width="220" height="163"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aec6d231e02e69cea1b4aa36023a2cedc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#aec6d231e02e69cea1b4aa36023a2cedc">SortedPackedIntervalRTree</a> ()</td></tr>
<tr class="separator:aec6d231e02e69cea1b4aa36023a2cedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a249ea4a906b893cba96312e76b066065"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a249ea4a906b893cba96312e76b066065">SortedPackedIntervalRTree</a> (std::size_t initialCapacity)</td></tr>
<tr class="separator:a249ea4a906b893cba96312e76b066065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5943a21cbef4ff21384cc241283665b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a5943a21cbef4ff21384cc241283665b6">insert</a> (double min, double max, void *item)</td></tr>
<tr class="separator:a5943a21cbef4ff21384cc241283665b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f42fd73f396a63d5573f1afb572c366"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a0f42fd73f396a63d5573f1afb572c366">query</a> (double min, double max, <a class="el" href="classgeos_1_1index_1_1ItemVisitor.html">index::ItemVisitor</a> *visitor)</td></tr>
<tr class="separator:a0f42fd73f396a63d5573f1afb572c366"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:aab18bdc2f04460d80ac60325a59cb35e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#aab18bdc2f04460d80ac60325a59cb35e">init</a> ()</td></tr>
<tr class="separator:aab18bdc2f04460d80ac60325a59cb35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af753fc633f80efab255f9c3ea5ef673b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#af753fc633f80efab255f9c3ea5ef673b">buildLevel</a> (<a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html#aeee6c212e7b16d146aa256761e0664e2">IntervalRTreeNode::ConstVect</a> &amp;src, <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html#aeee6c212e7b16d146aa256761e0664e2">IntervalRTreeNode::ConstVect</a> &amp;dest)</td></tr>
<tr class="separator:af753fc633f80efab255f9c3ea5ef673b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87fbe3761f10b6a8fd1f90e4d85d3ddf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html">IntervalRTreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a87fbe3761f10b6a8fd1f90e4d85d3ddf">buildTree</a> ()</td></tr>
<tr class="separator:a87fbe3761f10b6a8fd1f90e4d85d3ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a67673708c6541f21c9d4d17270671b27"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeLeafNode.html">IntervalRTreeLeafNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a67673708c6541f21c9d4d17270671b27">leaves</a></td></tr>
<tr class="separator:a67673708c6541f21c9d4d17270671b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ed84cd5ea9de828388b4eedc6bc9279"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeBranchNode.html">IntervalRTreeBranchNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a2ed84cd5ea9de828388b4eedc6bc9279">branches</a></td></tr>
<tr class="separator:a2ed84cd5ea9de828388b4eedc6bc9279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ca0ce8f62eaf5b2c8c0a56f3a13f0c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html">IntervalRTreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a89ca0ce8f62eaf5b2c8c0a56f3a13f0c">root</a> = nullptr</td></tr>
<tr class="separator:a89ca0ce8f62eaf5b2c8c0a56f3a13f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22426a119f7a3a5a48cb981dbdbc3611"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1SortedPackedIntervalRTree.html#a22426a119f7a3a5a48cb981dbdbc3611">level</a> = 0</td></tr>
<tr class="separator:a22426a119f7a3a5a48cb981dbdbc3611"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A static index on a set of 1-dimensional intervals, using an R-Tree packed based on the order of the interval midpoints. </p>
<p>It supports range searching, where the range is an interval of the real line (which may be a single point). A common use is to index 1-dimensional intervals which are the projection of 2-D objects onto an axis of the coordinate system.</p>
<p>This index structure is <em>static</em></p><ul>
<li>items cannot be added or removed once the first query has been made. The advantage of this characteristic is that the index performance can be optimized based on a fixed set of items.</li>
</ul>
<dl class="section author"><dt>Author</dt><dd>Martin Davis </dd></dl>
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00052">52</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aec6d231e02e69cea1b4aa36023a2cedc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::index::intervalrtree::SortedPackedIntervalRTree::SortedPackedIntervalRTree </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00072">72</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<a class="anchor" id="a249ea4a906b893cba96312e76b066065"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::index::intervalrtree::SortedPackedIntervalRTree::SortedPackedIntervalRTree </td>
<td>(</td>
<td class="paramtype">std::size_t&#160;</td>
<td class="paramname"><em>initialCapacity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00074">74</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="af753fc633f80efab255f9c3ea5ef673b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::index::intervalrtree::SortedPackedIntervalRTree::buildLevel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html#aeee6c212e7b16d146aa256761e0664e2">IntervalRTreeNode::ConstVect</a> &amp;&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html#aeee6c212e7b16d146aa256761e0664e2">IntervalRTreeNode::ConstVect</a> &amp;&#160;</td>
<td class="paramname"><em>dest</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a87fbe3761f10b6a8fd1f90e4d85d3ddf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html">IntervalRTreeNode</a>* geos::index::intervalrtree::SortedPackedIntervalRTree::buildTree </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aab18bdc2f04460d80ac60325a59cb35e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::index::intervalrtree::SortedPackedIntervalRTree::init </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5943a21cbef4ff21384cc241283665b6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::index::intervalrtree::SortedPackedIntervalRTree::insert </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>max</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>item</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds an item to the index which is associated with the given interval</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">min</td><td>the lower bound of the item interval </td></tr>
<tr><td class="paramname">max</td><td>the upper bound of the item interval </td></tr>
<tr><td class="paramname">item</td><td>the item to insert, ownership left to caller</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">IllegalStateException</td><td>if the index has already been queried </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00088">88</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0f42fd73f396a63d5573f1afb572c366"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::index::intervalrtree::SortedPackedIntervalRTree::query </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>max</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1index_1_1ItemVisitor.html">index::ItemVisitor</a> *&#160;</td>
<td class="paramname"><em>visitor</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Search for intervals in the index which intersect the given closed interval and apply the visitor to them.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">min</td><td>the lower bound of the query interval </td></tr>
<tr><td class="paramname">max</td><td>the upper bound of the query interval </td></tr>
<tr><td class="paramname">visitor</td><td>the visitor to pass any matched items to </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a2ed84cd5ea9de828388b4eedc6bc9279"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeBranchNode.html">IntervalRTreeBranchNode</a>&gt; geos::index::intervalrtree::SortedPackedIntervalRTree::branches</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00055">55</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<a class="anchor" id="a67673708c6541f21c9d4d17270671b27"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeLeafNode.html">IntervalRTreeLeafNode</a>&gt; geos::index::intervalrtree::SortedPackedIntervalRTree::leaves</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00054">54</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<a class="anchor" id="a22426a119f7a3a5a48cb981dbdbc3611"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::index::intervalrtree::SortedPackedIntervalRTree::level = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00064">64</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<a class="anchor" id="a89ca0ce8f62eaf5b2c8c0a56f3a13f0c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1index_1_1intervalrtree_1_1IntervalRTreeNode.html">IntervalRTreeNode</a>* geos::index::intervalrtree::SortedPackedIntervalRTree::root = nullptr</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If root is null that indicates that the tree has not yet been built, OR nothing has been added to the tree. In both cases, the tree is still open for insertions. </p>
<p>Definition at line <a class="el" href="SortedPackedIntervalRTree_8h_source.html#l00063">63</a> of file <a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="SortedPackedIntervalRTree_8h_source.html">SortedPackedIntervalRTree.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>