<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libnfporb API Reference: libnfporb Namespace 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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">libnfporb API Reference
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">libnfporb Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlibnfporb_1_1point__t.html">point_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlibnfporb_1_1TouchingPoint.html">TouchingPoint</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a77c306e62f1a3008a965411a7eb12b0c"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a></td></tr>
<tr class="separator:a77c306e62f1a3008a965411a7eb12b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56b264a84ae3c5f7e5c984e17ee89fbc"><td class="memItemLeft" align="right" valign="top">typedef bg::model::segment&lt; <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a></td></tr>
<tr class="separator:a56b264a84ae3c5f7e5c984e17ee89fbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6669e4dfc06e20a3983fe52e360d38da"><td class="memItemLeft" align="right" valign="top">typedef bg::model::polygon&lt; <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>, false, true &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a></td></tr>
<tr class="separator:a6669e4dfc06e20a3983fe52e360d38da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1b65f43852227f30363ab70884415ab"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; polygon_t::ring_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a></td></tr>
<tr class="separator:ad1b65f43852227f30363ab70884415ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a604670e70eaa3b16302079bcd9a767b6"><td class="memItemLeft" align="right" valign="top">typedef bg::model::linestring&lt; <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a604670e70eaa3b16302079bcd9a767b6">linestring_t</a></td></tr>
<tr class="separator:a604670e70eaa3b16302079bcd9a767b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83ffffdc4e4235604aa207e82bbb4eab"><td class="memItemLeft" align="right" valign="top">typedef polygon_t::ring_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a></td></tr>
<tr class="separator:a83ffffdc4e4235604aa207e82bbb4eab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a131f5699cf1d0abf96967036fe94b7fd"><td class="memItemLeft" align="right" valign="top">typedef bg::model::d2::point_xy&lt; long double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a131f5699cf1d0abf96967036fe94b7fd">pointf_t</a></td></tr>
<tr class="separator:a131f5699cf1d0abf96967036fe94b7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb1a2ce869e041eb5cda62cdab3c9e7"><td class="memItemLeft" align="right" valign="top">typedef bg::model::segment&lt; <a class="el" href="namespacelibnfporb.html#a131f5699cf1d0abf96967036fe94b7fd">pointf_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a8cb1a2ce869e041eb5cda62cdab3c9e7">segmentf_t</a></td></tr>
<tr class="separator:a8cb1a2ce869e041eb5cda62cdab3c9e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0631fceada979bd18a3c0216c4cd3685"><td class="memItemLeft" align="right" valign="top">typedef bg::model::polygon&lt; <a class="el" href="namespacelibnfporb.html#a131f5699cf1d0abf96967036fe94b7fd">pointf_t</a>, false, true &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a0631fceada979bd18a3c0216c4cd3685">polygonf_t</a></td></tr>
<tr class="separator:a0631fceada979bd18a3c0216c4cd3685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96e2404c9e732b3f5a6d3ae4d6576d90"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a></td></tr>
<tr class="separator:a96e2404c9e732b3f5a6d3ae4d6576d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ab8d12caab4bf53479cc06d350cd5706f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706f">Alignment</a> { <a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706faad2f75e6345098a73fba38cae5ad5703">LEFT</a>
, <a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706fa3fb8da88633a285b8fca71c579077015">RIGHT</a>
, <a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706fa98c4a453f9446b2ef4ce1d69872826c4">ON</a>
 }</td></tr>
<tr class="separator:ab8d12caab4bf53479cc06d350cd5706f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac919112e762b094cbcfda85b004cc608"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608">SearchStartResult</a> { <a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608a48c794db749d9af78d4677534cc80165">FIT</a>
, <a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608a842d31eb7e3e83ccf42fe970a1f26f90">FOUND</a>
, <a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608a7595c38a51dba2eb067cb7a63807a1c6">NOT_FOUND</a>
 }</td></tr>
<tr class="memdesc:ac919112e762b094cbcfda85b004cc608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicating the result of search_start_translation.  <a href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608">More...</a><br /></td></tr>
<tr class="separator:ac919112e762b094cbcfda85b004cc608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f6a6b2407431f961afeba70cd953f59"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59">SlideResult</a> { <a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59a32b866ba62995b45cd4182353885766b">LOOP</a>
, <a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59a422ac082e2983ac4df9ea68dadf87f76">NO_LOOP</a>
, <a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59aaa88d6c648e957aab8d255d53093ed93">NO_TRANSLATION</a>
 }</td></tr>
<tr class="separator:a9f6a6b2407431f961afeba70cd953f59"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2e318553169d53a7150a00a79bd2762d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a2e318553169d53a7150a00a79bd2762d">equals</a> (const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;lhs, const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;rhs)</td></tr>
<tr class="separator:a2e318553169d53a7150a00a79bd2762d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e145fbf781386b7c6b3c8d41537c887"><td class="memItemLeft" align="right" valign="top">long double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a5e145fbf781386b7c6b3c8d41537c887">toLongDouble</a> (const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;c)</td></tr>
<tr class="separator:a5e145fbf781386b7c6b3c8d41537c887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afec3b387627b7f3896024a3ed0b95c03"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#afec3b387627b7f3896024a3ed0b95c03">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;c)</td></tr>
<tr class="separator:afec3b387627b7f3896024a3ed0b95c03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2529149025376e0c3fcd03a46540ee8"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ac2529149025376e0c3fcd03a46540ee8">operator&gt;&gt;</a> (std::istream &amp;is, <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;c)</td></tr>
<tr class="separator:ac2529149025376e0c3fcd03a46540ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bd8573fc0999f9f167ec1b183fe3484"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a9bd8573fc0999f9f167ec1b183fe3484">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;p)</td></tr>
<tr class="separator:a9bd8573fc0999f9f167ec1b183fe3484"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bf253739214a0da53cfc62291c36a5f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a4bf253739214a0da53cfc62291c36a5f">smaller</a> (const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;lhs, const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;rhs)</td></tr>
<tr class="separator:a4bf253739214a0da53cfc62291c36a5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3021c2838a351048bd223d1e9a0493c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a3021c2838a351048bd223d1e9a0493c3">larger</a> (const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;lhs, const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;rhs)</td></tr>
<tr class="separator:a3021c2838a351048bd223d1e9a0493c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ab225f0eb4a7db2c6c7f2b9513a8911"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a3ab225f0eb4a7db2c6c7f2b9513a8911">equals</a> (const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;lhs, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;rhs)</td></tr>
<tr class="separator:a3ab225f0eb4a7db2c6c7f2b9513a8911"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab235c005475643314bb576c56bbd665d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ab235c005475643314bb576c56bbd665d">equals</a> (const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;lhs, const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;rhs)</td></tr>
<tr class="separator:ab235c005475643314bb576c56bbd665d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f6f10b661f0fdac42dec4ee536d192"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a49f6f10b661f0fdac42dec4ee536d192">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;seg)</td></tr>
<tr class="separator:a49f6f10b661f0fdac42dec4ee536d192"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d5f81f2566134c078966d7892ffdb14"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a7d5f81f2566134c078966d7892ffdb14">operator&lt;</a> (const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;lhs, const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;rhs)</td></tr>
<tr class="separator:a7d5f81f2566134c078966d7892ffdb14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af636c7ca76818797e19b1fbeb4d3f6c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#af636c7ca76818797e19b1fbeb4d3f6c1">normalize</a> (const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;vec)</td></tr>
<tr class="separator:af636c7ca76818797e19b1fbeb4d3f6c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a017d7db675acdb0a12e7af32967c62e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a017d7db675acdb0a12e7af32967c62e9">flip</a> (const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;vec)</td></tr>
<tr class="separator:a017d7db675acdb0a12e7af32967c62e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a821049b74c902ecafa0da3b19464717d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706f">Alignment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a821049b74c902ecafa0da3b19464717d">get_alignment</a> (const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;seg, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;pt)</td></tr>
<tr class="separator:a821049b74c902ecafa0da3b19464717d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab052a9de439729060daaf49977c4ad4b"><td class="memItemLeft" align="right" valign="top">long double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ab052a9de439729060daaf49977c4ad4b">get_inner_angle</a> (const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;joint, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;end1, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;end2)</td></tr>
<tr class="separator:ab052a9de439729060daaf49977c4ad4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1d6cc7fbbc9cd043b135f7429f0acaa"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#aa1d6cc7fbbc9cd043b135f7429f0acaa">find_minimum_x</a> (const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="separator:aa1d6cc7fbbc9cd043b135f7429f0acaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb86009527f768a1d28a4f0d1b134d2d"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#aeb86009527f768a1d28a4f0d1b134d2d">find_maximum_x</a> (const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="separator:aeb86009527f768a1d28a4f0d1b134d2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e84c3110a3df3edf346de96c14625fe"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a6e84c3110a3df3edf346de96c14625fe">find_minimum_y</a> (const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="separator:a6e84c3110a3df3edf346de96c14625fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acca4f428f8d3159f5f97a8dabb227e4c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#acca4f428f8d3159f5f97a8dabb227e4c">find_maximum_y</a> (const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="separator:acca4f428f8d3159f5f97a8dabb227e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4098c241d73cbe171cec169ae3dbf3d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a4098c241d73cbe171cec169ae3dbf3d1">find_point</a> (const polygon_t::ring_type &amp;ring, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;pt)</td></tr>
<tr class="separator:a4098c241d73cbe171cec169ae3dbf3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a300972891b22819ced1512456e8290d1"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a300972891b22819ced1512456e8290d1">find</a> (const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;h, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;tv, std::function&lt; bool(const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;)&gt; predicate, const off_t &amp;offset=0)</td></tr>
<tr class="separator:a300972891b22819ced1512456e8290d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e4cb3f987ea6883a9637bc83e3f37b8"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a3e4cb3f987ea6883a9637bc83e3f37b8">find</a> (const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;h, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;tv, const off_t &amp;offset=0)</td></tr>
<tr class="separator:a3e4cb3f987ea6883a9637bc83e3f37b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac33141646910ac2614d57a1c34ca92e6"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ac33141646910ac2614d57a1c34ca92e6">count</a> (const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;h, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;tv)</td></tr>
<tr class="separator:ac33141646910ac2614d57a1c34ca92e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d4d082f209f3b53f4c23eb216353581"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a7d4d082f209f3b53f4c23eb216353581">delete_consecutive_repeating_point_patterns</a> (polygon_t::ring_type &amp;ring)</td></tr>
<tr class="separator:a7d4d082f209f3b53f4c23eb216353581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8741f7092463e07ac43a7a12105a6bb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a8741f7092463e07ac43a7a12105a6bb0">remove_co_linear</a> (polygon_t::ring_type &amp;r)</td></tr>
<tr class="separator:a8741f7092463e07ac43a7a12105a6bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e1456b782237797abfb2d3de37eb71"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ae5e1456b782237797abfb2d3de37eb71">remove_co_linear</a> (<a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="separator:ae5e1456b782237797abfb2d3de37eb71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6104269ab41fc23f514d9ad216fc999"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#af6104269ab41fc23f514d9ad216fc999">generate_nfp</a> (<a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;pA, <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;pB, const bool checkValidity=true)</td></tr>
<tr class="separator:af6104269ab41fc23f514d9ad216fc999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64f59ee99cb348bdf67ee3bd5a78dfbe"><td class="memItemLeft" align="right" valign="top">polygonf_t::ring_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a64f59ee99cb348bdf67ee3bd5a78dfbe">convert</a> (const polygon_t::ring_type &amp;r)</td></tr>
<tr class="memdesc:a64f59ee99cb348bdf67ee3bd5a78dfbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Because the boost svg mapper can't handle our custom types we have to convert polygon_t::ring_type to polygonf_t::ring_type (which is using "long double" as coordinate type).  <a href="namespacelibnfporb.html#a64f59ee99cb348bdf67ee3bd5a78dfbe">More...</a><br /></td></tr>
<tr class="separator:a64f59ee99cb348bdf67ee3bd5a78dfbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeeaf5bf20e6a7560be09432e29f99c15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelibnfporb.html#a0631fceada979bd18a3c0216c4cd3685">polygonf_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#aeeaf5bf20e6a7560be09432e29f99c15">convert</a> (const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="memdesc:aeeaf5bf20e6a7560be09432e29f99c15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Because the boost svg mapper can't handle our custom types we have to convert polygon_t to polygonf_t (which is using "long double" as coordinate type).  <a href="namespacelibnfporb.html#aeeaf5bf20e6a7560be09432e29f99c15">More...</a><br /></td></tr>
<tr class="separator:aeeaf5bf20e6a7560be09432e29f99c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefa8e61428bb5385bf8a62bb0a17cdd8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#aefa8e61428bb5385bf8a62bb0a17cdd8">write_svg</a> (std::string const &amp;filename, const std::vector&lt; <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &gt; &amp;segments)</td></tr>
<tr class="memdesc:aefa8e61428bb5385bf8a62bb0a17cdd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes segments to a svg file.  <a href="namespacelibnfporb.html#aefa8e61428bb5385bf8a62bb0a17cdd8">More...</a><br /></td></tr>
<tr class="separator:aefa8e61428bb5385bf8a62bb0a17cdd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a877a4cb0cdeea479be0bbe36b6da962a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a877a4cb0cdeea479be0bbe36b6da962a">write_svg</a> (std::string const &amp;filename, const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p, const polygon_t::ring_type &amp;ring)</td></tr>
<tr class="memdesc:a877a4cb0cdeea479be0bbe36b6da962a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a polygon (A) and a ring (B) to a svg file.  <a href="namespacelibnfporb.html#a877a4cb0cdeea479be0bbe36b6da962a">More...</a><br /></td></tr>
<tr class="separator:a877a4cb0cdeea479be0bbe36b6da962a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae512dbc5633f5e059db3b4a4bb6de779"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ae512dbc5633f5e059db3b4a4bb6de779">write_svg</a> (std::string const &amp;filename, typename std::vector&lt; <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &gt; const &amp;polygons)</td></tr>
<tr class="memdesc:ae512dbc5633f5e059db3b4a4bb6de779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes polygons a svg file.  <a href="namespacelibnfporb.html#ae512dbc5633f5e059db3b4a4bb6de779">More...</a><br /></td></tr>
<tr class="separator:ae512dbc5633f5e059db3b4a4bb6de779"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01e5ab93f9600d8c50a6af660fb5a2da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a01e5ab93f9600d8c50a6af660fb5a2da">write_svg</a> (std::string const &amp;filename, const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;pA, const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;pB, const <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;nfp)</td></tr>
<tr class="memdesc:a01e5ab93f9600d8c50a6af660fb5a2da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes pA, pB and the resulting NFP to a svg file.  <a href="namespacelibnfporb.html#a01e5ab93f9600d8c50a6af660fb5a2da">More...</a><br /></td></tr>
<tr class="separator:a01e5ab93f9600d8c50a6af660fb5a2da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a090259b88f9f0bf26e336cc0abaf34d7"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a090259b88f9f0bf26e336cc0abaf34d7">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;tv)</td></tr>
<tr class="separator:a090259b88f9f0bf26e336cc0abaf34d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f80d1e91349003f2a57bb1a9dbd0bee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a8f80d1e91349003f2a57bb1a9dbd0bee">operator==</a> (const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;lhs, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;rhs)</td></tr>
<tr class="separator:a8f80d1e91349003f2a57bb1a9dbd0bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82e4bac83d7524aef5b9f9db1397c04f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a82e4bac83d7524aef5b9f9db1397c04f">operator!=</a> (const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;lhs, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;rhs)</td></tr>
<tr class="separator:a82e4bac83d7524aef5b9f9db1397c04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80144f98756c1f7e322a8af07b8ab784"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a80144f98756c1f7e322a8af07b8ab784">read_wkt_polygon</a> (const string &amp;filename, <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;p)</td></tr>
<tr class="memdesc:a80144f98756c1f7e322a8af07b8ab784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a wkt polygon from a file.  <a href="namespacelibnfporb.html#a80144f98756c1f7e322a8af07b8ab784">More...</a><br /></td></tr>
<tr class="separator:a80144f98756c1f7e322a8af07b8ab784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadba4ed8bed6e50b03cca5112dc4c6a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#adadba4ed8bed6e50b03cca5112dc4c6a">find_feasible_translation_vectors</a> (polygon_t::ring_type &amp;ringA, polygon_t::ring_type &amp;ringB, const std::vector&lt; <a class="el" href="structlibnfporb_1_1TouchingPoint.html">TouchingPoint</a> &gt; &amp;touchers)</td></tr>
<tr class="separator:adadba4ed8bed6e50b03cca5112dc4c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceabf998f2256a045120bf6bf4b94f49"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#aceabf998f2256a045120bf6bf4b94f49">in_nfp</a> (const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;pt, const <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;nfp)</td></tr>
<tr class="memdesc:aceabf998f2256a045120bf6bf4b94f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a point exists in a NFP.  <a href="namespacelibnfporb.html#aceabf998f2256a045120bf6bf4b94f49">More...</a><br /></td></tr>
<tr class="separator:aceabf998f2256a045120bf6bf4b94f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea486676ff7604aaf290a5899d54a88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608">SearchStartResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#afea486676ff7604aaf290a5899d54a88">search_start_translation</a> (polygon_t::ring_type &amp;rA, const polygon_t::ring_type &amp;rB, const <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;nfp, const bool &amp;inside, <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;result)</td></tr>
<tr class="memdesc:afea486676ff7604aaf290a5899d54a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">At the start of traversal and after every completed nfp-ring this function is used to search for a new start position.  <a href="namespacelibnfporb.html#afea486676ff7604aaf290a5899d54a88">More...</a><br /></td></tr>
<tr class="separator:afea486676ff7604aaf290a5899d54a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae48269c8b06270252a020caa8f362414"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#ae48269c8b06270252a020caa8f362414">find_longest</a> (const std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt; &amp;tvs)</td></tr>
<tr class="memdesc:ae48269c8b06270252a020caa8f362414"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the longest translation vector.  <a href="namespacelibnfporb.html#ae48269c8b06270252a020caa8f362414">More...</a><br /></td></tr>
<tr class="separator:ae48269c8b06270252a020caa8f362414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99839d8d2e348001d6163d58d9e5684a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a99839d8d2e348001d6163d58d9e5684a">sort_by_length</a> (std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt; &amp;tvs)</td></tr>
<tr class="memdesc:a99839d8d2e348001d6163d58d9e5684a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort a std::vector of translation vectors by length.  <a href="namespacelibnfporb.html#a99839d8d2e348001d6163d58d9e5684a">More...</a><br /></td></tr>
<tr class="separator:a99839d8d2e348001d6163d58d9e5684a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc406a29ea633b078b82f74ff5cdb2c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#afbc406a29ea633b078b82f74ff5cdb2c">select_next_translation_vector</a> (const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;pA, const polygon_t::ring_type &amp;rA, const polygon_t::ring_type &amp;rB, std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt; feasibleVectors, const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;history)</td></tr>
<tr class="memdesc:afbc406a29ea633b078b82f74ff5cdb2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the next translation vector from all viable translations.  <a href="namespacelibnfporb.html#afbc406a29ea633b078b82f74ff5cdb2c">More...</a><br /></td></tr>
<tr class="separator:afbc406a29ea633b078b82f74ff5cdb2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae299000a9c806457678eb7696e1b6a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59">SlideResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#aae299000a9c806457678eb7696e1b6a7">slide</a> (<a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;pA, polygon_t::ring_type &amp;rA, polygon_t::ring_type &amp;rB, <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;nfp, const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;startTrans, bool inside)</td></tr>
<tr class="separator:aae299000a9c806457678eb7696e1b6a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adef64d071f04a643db9eb39c7b12acb1"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structlibnfporb_1_1TouchingPoint.html">TouchingPoint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#adef64d071f04a643db9eb39c7b12acb1">find_touching_points</a> (const polygon_t::ring_type &amp;ringA, const polygon_t::ring_type &amp;ringB)</td></tr>
<tr class="memdesc:adef64d071f04a643db9eb39c7b12acb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search for touching points of two rings of A and B.  <a href="namespacelibnfporb.html#adef64d071f04a643db9eb39c7b12acb1">More...</a><br /></td></tr>
<tr class="separator:adef64d071f04a643db9eb39c7b12acb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fd421a83d9da2c621d947f3ceba6664"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a2fd421a83d9da2c621d947f3ceba6664">trim_vector</a> (const polygon_t::ring_type &amp;rA, const polygon_t::ring_type &amp;rB, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;tv)</td></tr>
<tr class="memdesc:a2fd421a83d9da2c621d947f3ceba6664"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trim a given translation vector so that it doesn't intersect with either rA or rB.  <a href="namespacelibnfporb.html#a2fd421a83d9da2c621d947f3ceba6664">More...</a><br /></td></tr>
<tr class="separator:a2fd421a83d9da2c621d947f3ceba6664"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a6090f5c63d46f9e812f2fc128fb7f249"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a6090f5c63d46f9e812f2fc128fb7f249">MAX_COORD</a> = 999999999999999999</td></tr>
<tr class="separator:a6090f5c63d46f9e812f2fc128fb7f249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a125f9bff0a4aaed7ffa722b859f4876b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a125f9bff0a4aaed7ffa722b859f4876b">MIN_COORD</a> = std::numeric_limits&lt;<a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a>&gt;::min()</td></tr>
<tr class="separator:a125f9bff0a4aaed7ffa722b859f4876b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0abb0ee4fb1775630b0c6667426070c3"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelibnfporb.html#a0abb0ee4fb1775630b0c6667426070c3">INVALID_POINT</a> = { <a class="el" href="namespacelibnfporb.html#a6090f5c63d46f9e812f2fc128fb7f249">MAX_COORD</a>, <a class="el" href="namespacelibnfporb.html#a6090f5c63d46f9e812f2fc128fb7f249">MAX_COORD</a> }</td></tr>
<tr class="separator:a0abb0ee4fb1775630b0c6667426070c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a77c306e62f1a3008a965411a7eb12b0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77c306e62f1a3008a965411a7eb12b0c">&#9670;&nbsp;</a></span>coord_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> <a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">libnfporb::coord_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a96e2404c9e732b3f5a6d3ae4d6576d90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96e2404c9e732b3f5a6d3ae4d6576d90">&#9670;&nbsp;</a></span>History</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a>&gt; <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">libnfporb::History</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a604670e70eaa3b16302079bcd9a767b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a604670e70eaa3b16302079bcd9a767b6">&#9670;&nbsp;</a></span>linestring_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bg::model::linestring&lt;<a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>&gt; <a class="el" href="namespacelibnfporb.html#a604670e70eaa3b16302079bcd9a767b6">libnfporb::linestring_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ad1b65f43852227f30363ab70884415ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1b65f43852227f30363ab70884415ab">&#9670;&nbsp;</a></span>nfp_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;polygon_t::ring_type&gt; <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">libnfporb::nfp_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a131f5699cf1d0abf96967036fe94b7fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a131f5699cf1d0abf96967036fe94b7fd">&#9670;&nbsp;</a></span>pointf_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bg::model::d2::point_xy&lt;long double&gt; <a class="el" href="namespacelibnfporb.html#a131f5699cf1d0abf96967036fe94b7fd">libnfporb::pointf_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a6669e4dfc06e20a3983fe52e360d38da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6669e4dfc06e20a3983fe52e360d38da">&#9670;&nbsp;</a></span>polygon_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bg::model::polygon&lt;<a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>, false, true&gt; <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">libnfporb::polygon_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a0631fceada979bd18a3c0216c4cd3685"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0631fceada979bd18a3c0216c4cd3685">&#9670;&nbsp;</a></span>polygonf_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bg::model::polygon&lt;<a class="el" href="namespacelibnfporb.html#a131f5699cf1d0abf96967036fe94b7fd">pointf_t</a>, false, true&gt; <a class="el" href="namespacelibnfporb.html#a0631fceada979bd18a3c0216c4cd3685">libnfporb::polygonf_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a83ffffdc4e4235604aa207e82bbb4eab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83ffffdc4e4235604aa207e82bbb4eab">&#9670;&nbsp;</a></span>psize_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef polygon_t::ring_type::size_type <a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">libnfporb::psize_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a56b264a84ae3c5f7e5c984e17ee89fbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56b264a84ae3c5f7e5c984e17ee89fbc">&#9670;&nbsp;</a></span>segment_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bg::model::segment&lt;<a class="el" href="classlibnfporb_1_1point__t.html">point_t</a>&gt; <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">libnfporb::segment_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8cb1a2ce869e041eb5cda62cdab3c9e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cb1a2ce869e041eb5cda62cdab3c9e7">&#9670;&nbsp;</a></span>segmentf_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bg::model::segment&lt;<a class="el" href="namespacelibnfporb.html#a131f5699cf1d0abf96967036fe94b7fd">pointf_t</a>&gt; <a class="el" href="namespacelibnfporb.html#a8cb1a2ce869e041eb5cda62cdab3c9e7">libnfporb::segmentf_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ab8d12caab4bf53479cc06d350cd5706f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8d12caab4bf53479cc06d350cd5706f">&#9670;&nbsp;</a></span>Alignment</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706f">libnfporb::Alignment</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab8d12caab4bf53479cc06d350cd5706faad2f75e6345098a73fba38cae5ad5703"></a>LEFT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab8d12caab4bf53479cc06d350cd5706fa3fb8da88633a285b8fca71c579077015"></a>RIGHT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab8d12caab4bf53479cc06d350cd5706fa98c4a453f9446b2ef4ce1d69872826c4"></a>ON&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
<a id="ac919112e762b094cbcfda85b004cc608"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac919112e762b094cbcfda85b004cc608">&#9670;&nbsp;</a></span>SearchStartResult</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608">libnfporb::SearchStartResult</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicating the result of search_start_translation. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac919112e762b094cbcfda85b004cc608a48c794db749d9af78d4677534cc80165"></a>FIT&#160;</td><td class="fielddoc"><p>FIT. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac919112e762b094cbcfda85b004cc608a842d31eb7e3e83ccf42fe970a1f26f90"></a>FOUND&#160;</td><td class="fielddoc"><p>FOUND. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac919112e762b094cbcfda85b004cc608a7595c38a51dba2eb067cb7a63807a1c6"></a>NOT_FOUND&#160;</td><td class="fielddoc"><p>NOT_FOUND. </p>
</td></tr>
</table>

</div>
</div>
<a id="a9f6a6b2407431f961afeba70cd953f59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f6a6b2407431f961afeba70cd953f59">&#9670;&nbsp;</a></span>SlideResult</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59">libnfporb::SlideResult</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Indicates the result of the slide function </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a9f6a6b2407431f961afeba70cd953f59a32b866ba62995b45cd4182353885766b"></a>LOOP&#160;</td><td class="fielddoc"><p>we were able to successfully create a NFP-loop </p>
</td></tr>
<tr><td class="fieldname"><a id="a9f6a6b2407431f961afeba70cd953f59a422ac082e2983ac4df9ea68dadf87f76"></a>NO_LOOP&#160;</td><td class="fielddoc"><p>we were not because we ran out of feasible translations </p>
</td></tr>
<tr><td class="fieldname"><a id="a9f6a6b2407431f961afeba70cd953f59aaa88d6c648e957aab8d255d53093ed93"></a>NO_TRANSLATION&#160;</td><td class="fielddoc"><p>we were unable to find a valid next position </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aeeaf5bf20e6a7560be09432e29f99c15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeeaf5bf20e6a7560be09432e29f99c15">&#9670;&nbsp;</a></span>convert() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacelibnfporb.html#a0631fceada979bd18a3c0216c4cd3685">polygonf_t</a> libnfporb::convert </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Because the boost svg mapper can't handle our custom types we have to convert polygon_t to polygonf_t (which is using "long double" as coordinate type). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>The polygon to convert.<ul>
<li></li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A converted copy of p. </dd></dl>

</div>
</div>
<a id="a64f59ee99cb348bdf67ee3bd5a78dfbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64f59ee99cb348bdf67ee3bd5a78dfbe">&#9670;&nbsp;</a></span>convert() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">polygonf_t::ring_type libnfporb::convert </td>
          <td>(</td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Because the boost svg mapper can't handle our custom types we have to convert polygon_t::ring_type to polygonf_t::ring_type (which is using "long double" as coordinate type). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>The ring to convert. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A converted copy of r. </dd></dl>

</div>
</div>
<a id="ac33141646910ac2614d57a1c34ca92e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac33141646910ac2614d57a1c34ca92e6">&#9670;&nbsp;</a></span>count()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t libnfporb::count </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>tv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Count the occurences of a translation vector in the history. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>The history. </td></tr>
    <tr><td class="paramname">tv</td><td>The translation vector. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The count of occurrences in the history. </dd></dl>

</div>
</div>
<a id="a7d4d082f209f3b53f4c23eb216353581"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d4d082f209f3b53f4c23eb216353581">&#9670;&nbsp;</a></span>delete_consecutive_repeating_point_patterns()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::delete_consecutive_repeating_point_patterns </td>
          <td>(</td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ring</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Delete oscillations and loops from the given ring. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ring</td><td>A reference to the ring to be shortened. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the ring has changed. </dd></dl>

</div>
</div>
<a id="a2e318553169d53a7150a00a79bd2762d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e318553169d53a7150a00a79bd2762d">&#9670;&nbsp;</a></span>equals() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::equals </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3ab225f0eb4a7db2c6c7f2b9513a8911"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ab225f0eb4a7db2c6c7f2b9513a8911">&#9670;&nbsp;</a></span>equals() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::equals </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ab235c005475643314bb576c56bbd665d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab235c005475643314bb576c56bbd665d">&#9670;&nbsp;</a></span>equals() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::equals </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3e4cb3f987ea6883a9637bc83e3f37b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e4cb3f987ea6883a9637bc83e3f37b8">&#9670;&nbsp;</a></span>find() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">off_t libnfporb::find </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>tv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const off_t &amp;&#160;</td>
          <td class="paramname"><em>offset</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find a translation vector in the history by comparing segment and vector. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>The history. </td></tr>
    <tr><td class="paramname">tv</td><td>The translation vector. </td></tr>
    <tr><td class="paramname">offset</td><td>The index offset to start searching from </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>returns The index of the translation vector or -1 if it isn't found. </dd></dl>

</div>
</div>
<a id="a300972891b22819ced1512456e8290d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a300972891b22819ced1512456e8290d1">&#9670;&nbsp;</a></span>find() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">off_t libnfporb::find </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>tv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::function&lt; bool(const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;, const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;)&gt;&#160;</td>
          <td class="paramname"><em>predicate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const off_t &amp;&#160;</td>
          <td class="paramname"><em>offset</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find a translation vector in the history using a custom predicate </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>The history. </td></tr>
    <tr><td class="paramname">tv</td><td>The translation vector. </td></tr>
    <tr><td class="paramname">predicate</td><td>The custom predicate </td></tr>
    <tr><td class="paramname">offset</td><td>The index offset to start searching from </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>returns The index of the translation vector or -1 if it isn't found. </dd></dl>

</div>
</div>
<a id="adadba4ed8bed6e50b03cca5112dc4c6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adadba4ed8bed6e50b03cca5112dc4c6a">&#9670;&nbsp;</a></span>find_feasible_translation_vectors()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a>&gt; libnfporb::find_feasible_translation_vectors </td>
          <td>(</td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ringA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ringB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structlibnfporb_1_1TouchingPoint.html">TouchingPoint</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>touchers</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>From all touching points derive all translations that lead to a valid slide, including already traversed ones </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ringA</td><td>Ring of A </td></tr>
    <tr><td class="paramname">ringB</td><td>Ring of B </td></tr>
    <tr><td class="paramname">touchers</td><td>std::vector of TouchingPoints (probably generated by "find_touching_points") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The feasible translation vectors </dd></dl>

</div>
</div>
<a id="ae48269c8b06270252a020caa8f362414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae48269c8b06270252a020caa8f362414">&#9670;&nbsp;</a></span>find_longest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> libnfporb::find_longest </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>tvs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the longest translation vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tvs</td><td>The translation vectors </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The longest translation vector </dd></dl>

</div>
</div>
<a id="aeb86009527f768a1d28a4f0d1b134d2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb86009527f768a1d28a4f0d1b134d2d">&#9670;&nbsp;</a></span>find_maximum_x()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a>&gt; libnfporb::find_maximum_x </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="acca4f428f8d3159f5f97a8dabb227e4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acca4f428f8d3159f5f97a8dabb227e4c">&#9670;&nbsp;</a></span>find_maximum_y()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a>&gt; libnfporb::find_maximum_y </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aa1d6cc7fbbc9cd043b135f7429f0acaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1d6cc7fbbc9cd043b135f7429f0acaa">&#9670;&nbsp;</a></span>find_minimum_x()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a>&gt; libnfporb::find_minimum_x </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a6e84c3110a3df3edf346de96c14625fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e84c3110a3df3edf346de96c14625fe">&#9670;&nbsp;</a></span>find_minimum_y()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a>&gt; libnfporb::find_minimum_y </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a4098c241d73cbe171cec169ae3dbf3d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4098c241d73cbe171cec169ae3dbf3d1">&#9670;&nbsp;</a></span>find_point()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacelibnfporb.html#a83ffffdc4e4235604aa207e82bbb4eab">psize_t</a> libnfporb::find_point </td>
          <td>(</td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ring</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="adef64d071f04a643db9eb39c7b12acb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adef64d071f04a643db9eb39c7b12acb1">&#9670;&nbsp;</a></span>find_touching_points()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="structlibnfporb_1_1TouchingPoint.html">TouchingPoint</a>&gt; libnfporb::find_touching_points </td>
          <td>(</td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ringA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ringB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Search for touching points of two rings of A and B. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ringA</td><td>Ring of A </td></tr>
    <tr><td class="paramname">ringB</td><td>Ring of B </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of TouchingPoint objects </dd></dl>

</div>
</div>
<a id="a017d7db675acdb0a12e7af32967c62e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a017d7db675acdb0a12e7af32967c62e9">&#9670;&nbsp;</a></span>flip()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> libnfporb::flip </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="af6104269ab41fc23f514d9ad216fc999"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6104269ab41fc23f514d9ad216fc999">&#9670;&nbsp;</a></span>generate_nfp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> libnfporb::generate_nfp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>checkValidity</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Generate the NFP for the given polygons pA and pB. Optionally check the input polygons for validity. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pA</td><td>polygon A (the stationary polygon). </td></tr>
    <tr><td class="paramname">pB</td><td>polygon B (the orbiting polygon).<ul>
<li></li>
</ul>
</td></tr>
    <tr><td class="paramname">checkValidity</td><td>Check the input polygons for validity if true. Defaults to true. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The generated NFP. </dd></dl>

</div>
</div>
<a id="a821049b74c902ecafa0da3b19464717d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a821049b74c902ecafa0da3b19464717d">&#9670;&nbsp;</a></span>get_alignment()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacelibnfporb.html#ab8d12caab4bf53479cc06d350cd5706f">Alignment</a> libnfporb::get_alignment </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;&#160;</td>
          <td class="paramname"><em>seg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ab052a9de439729060daaf49977c4ad4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab052a9de439729060daaf49977c4ad4b">&#9670;&nbsp;</a></span>get_inner_angle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long double libnfporb::get_inner_angle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>joint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>end2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aceabf998f2256a045120bf6bf4b94f49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceabf998f2256a045120bf6bf4b94f49">&#9670;&nbsp;</a></span>in_nfp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::in_nfp </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;&#160;</td>
          <td class="paramname"><em>nfp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if a point exists in a NFP. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>The point to look for </td></tr>
    <tr><td class="paramname">nfp</td><td>The NFP to search </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the point was found </dd></dl>

</div>
</div>
<a id="a3021c2838a351048bd223d1e9a0493c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3021c2838a351048bd223d1e9a0493c3">&#9670;&nbsp;</a></span>larger()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::larger </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</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">

</div>
</div>
<a id="af636c7ca76818797e19b1fbeb4d3f6c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af636c7ca76818797e19b1fbeb4d3f6c1">&#9670;&nbsp;</a></span>normalize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> libnfporb::normalize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a82e4bac83d7524aef5b9f9db1397c04f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82e4bac83d7524aef5b9f9db1397c04f">&#9670;&nbsp;</a></span>operator!=()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a7d5f81f2566134c078966d7892ffdb14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d5f81f2566134c078966d7892ffdb14">&#9670;&nbsp;</a></span>operator&lt;()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::operator&lt; </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="afec3b387627b7f3896024a3ed0b95c03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afec3b387627b7f3896024a3ed0b95c03">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; libnfporb::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a9bd8573fc0999f9f167ec1b183fe3484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bd8573fc0999f9f167ec1b183fe3484">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; libnfporb::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a49f6f10b661f0fdac42dec4ee536d192"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49f6f10b661f0fdac42dec4ee536d192">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; libnfporb::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &amp;&#160;</td>
          <td class="paramname"><em>seg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a090259b88f9f0bf26e336cc0abaf34d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a090259b88f9f0bf26e336cc0abaf34d7">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; libnfporb::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>tv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8f80d1e91349003f2a57bb1a9dbd0bee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f80d1e91349003f2a57bb1a9dbd0bee">&#9670;&nbsp;</a></span>operator==()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac2529149025376e0c3fcd03a46540ee8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2529149025376e0c3fcd03a46540ee8">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::istream&amp; libnfporb::operator&gt;&gt; </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a80144f98756c1f7e322a8af07b8ab784"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80144f98756c1f7e322a8af07b8ab784">&#9670;&nbsp;</a></span>read_wkt_polygon()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::read_wkt_polygon </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a wkt polygon from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The name of the file to read from. </td></tr>
    <tr><td class="paramname">p</td><td>The polygon reference to store the resulting polygon in. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae5e1456b782237797abfb2d3de37eb71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5e1456b782237797abfb2d3de37eb71">&#9670;&nbsp;</a></span>remove_co_linear() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::remove_co_linear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Remove co-linear points from a polygon. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>A reference to a polygon. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8741f7092463e07ac43a7a12105a6bb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8741f7092463e07ac43a7a12105a6bb0">&#9670;&nbsp;</a></span>remove_co_linear() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::remove_co_linear </td>
          <td>(</td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Remove co-linear points from a ring. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>A reference to a ring. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afea486676ff7604aaf290a5899d54a88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afea486676ff7604aaf290a5899d54a88">&#9670;&nbsp;</a></span>search_start_translation()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacelibnfporb.html#ac919112e762b094cbcfda85b004cc608">SearchStartResult</a> libnfporb::search_start_translation </td>
          <td>(</td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;&#160;</td>
          <td class="paramname"><em>nfp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool &amp;&#160;</td>
          <td class="paramname"><em>inside</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>At the start of traversal and after every completed nfp-ring this function is used to search for a new start position. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rA</td><td>The ring of polygon A to search for a new start position. </td></tr>
    <tr><td class="paramname">rB</td><td>The ring of polygon B to try to fit into a new start position. </td></tr>
    <tr><td class="paramname">nfp</td><td>The NFP so far. </td></tr>
    <tr><td class="paramname">result</td><td>The reference, the translation vector that would lead to a new start position, is written to.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A SearchStartResult that indicates if either a perfect fit, a new start position or new possible position was found </dd></dl>

</div>
</div>
<a id="afbc406a29ea633b078b82f74ff5cdb2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbc406a29ea633b078b82f74ff5cdb2c">&#9670;&nbsp;</a></span>select_next_translation_vector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> libnfporb::select_next_translation_vector </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt;&#160;</td>
          <td class="paramname"><em>feasibleVectors</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a96e2404c9e732b3f5a6d3ae4d6576d90">History</a> &amp;&#160;</td>
          <td class="paramname"><em>history</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the next translation vector from all viable translations. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pA</td><td>Polygon A </td></tr>
    <tr><td class="paramname">rA</td><td>The pertaining ring of polygon A </td></tr>
    <tr><td class="paramname">rB</td><td>Ring of B </td></tr>
    <tr><td class="paramname">feasibleVectors</td><td>All viable translations (= all translations that lead to a valid slide, including already traversed ones) </td></tr>
    <tr><td class="paramname">history</td><td>The history of all performed translations </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The translation vector used for the next traversal step (slide) </dd></dl>

</div>
</div>
<a id="aae299000a9c806457678eb7696e1b6a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae299000a9c806457678eb7696e1b6a7">&#9670;&nbsp;</a></span>slide()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacelibnfporb.html#a9f6a6b2407431f961afeba70cd953f59">SlideResult</a> libnfporb::slide </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;&#160;</td>
          <td class="paramname"><em>nfp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> &amp;&#160;</td>
          <td class="paramname"><em>startTrans</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>inside</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The function actually performs the orbiting by sliding one ring around the other. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pA</td><td>Polygon A </td></tr>
    <tr><td class="paramname">rA</td><td>Ring of A </td></tr>
    <tr><td class="paramname">rB</td><td>Ring of B </td></tr>
    <tr><td class="paramname">nfp</td><td>The NFP reference to write the traversal to. </td></tr>
    <tr><td class="paramname">startTrans</td><td>The initial translation to perform on rB. </td></tr>
    <tr><td class="paramname">inside</td><td>We are sliding on the inside, which means we previously determined that we are in a hole. </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">runtime_error</td><td>on internal errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A SlideResult, which indicates: we were able to successfully create a NFP-loop (LOOP) or, we were not because we ran out of feasible translations (NO_LOOP) or we were unable to find a valid next position (NO_TRANSLATION) </dd></dl>

</div>
</div>
<a id="a4bf253739214a0da53cfc62291c36a5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4bf253739214a0da53cfc62291c36a5f">&#9670;&nbsp;</a></span>smaller()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool libnfporb::smaller </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</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">

</div>
</div>
<a id="a99839d8d2e348001d6163d58d9e5684a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99839d8d2e348001d6163d58d9e5684a">&#9670;&nbsp;</a></span>sort_by_length()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::sort_by_length </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>tvs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sort a std::vector of translation vectors by length. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tvs</td><td>The std::vector to sort </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a5e145fbf781386b7c6b3c8d41537c887"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e145fbf781386b7c6b3c8d41537c887">&#9670;&nbsp;</a></span>toLongDouble()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long double libnfporb::toLongDouble </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classlibnfporb_1_1LongDouble.html">LongDouble</a> &amp;&#160;</td>
          <td class="paramname"><em>c</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">

</div>
</div>
<a id="a2fd421a83d9da2c621d947f3ceba6664"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fd421a83d9da2c621d947f3ceba6664">&#9670;&nbsp;</a></span>trim_vector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> libnfporb::trim_vector </td>
          <td>(</td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>rB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structlibnfporb_1_1TranslationVector.html">TranslationVector</a> &amp;&#160;</td>
          <td class="paramname"><em>tv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Trim a given translation vector so that it doesn't intersect with either rA or rB. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rA</td><td>Ring of A. </td></tr>
    <tr><td class="paramname">rB</td><td>Ring of B. </td></tr>
    <tr><td class="paramname">tv</td><td>The given translation vector </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The trimmed translation vector </dd></dl>

</div>
</div>
<a id="a877a4cb0cdeea479be0bbe36b6da962a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a877a4cb0cdeea479be0bbe36b6da962a">&#9670;&nbsp;</a></span>write_svg() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::write_svg </td>
          <td>(</td>
          <td class="paramtype">std::string const &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const polygon_t::ring_type &amp;&#160;</td>
          <td class="paramname"><em>ring</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes a polygon (A) and a ring (B) to a svg file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The filename to write to. </td></tr>
    <tr><td class="paramname">p</td><td>The polygon </td></tr>
    <tr><td class="paramname">ring</td><td>The ring </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a01e5ab93f9600d8c50a6af660fb5a2da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01e5ab93f9600d8c50a6af660fb5a2da">&#9670;&nbsp;</a></span>write_svg() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::write_svg </td>
          <td>(</td>
          <td class="paramtype">std::string const &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &amp;&#160;</td>
          <td class="paramname"><em>pB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacelibnfporb.html#ad1b65f43852227f30363ab70884415ab">nfp_t</a> &amp;&#160;</td>
          <td class="paramname"><em>nfp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes pA, pB and the resulting NFP to a svg file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The filename to write to. </td></tr>
    <tr><td class="paramname">pA</td><td>polygon A </td></tr>
    <tr><td class="paramname">pB</td><td>polygon B </td></tr>
    <tr><td class="paramname">nfp</td><td>The resulting NFP </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aefa8e61428bb5385bf8a62bb0a17cdd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefa8e61428bb5385bf8a62bb0a17cdd8">&#9670;&nbsp;</a></span>write_svg() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::write_svg </td>
          <td>(</td>
          <td class="paramtype">std::string const &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacelibnfporb.html#a56b264a84ae3c5f7e5c984e17ee89fbc">segment_t</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>segments</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes segments to a svg file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The filename to write to. </td></tr>
    <tr><td class="paramname">segments</td><td>The segments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae512dbc5633f5e059db3b4a4bb6de779"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae512dbc5633f5e059db3b4a4bb6de779">&#9670;&nbsp;</a></span>write_svg() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void libnfporb::write_svg </td>
          <td>(</td>
          <td class="paramtype">std::string const &amp;&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::vector&lt; <a class="el" href="namespacelibnfporb.html#a6669e4dfc06e20a3983fe52e360d38da">polygon_t</a> &gt; const &amp;&#160;</td>
          <td class="paramname"><em>polygons</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes polygons a svg file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The filename to write to. </td></tr>
    <tr><td class="paramname">polygons</td><td>The polygons </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a0abb0ee4fb1775630b0c6667426070c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0abb0ee4fb1775630b0c6667426070c3">&#9670;&nbsp;</a></span>INVALID_POINT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classlibnfporb_1_1point__t.html">point_t</a> libnfporb::INVALID_POINT = { <a class="el" href="namespacelibnfporb.html#a6090f5c63d46f9e812f2fc128fb7f249">MAX_COORD</a>, <a class="el" href="namespacelibnfporb.html#a6090f5c63d46f9e812f2fc128fb7f249">MAX_COORD</a> }</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a6090f5c63d46f9e812f2fc128fb7f249"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6090f5c63d46f9e812f2fc128fb7f249">&#9670;&nbsp;</a></span>MAX_COORD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a> libnfporb::MAX_COORD = 999999999999999999</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a125f9bff0a4aaed7ffa722b859f4876b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a125f9bff0a4aaed7ffa722b859f4876b">&#9670;&nbsp;</a></span>MIN_COORD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a> libnfporb::MIN_COORD = std::numeric_limits&lt;<a class="el" href="namespacelibnfporb.html#a77c306e62f1a3008a965411a7eb12b0c">coord_t</a>&gt;::min()</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
