<!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>DGtal: DGtal::MelkmanConvexHull&lt; TPoint, TOrientationFunctor &gt; Class Template 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.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">DGtal
   &#160;<span id="projectnumber">1.4.2</span>
   </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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classDGtal_1_1MelkmanConvexHull.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">DGtal::MelkmanConvexHull&lt; TPoint, TOrientationFunctor &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Aim: This class implements the on-line algorithm of Melkman for the computation of the convex hull of a simple polygonal line (without self-intersection) [Melkman, 1987: <a class="el" href="citelist.html#CITEREF_Melkman1987">[90]</a>].  
 <a href="classDGtal_1_1MelkmanConvexHull.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="MelkmanConvexHull_8h_source.html">DGtal/geometry/tools/MelkmanConvexHull.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for DGtal::MelkmanConvexHull&lt; TPoint, TOrientationFunctor &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classDGtal_1_1MelkmanConvexHull__inherit__graph.svg" width="354" height="186"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a6311b17d85eafba9bd85c49270e6ad6e"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a6311b17d85eafba9bd85c49270e6ad6e">Self</a></td></tr>
<tr class="separator:a6311b17d85eafba9bd85c49270e6ad6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0928ebbee49b59be6c766d4dec59780"><td class="memItemLeft" align="right" valign="top">typedef TPoint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a></td></tr>
<tr class="separator:ac0928ebbee49b59be6c766d4dec59780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac100d0950424a1c76b12118d9b8e178f"><td class="memItemLeft" align="right" valign="top">typedef TOrientationFunctor&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a></td></tr>
<tr class="separator:ac100d0950424a1c76b12118d9b8e178f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7bf642003c60b6e773c7ccfe8ef0834"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classDGtal_1_1PredicateFromOrientationFunctor2.html">PredicateFromOrientationFunctor2</a>&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a>, false, false &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ab7bf642003c60b6e773c7ccfe8ef0834">BackwardPredicate</a></td></tr>
<tr class="separator:ab7bf642003c60b6e773c7ccfe8ef0834"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9a6baea32811c11d16723d81e0ddbe"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classDGtal_1_1PredicateFromOrientationFunctor2.html">PredicateFromOrientationFunctor2</a>&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a>, true, false &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a5e9a6baea32811c11d16723d81e0ddbe">ForwardPredicate</a></td></tr>
<tr class="separator:a5e9a6baea32811c11d16723d81e0ddbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3dc865abdce5fc8e17c875ad8486fac"><td class="memItemLeft" align="right" valign="top">typedef std::deque&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a> &gt;::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad3dc865abdce5fc8e17c875ad8486fac">ConstIterator</a></td></tr>
<tr class="separator:ad3dc865abdce5fc8e17c875ad8486fac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aee0f08c25e6bc49ef17cddea042a3ae3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#aee0f08c25e6bc49ef17cddea042a3ae3">BOOST_CONCEPT_ASSERT</a> ((<a class="el" href="structDGtal_1_1concepts_1_1COrientationFunctor2.html">concepts::COrientationFunctor2</a>&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a> &gt;))</td></tr>
<tr class="separator:aee0f08c25e6bc49ef17cddea042a3ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5391603b6736e716b032268bdf0e8322"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a5391603b6736e716b032268bdf0e8322">BOOST_STATIC_ASSERT</a> ((boost::is_same&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a>, typename <a class="el" href="classDGtal_1_1InHalfPlaneBySimple3x3Matrix.html#a5f7f34eb0057bb3d6c1e4cc0ef439ce4">Functor::Point</a> &gt;::value))</td></tr>
<tr class="separator:a5391603b6736e716b032268bdf0e8322"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c6564b72984ecb272ea4d53d74c70e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a3c6564b72984ecb272ea4d53d74c70e7">MelkmanConvexHull</a> (<a class="el" href="classDGtal_1_1Alias.html">Alias</a>&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a> &gt; aFunctor)</td></tr>
<tr class="separator:a3c6564b72984ecb272ea4d53d74c70e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a154b6c336f17895b7ab4696a2365d4c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a154b6c336f17895b7ab4696a2365d4c2">MelkmanConvexHull</a> ()</td></tr>
<tr class="separator:a154b6c336f17895b7ab4696a2365d4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a129041d95bc45b1401d82cb467fdfcf9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a129041d95bc45b1401d82cb467fdfcf9">MelkmanConvexHull</a> (const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a> &amp;mch)=default</td></tr>
<tr class="separator:a129041d95bc45b1401d82cb467fdfcf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a857d8322d67e96a0e6a6f5d0774377d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a857d8322d67e96a0e6a6f5d0774377d2">add</a> (const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a> &amp;<a class="el" href="testSimpleRandomAccessRangeFromPoint_8cpp.html#a9ae40316aa447d5a39eb6f76dba59444">aPoint</a>)</td></tr>
<tr class="separator:a857d8322d67e96a0e6a6f5d0774377d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab02f11fae55a309e4fb4ee0dd66e024e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad3dc865abdce5fc8e17c875ad8486fac">ConstIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ab02f11fae55a309e4fb4ee0dd66e024e">begin</a> () const</td></tr>
<tr class="separator:ab02f11fae55a309e4fb4ee0dd66e024e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a217f3cb670d2ab727c62cc20e4f36136"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad3dc865abdce5fc8e17c875ad8486fac">ConstIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a217f3cb670d2ab727c62cc20e4f36136">end</a> () const</td></tr>
<tr class="separator:a217f3cb670d2ab727c62cc20e4f36136"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a421ae684957162e8d5477994c8e7a2eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a421ae684957162e8d5477994c8e7a2eb">selfDisplay</a> (std::ostream &amp;out) const</td></tr>
<tr class="separator:a421ae684957162e8d5477994c8e7a2eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a361439f24b3ff8127e21c181ed27c65d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a361439f24b3ff8127e21c181ed27c65d">isValid</a> () const</td></tr>
<tr class="separator:a361439f24b3ff8127e21c181ed27c65d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfe8c528601eff58d8f02ff59a37bced"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a6311b17d85eafba9bd85c49270e6ad6e">Self</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#abfe8c528601eff58d8f02ff59a37bced">operator=</a> (const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a6311b17d85eafba9bd85c49270e6ad6e">Self</a> &amp;mch)</td></tr>
<tr class="separator:abfe8c528601eff58d8f02ff59a37bced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ddee36094c4be9c2e191759d2c4f23f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a4ddee36094c4be9c2e191759d2c4f23f">operator[]</a> (unsigned int i) const</td></tr>
<tr class="separator:a4ddee36094c4be9c2e191759d2c4f23f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a014b1c1b093278c2666a241cd1005e42"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a014b1c1b093278c2666a241cd1005e42">size</a> () const</td></tr>
<tr class="separator:a014b1c1b093278c2666a241cd1005e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58b48e41924cf37896edfa77f82a72d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad58b48e41924cf37896edfa77f82a72d">clear</a> ()</td></tr>
<tr class="separator:ad58b48e41924cf37896edfa77f82a72d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae82c6313dfcb17d3f1abd9e18caf26d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ae82c6313dfcb17d3f1abd9e18caf26d5">reverse</a> ()</td></tr>
<tr class="separator:ae82c6313dfcb17d3f1abd9e18caf26d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a31b89a5b949880ffd59c3ab971b1e08b"><td class="memItemLeft" align="right" valign="top">std::deque&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a31b89a5b949880ffd59c3ab971b1e08b">myContainer</a></td></tr>
<tr class="separator:a31b89a5b949880ffd59c3ab971b1e08b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15868da5ce8aeb6e745209fbb8367800"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ab7bf642003c60b6e773c7ccfe8ef0834">BackwardPredicate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a15868da5ce8aeb6e745209fbb8367800">myBackwardPredicate</a></td></tr>
<tr class="separator:a15868da5ce8aeb6e745209fbb8367800"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6423011454aeeb81ac0c3d1bceec7c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a5e9a6baea32811c11d16723d81e0ddbe">ForwardPredicate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#af6423011454aeeb81ac0c3d1bceec7c0">myForwardPredicate</a></td></tr>
<tr class="separator:af6423011454aeeb81ac0c3d1bceec7c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f59c0d62370a810ecfa83295a7d182d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a1f59c0d62370a810ecfa83295a7d182d">myDefaultFunctor</a></td></tr>
<tr class="separator:a1f59c0d62370a810ecfa83295a7d182d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8d9107950fc7447afd4a0f6b920673c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#aa8d9107950fc7447afd4a0f6b920673c">myFirstPoint</a></td></tr>
<tr class="separator:aa8d9107950fc7447afd4a0f6b920673c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename TPoint, typename TOrientationFunctor&gt;<br />
class DGtal::MelkmanConvexHull&lt; TPoint, TOrientationFunctor &gt;</h3>

<p>Aim: This class implements the on-line algorithm of Melkman for the computation of the convex hull of a simple polygonal line (without self-intersection) [Melkman, 1987: <a class="el" href="citelist.html#CITEREF_Melkman1987">[90]</a>]. </p>
<p>This algorithm is based on a deque, which stores the vertices of the convex hull (for convenience, the first and last vertex contained in the deque are the same point). Since we assume that the input points form a simple polygonal line, a new point cannot be located in the cone formed by the first and last edges of the current convex hull. As a consequence, it is enough to update the convex hull by a Graham scan from the front and/or from the back of the deque; it is never required to remove/insert points in the middle of the container. See <a class="el" href="moduleHull2D.html">Convex hull and alpha-shape in the plane</a> for more details.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="namespaceDGtal_1_1functions_1_1Hull2D.html#aca9e05cfa0179a24f8db24e3b5abaeae" title="Procedure that calls Hull2D::updateHullWithStack on a copy of the stack object used to retrieved the ...">functions::Hull2D::updateHullWithAdaptedStack</a></dd></dl>
<p>Note that if the input points do not form a simple polygonal line, the behavior is not defined.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">TPoint</td><td>a model of point </td></tr>
    <tr><td class="paramname">TOrientationFunctor</td><td>a model of COrientationFunctor2 (whose inner type 'Point' match to 'TPoint') </td></tr>
  </table>
  </dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="geometry_2tools_2exampleConvexHull2D_8cpp-example.html#_a15">geometry/tools/exampleConvexHull2D.cpp</a>.</dd>
</dl>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00089">89</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ab7bf642003c60b6e773c7ccfe8ef0834"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7bf642003c60b6e773c7ccfe8ef0834">&#9670;&nbsp;</a></span>BackwardPredicate</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classDGtal_1_1PredicateFromOrientationFunctor2.html">PredicateFromOrientationFunctor2</a>&lt;<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a>,false,false&gt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ab7bf642003c60b6e773c7ccfe8ef0834">BackwardPredicate</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type of predicate devoted to the backward scan </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00114">114</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef std::deque&lt;<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a>&gt;::const_iterator <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad3dc865abdce5fc8e17c875ad8486fac">ConstIterator</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type of iterator on the convex hull vertices </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00123">123</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classDGtal_1_1PredicateFromOrientationFunctor2.html">PredicateFromOrientationFunctor2</a>&lt;<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a>,true,false&gt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a5e9a6baea32811c11d16723d81e0ddbe">ForwardPredicate</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type of predicate devoted to the forward scan </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00118">118</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef TOrientationFunctor <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type of orientation functor </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00106">106</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef TPoint <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type of point </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00102">102</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a>&lt;TPoint, TOrientationFunctor&gt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a6311b17d85eafba9bd85c49270e6ad6e">Self</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Self type </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00097">97</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a3c6564b72984ecb272ea4d53d74c70e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c6564b72984ecb272ea4d53d74c70e7">&#9670;&nbsp;</a></span>MelkmanConvexHull() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classDGtal_1_1Alias.html">Alias</a>&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a> &gt;&#160;</td>
          <td class="paramname"><em>aFunctor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::<a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt; &amp;&#160;</td>
          <td class="paramname"><em>mch</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Default copy constructor.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mch</td><td>the object to copy. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a857d8322d67e96a0e6a6f5d0774377d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a857d8322d67e96a0e6a6f5d0774377d2">&#9670;&nbsp;</a></span>add()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::add </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a> &amp;&#160;</td>
          <td class="paramname"><em>aPoint</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Consider a new point and possibly update the convex hull. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aPoint</td><td>an extra point </td></tr>
  </table>
  </dd>
</dl>
<dl class="section post"><dt>Postcondition</dt><dd>if <em>aPoint</em> lies outside the current convex hull, this hull is then updated with <em>aPoint</em> as a vertex. </dd></dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad3dc865abdce5fc8e17c875ad8486fac">ConstIterator</a> <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Begin iterator </p><dl class="section return"><dt>Returns</dt><dd>either a const iterator pointing past-the-end if the container is empty or a const iterator pointing after the first point otherwise. Rationale: we do not want to iterate over the same point, duplicated at the begin and at the end of the container. <br  />
 </dd></dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::BOOST_CONCEPT_ASSERT </td>
          <td>(</td>
          <td class="paramtype">(<a class="el" href="structDGtal_1_1concepts_1_1COrientationFunctor2.html">concepts::COrientationFunctor2</a>&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a> &gt;)&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::BOOST_STATIC_ASSERT </td>
          <td>(</td>
          <td class="paramtype">(boost::is_same&lt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a>, typename <a class="el" href="classDGtal_1_1InHalfPlaneBySimple3x3Matrix.html#a5f7f34eb0057bb3d6c1e4cc0ef439ce4">Functor::Point</a> &gt;::value)&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>clear the current content of the convex hull. </p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ad3dc865abdce5fc8e17c875ad8486fac">ConstIterator</a> <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>End iterator </p><dl class="section return"><dt>Returns</dt><dd>a const iterator to the end of the container </dd></dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::isValid </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks the validity/consistency of the object. </p><dl class="section return"><dt>Returns</dt><dd>'true' if the object is valid, 'false' otherwise. </dd></dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a6311b17d85eafba9bd85c49270e6ad6e">Self</a>&amp; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a6311b17d85eafba9bd85c49270e6ad6e">Self</a> &amp;&#160;</td>
          <td class="paramname"><em>mch</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Assignement Operator</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mch</td><td>the object to copy. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference on 'this'. </dd></dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a>&amp; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::operator[] </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the <em>i-th</em> point of the convex hull queue. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the index of the considered point. </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::reverse </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Reverse the convex hull container allowing to change the order of adding points from the front or from the back in reference to an input contour. Such a reverse is important to avoid wrong convexhull and to allow convex hull extension from two directions. </p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::selfDisplay </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>out</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Writes/Displays the object on an output stream. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>the output stream where the object is written. </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the nomber of points constituing the convex hull. </dd></dl>

</div>
</div>
<h2 class="groupheader">Field Documentation</h2>
<a id="a15868da5ce8aeb6e745209fbb8367800"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15868da5ce8aeb6e745209fbb8367800">&#9670;&nbsp;</a></span>myBackwardPredicate</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ab7bf642003c60b6e773c7ccfe8ef0834">BackwardPredicate</a> <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::myBackwardPredicate</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Predicate devoted to the backward scan </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00220">220</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::deque&lt;<a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a>&gt; <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::myContainer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Deque container, which stores the vertices of the convex hull NB: the first and last point is the same. </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00216">216</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac100d0950424a1c76b12118d9b8e178f">Functor</a> <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::myDefaultFunctor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Used to define a default functor to allow default constructor </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00228">228</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#ac0928ebbee49b59be6c766d4dec59780">Point</a> <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::myFirstPoint</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>first point used to reverse the convexhull container. </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00232">232</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

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

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TPoint , typename TOrientationFunctor &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html#a5e9a6baea32811c11d16723d81e0ddbe">ForwardPredicate</a> <a class="el" href="classDGtal_1_1MelkmanConvexHull.html">DGtal::MelkmanConvexHull</a>&lt; TPoint, TOrientationFunctor &gt;::myForwardPredicate</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Predicate devoted to the forward scan </p>

<p class="definition">Definition at line <a class="el" href="MelkmanConvexHull_8h_source.html#l00224">224</a> of file <a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="MelkmanConvexHull_8h_source.html">MelkmanConvexHull.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceDGtal.html">DGtal</a></li><li class="navelem"><a class="el" href="classDGtal_1_1MelkmanConvexHull.html">MelkmanConvexHull</a></li>
    <li class="footer">Generated on Mon Dec 23 2024 13:19:01 for DGtal by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>