<!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: geometry/volumes/fullConvexityLUT2D.cpp</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('geometry_2volumes_2fullConvexityLUT2D_8cpp-example.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="headertitle">
<div class="title">geometry/volumes/fullConvexityLUT2D.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<p>This example creates precomputed tables for determining whether some 3x3 neighborhood of a point is fully convex, collapsible, etc. More precisely it produces the following tables, if the neighbor points are the possible 8 points around the point of interest.</p>
<ul>
<li>table-fcvx-with-center : 'true' iff the center point and its neighbor points are fully convex ;</li>
<li>table-fcvx-without-center" : 'true' iff the neighbor points without the center point are fully convex ;</li>
<li>table-complementary-fcvx-with-center : 'true' iff the center point and the complementary points of its neighbor points are fully convex ;</li>
<li>table-complementary-fcvx-without-center : 'true' iff the complementary points of the neighbor points are full convex ;</li>
<li>table-fcvx-regular : 'true' if the point is <b>regular</b>, meaning that the center point and its neighbor points are fully convex, while the complementary points of the neighbor points are fully convex ;</li>
<li>table-fcvx-collapsible : 'true' if the point is <b>collapsible</b>, meaning that the center and its neighbor points are fully convex, the neighbor points without the center point are also fully convex, and the center point is not isolated.</li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="moduleDigitalConvexityApplications.html">Applications of full digital convexity</a></dd></dl>
<div class="fragment"><div class="line"> </div>
<div class="line"><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;fstream&gt;</span></div>
<div class="line"><span class="preprocessor">#include &quot;DGtal/shapes/Shapes.h&quot;</span></div>
<div class="line"><span class="preprocessor">#include &quot;DGtal/io/boards/Board2D.h&quot;</span></div>
<div class="line"><span class="preprocessor">#include &quot;DGtal/io/Color.h&quot;</span></div>
<div class="line"><span class="preprocessor">#include &quot;DGtal/geometry/volumes/DigitalConvexity.h&quot;</span></div>
<div class="line"><span class="preprocessor">#include &quot;DGtal/geometry/volumes/NeighborhoodConvexityAnalyzer.h&quot;</span></div>
<div class="line"><span class="preprocessor">#include &quot;DGtal/helpers/Shortcuts.h&quot;</span></div>
<div class="line"><span class="preprocessor">#include &quot;ConfigExamples.h&quot;</span></div>
<div class="line"> </div>
<div class="line"><span class="comment">// Using standard 2D digital space.</span></div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="keyword">using namespace </span>std;</div>
<div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceDGtal.html">DGtal</a>;</div>
<div class="line"><span class="keyword">using namespace </span>Z2i;</div>
<div class="line"> </div>
<div class="line"><span class="keyword">typedef</span> std::vector&lt;bool&gt; <a name="a0"></a><a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a>;</div>
<div class="line"><span class="keyword">typedef</span> <a name="_a1"></a><a class="code" href="classDGtal_1_1DigitalConvexity.html">DigitalConvexity&lt; KSpace &gt;</a> <a name="a2"></a><a class="code" href="fullConvexityCollapsiblePoints2D_8cpp.html#a35fb186c7414287732acbcb4380b2c4f">DConv</a>;</div>
<div class="line"><span class="keyword">typedef</span> Shortcuts&lt;KSpace&gt; <a name="a3"></a><a class="code" href="fullConvexityCollapsiblePoints2D_8cpp.html#aee2cfe204e7b72bdbca6ca8671c96a42">SH2</a>;</div>
<div class="line"><span class="keyword">typedef</span> NeighborhoodConvexityAnalyzer&lt;KSpace,1&gt; <a name="a4"></a><a class="code" href="fullConvexityCollapsiblePoints2D_8cpp.html#a056d16d3be9cfab5cbe53d99ea152075">NCA1</a>;</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span></div>
<div class="line"><a name="a5"></a><a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( ostream &amp; out,</div>
<div class="line">                    <span class="keyword">const</span> <span class="keywordtype">string</span> &amp; tableName,</div>
<div class="line">                    <span class="keyword">const</span> <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> &amp; map )</div>
<div class="line">{</div>
<div class="line">  out &lt;&lt; <span class="stringliteral">&quot;const bool &quot;</span> &lt;&lt; tableName &lt;&lt; <span class="stringliteral">&quot;[ &quot;</span> &lt;&lt; map.size() &lt;&lt; <span class="stringliteral">&quot; ] = { &quot;</span>;</div>
<div class="line">  <span class="keywordflow">for</span> ( <span class="keyword">auto</span>  it = map.cbegin(), it_end = map.cend();</div>
<div class="line">        it != it_end; )</div>
<div class="line">    {</div>
<div class="line">      out &lt;&lt; (int) *it;</div>
<div class="line">      ++it;</div>
<div class="line">      <span class="keywordflow">if</span> ( it != it_end ) out &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div>
<div class="line">    }</div>
<div class="line">  out &lt;&lt; <span class="stringliteral">&quot; };&quot;</span> &lt;&lt; std::endl;</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span></div>
<div class="line"><a name="a6"></a><a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( Board2D &amp; board,</div>
<div class="line">                        <span class="keyword">const</span> <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> &amp; map,</div>
<div class="line">                        <span class="keywordtype">bool</span> complement,</div>
<div class="line">                        <span class="keywordtype">bool</span> with )</div>
<div class="line">{</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> p1 = Point::diagonal( -1 );</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> p2 = Point::diagonal(  1 );</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> c = Point::diagonal( 0 );</div>
<div class="line">  <a class="code" href="testSimpleRandomAccessRangeFromPoint_8cpp.html#acd532b318489cd93df57e0b3d136d050">Domain</a> <a name="a7"></a><a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a>( p1, p2 );</div>
<div class="line"> </div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> q1 = Point::diagonal( -1 );</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> q2 = Point::diagonal( 4*16-1 );</div>
<div class="line">  <a class="code" href="testSimpleRandomAccessRangeFromPoint_8cpp.html#acd532b318489cd93df57e0b3d136d050">Domain</a> fullDomain( q1, q2 );</div>
<div class="line">  board &lt;&lt; SetMode( fullDomain.className(), <span class="stringliteral">&quot;Paving&quot;</span> );</div>
<div class="line">  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cfg = 0;</div>
<div class="line">  <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y = 0; y &lt; 16; ++y )</div>
<div class="line">    <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x = 0; x &lt; 16; ++x, ++cfg )</div>
<div class="line">      {</div>
<div class="line">        <span class="keywordtype">bool</span> simple = map[ cfg ];</div>
<div class="line">        <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> base( x*4, y*4 );</div>
<div class="line">        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mask = 1;</div>
<div class="line">        <span class="keywordflow">for</span> ( <span class="keyword">auto</span> it = <a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a>.begin();</div>
<div class="line">              it != <a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a>.end(); ++it )</div>
<div class="line">          {</div>
<div class="line">            <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> q = base + (*it);</div>
<div class="line">            <span class="keywordflow">if</span> ( *it == c ) {</div>
<div class="line">              <span class="keywordflow">if</span> ( with ) </div>
<div class="line">                board &lt;&lt; CustomStyle( q.className(),</div>
<div class="line">                                      simple</div>
<div class="line">                                      ? <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                          Color( 30, 128, 30 ) )</div>
<div class="line">                                      : <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                          Color( 128, 30, 30 ) ) );</div>
<div class="line">              <span class="keywordflow">else</span></div>
<div class="line">                board &lt;&lt; CustomStyle( q.className(),</div>
<div class="line">                                      simple</div>
<div class="line">                                      ? <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                          Color( 200, 255, 200 ) )</div>
<div class="line">                                      : <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                          Color( 255, 200, 200 ) ) );</div>
<div class="line">                </div>
<div class="line">            } <span class="keywordflow">else</span> {</div>
<div class="line">              <span class="keywordtype">bool</span> in_cfg  = cfg &amp; mask;</div>
<div class="line">              <span class="keywordtype">bool</span> <a name="a8"></a><a class="code" href="testLabelledMap_8cpp.html#ad7bf55b7a17eb27c4ccabe9ae82a0629">display</a> = complement ? ( ! in_cfg ) : in_cfg;</div>
<div class="line">              <span class="keywordflow">if</span> ( <a class="code" href="testLabelledMap_8cpp.html#ad7bf55b7a17eb27c4ccabe9ae82a0629">display</a> )</div>
<div class="line">                board &lt;&lt;</div>
<div class="line">                  CustomStyle( q.className(),</div>
<div class="line">                               simple</div>
<div class="line">                               ? <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                   Color( 10, 255, 10 ) )</div>
<div class="line">                               : <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                   Color( 255, 10, 10 ) ) );</div>
<div class="line">              <span class="keywordflow">else</span></div>
<div class="line">                board &lt;&lt;</div>
<div class="line">                  CustomStyle( q.className(),</div>
<div class="line">                               simple</div>
<div class="line">                               ? <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                   Color( 245, 255, 245 ) )</div>
<div class="line">                               : <span class="keyword">new</span> CustomColors( Color( 0, 0, 0 ),</div>
<div class="line">                                                   Color( 255, 245, 245 ) ) );</div>
<div class="line">              mask &lt;&lt;= 1;</div>
<div class="line">            }</div>
<div class="line">            board &lt;&lt; q;</div>
<div class="line">          }</div>
<div class="line">      }</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">int</span> <a name="a9"></a><a class="code" href="testArithmeticDSS-benchmark_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv )</div>
<div class="line">{</div>
<div class="line">  <a class="code" href="fullConvexityCollapsiblePoints2D_8cpp.html#a35fb186c7414287732acbcb4380b2c4f">DConv</a> dconv( Point::diagonal( -5 ), Point::diagonal( 5 ) );</div>
<div class="line">  </div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a name="a10"></a><a class="code" href="classDGtal_1_1Trace.html#a352b7160bf722e2f0bcbee5d0bad6ef3">beginBlock</a> ( <span class="stringliteral">&quot;Generate 2d tables&quot;</span> );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> table_with    ( 256, <span class="keyword">false</span> );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> table_without ( 256, <span class="keyword">false</span> );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> table_cwith   ( 256, <span class="keyword">false</span> );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> table_cwithout( 256, <span class="keyword">false</span> );</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> p1 = Point::diagonal( -1 );</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> p2 = Point::diagonal(  1 );</div>
<div class="line">  <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> c = Point::diagonal( 0 );</div>
<div class="line">  <a class="code" href="testSimpleRandomAccessRangeFromPoint_8cpp.html#acd532b318489cd93df57e0b3d136d050">Domain</a> <a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a>( p1, p2 );</div>
<div class="line">  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cfg = 0;</div>
<div class="line">  <a class="code" href="testArithmeticalDSSComputerOnSurfels_8cpp.html#aebe586e91159919ccf2f565d4407fff7">KSpace</a> <a name="a11"></a><a class="code" href="testCubicalComplex_8cpp.html#a2b87ed989d2519d025bd5d4fbcbac062">K</a>;</div>
<div class="line">  <a class="code" href="testCubicalComplex_8cpp.html#a2b87ed989d2519d025bd5d4fbcbac062">K</a>.init( p1, p2, <span class="keyword">true</span> );</div>
<div class="line">  NeighborhoodConvexityAnalyzer&lt; KSpace, 1  &gt; LCA( <a class="code" href="testCubicalComplex_8cpp.html#a2b87ed989d2519d025bd5d4fbcbac062">K</a> );</div>
<div class="line">  ImageContainerBySTLVector&lt; Domain, bool &gt; <a name="a12"></a><a class="code" href="testSimpleRandomAccessRangeFromPoint_8cpp.html#a614d1b1c043b31763c1eb50f64666737">image</a>( <a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a> );</div>
<div class="line">  <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> y = 0; y &lt; 16; ++y )</div>
<div class="line">    <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x = 0; x &lt; 16; ++x )</div>
<div class="line">      {</div>
<div class="line">        <span class="comment">// Building a configuration.</span></div>
<div class="line">        std::vector&lt; Point &gt; Xwith;</div>
<div class="line">        std::vector&lt; Point &gt; Xwithout;</div>
<div class="line">        <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> base( x, y );</div>
<div class="line">        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mask = 1;</div>
<div class="line">        <span class="keywordflow">for</span> ( <span class="keyword">auto</span> it = <a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a>.begin(); it != <a class="code" href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a>.end(); ++it )</div>
<div class="line">          {</div>
<div class="line">            <span class="keyword">const</span> <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> p = *it;</div>
<div class="line">            <span class="keywordflow">if</span> ( p != c )</div>
<div class="line">              {</div>
<div class="line">                image.setValue( p, cfg &amp; mask );</div>
<div class="line">                mask &lt;&lt;= 1;</div>
<div class="line">              }</div>
<div class="line">          }</div>
<div class="line">        <span class="comment">// Checking full convexity.</span></div>
<div class="line">        LCA.setCenter( c, image );</div>
<div class="line">        <span class="keywordtype">bool</span> full_with     = LCA.isFullyConvex( <span class="keyword">true</span> );</div>
<div class="line">        <span class="keywordtype">bool</span> full_without  = LCA.isFullyConvex( <span class="keyword">false</span> );</div>
<div class="line">        <span class="keywordtype">bool</span> full_cwith    = LCA.isComplementaryFullyConvex( <span class="keyword">true</span> );</div>
<div class="line">        <span class="keywordtype">bool</span> full_cwithout = LCA.isComplementaryFullyConvex( <span class="keyword">false</span> );</div>
<div class="line">        table_with    [ cfg ] = full_with;</div>
<div class="line">        table_without [ cfg ] = full_without;</div>
<div class="line">        table_cwith   [ cfg ] = full_cwith;</div>
<div class="line">        table_cwithout[ cfg ] = full_cwithout;</div>
<div class="line">        cfg += 1;</div>
<div class="line">      }</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a name="a13"></a><a class="code" href="classDGtal_1_1Trace.html#afa3a2874289734884107b1ce68ccb93d">endBlock</a>();</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#a352b7160bf722e2f0bcbee5d0bad6ef3">beginBlock</a> ( <span class="stringliteral">&quot;Computing topology-related tables&quot;</span> );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> table_regular   ( 256, <span class="keyword">false</span> );</div>
<div class="line">  <span class="keywordflow">for</span> ( cfg = 0; cfg &lt; 256; cfg++ )</div>
<div class="line">    table_regular[ cfg ] = table_with[ cfg ] &amp;&amp; table_without[ 255 - cfg ];</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a> table_collapsible( 256, <span class="keyword">false</span> );</div>
<div class="line">  <span class="keywordflow">for</span> ( cfg = 0; cfg &lt; 256; cfg++ )</div>
<div class="line">    table_collapsible[ cfg ] = table_with[ cfg ] &amp;&amp; table_without[ cfg ]</div>
<div class="line">      &amp;&amp; ( cfg != 0 );</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#afa3a2874289734884107b1ce68ccb93d">endBlock</a>();</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#a352b7160bf722e2f0bcbee5d0bad6ef3">beginBlock</a> ( <span class="stringliteral">&quot;Display 2d tables&quot;</span> );</div>
<div class="line">  {</div>
<div class="line">    Board2D board;</div>
<div class="line">    <a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( board, table_with, <span class="keyword">false</span>, <span class="keyword">true</span> );</div>
<div class="line">    board.saveEPS( <span class="stringliteral">&quot;table-fcvx-with-center.eps&quot;</span> );</div>
<div class="line">  }</div>
<div class="line">  {</div>
<div class="line">    Board2D board;</div>
<div class="line">    <a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( board, table_without, <span class="keyword">false</span>, <span class="keyword">false</span> );</div>
<div class="line">    board.saveEPS( <span class="stringliteral">&quot;table-fcvx-without-center.eps&quot;</span> );</div>
<div class="line">  }</div>
<div class="line">  {</div>
<div class="line">    Board2D board;</div>
<div class="line">    <a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( board, table_cwith, <span class="keyword">true</span>, <span class="keyword">true</span> );</div>
<div class="line">    board.saveEPS( <span class="stringliteral">&quot;table-complementary-fcvx-with-center.eps&quot;</span> );</div>
<div class="line">  }</div>
<div class="line">  {</div>
<div class="line">    Board2D board;</div>
<div class="line">    <a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( board, table_cwithout, <span class="keyword">true</span>, <span class="keyword">false</span> );</div>
<div class="line">    board.saveEPS( <span class="stringliteral">&quot;table-complementary-fcvx-without-center.eps&quot;</span> );</div>
<div class="line">  }</div>
<div class="line">  {</div>
<div class="line">    Board2D board;</div>
<div class="line">    <a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( board, table_regular, <span class="keyword">false</span>, <span class="keyword">true</span> );</div>
<div class="line">    board.saveEPS( <span class="stringliteral">&quot;table-fcvx-regular.eps&quot;</span> );</div>
<div class="line">  }</div>
<div class="line">  {</div>
<div class="line">    Board2D board;</div>
<div class="line">    <a class="code" href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a>( board, table_collapsible, <span class="keyword">false</span>, <span class="keyword">true</span> );</div>
<div class="line">    board.saveEPS( <span class="stringliteral">&quot;table-fcvx-collapsible.eps&quot;</span> );</div>
<div class="line">  }</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#afa3a2874289734884107b1ce68ccb93d">endBlock</a>();</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#a352b7160bf722e2f0bcbee5d0bad6ef3">beginBlock</a> ( <span class="stringliteral">&quot;Output 2d tables as C arrays&quot;</span> );</div>
<div class="line">  ofstream out( <span class="stringliteral">&quot;table-fcvx.cpp&quot;</span> );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( out, <span class="stringliteral">&quot;table-fcvx-with-center&quot;</span>,</div>
<div class="line">                      table_with );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( out, <span class="stringliteral">&quot;table-fcvx-without-center&quot;</span>,</div>
<div class="line">                      table_without );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( out, <span class="stringliteral">&quot;table-complementary-fcvx-with-center&quot;</span>,</div>
<div class="line">                      table_cwith );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( out, <span class="stringliteral">&quot;table-complementary-fcvx-without-center&quot;</span>,</div>
<div class="line">                      table_cwithout );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( out, <span class="stringliteral">&quot;table-fcvx-regular&quot;</span>,</div>
<div class="line">                      table_regular );</div>
<div class="line">  <a class="code" href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a>( out, <span class="stringliteral">&quot;table-fcvx-collapsible&quot;</span>,</div>
<div class="line">                      table_collapsible );</div>
<div class="line">  out.close();</div>
<div class="line">  <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#afa3a2874289734884107b1ce68ccb93d">endBlock</a>();</div>
<div class="line">  <span class="keywordflow">return</span> 0;</div>
<div class="line">}</div>
<div class="ttc" id="aclassDGtal_1_1DigitalConvexity_html"><div class="ttname"><a href="classDGtal_1_1DigitalConvexity.html">DGtal::DigitalConvexity&lt; KSpace &gt;</a></div></div>
<div class="ttc" id="aclassDGtal_1_1Trace_html_a352b7160bf722e2f0bcbee5d0bad6ef3"><div class="ttname"><a href="classDGtal_1_1Trace.html#a352b7160bf722e2f0bcbee5d0bad6ef3">DGtal::Trace::beginBlock</a></div><div class="ttdeci">void beginBlock(const std::string &amp;keyword=&quot;&quot;)</div></div>
<div class="ttc" id="aclassDGtal_1_1Trace_html_afa3a2874289734884107b1ce68ccb93d"><div class="ttname"><a href="classDGtal_1_1Trace.html#afa3a2874289734884107b1ce68ccb93d">DGtal::Trace::endBlock</a></div><div class="ttdeci">double endBlock()</div></div>
<div class="ttc" id="afullConvexityCollapsiblePoints2D_8cpp_html_a056d16d3be9cfab5cbe53d99ea152075"><div class="ttname"><a href="fullConvexityCollapsiblePoints2D_8cpp.html#a056d16d3be9cfab5cbe53d99ea152075">NCA1</a></div><div class="ttdeci">NeighborhoodConvexityAnalyzer&lt; KSpace, 1 &gt; NCA1</div><div class="ttdef"><b>Definition:</b> <a href="fullConvexityCollapsiblePoints2D_8cpp_source.html#l00058">fullConvexityCollapsiblePoints2D.cpp:58</a></div></div>
<div class="ttc" id="afullConvexityCollapsiblePoints2D_8cpp_html_a35fb186c7414287732acbcb4380b2c4f"><div class="ttname"><a href="fullConvexityCollapsiblePoints2D_8cpp.html#a35fb186c7414287732acbcb4380b2c4f">DConv</a></div><div class="ttdeci">DigitalConvexity&lt; KSpace &gt; DConv</div><div class="ttdef"><b>Definition:</b> <a href="fullConvexityCollapsiblePoints2D_8cpp_source.html#l00056">fullConvexityCollapsiblePoints2D.cpp:56</a></div></div>
<div class="ttc" id="afullConvexityCollapsiblePoints2D_8cpp_html_aee2cfe204e7b72bdbca6ca8671c96a42"><div class="ttname"><a href="fullConvexityCollapsiblePoints2D_8cpp.html#aee2cfe204e7b72bdbca6ca8671c96a42">SH2</a></div><div class="ttdeci">Shortcuts&lt; KSpace &gt; SH2</div><div class="ttdef"><b>Definition:</b> <a href="fullConvexityCollapsiblePoints2D_8cpp_source.html#l00057">fullConvexityCollapsiblePoints2D.cpp:57</a></div></div>
<div class="ttc" id="afullConvexityLUT2D_8cpp_html_a9999f95807b8ad274a6b3d925fa509ad"><div class="ttname"><a href="fullConvexityLUT2D_8cpp.html#a9999f95807b8ad274a6b3d925fa509ad">ConfigMap</a></div><div class="ttdeci">std::vector&lt; bool &gt; ConfigMap</div><div class="ttdef"><b>Definition:</b> <a href="fullConvexityLUT2D_8cpp_source.html#l00076">fullConvexityLUT2D.cpp:76</a></div></div>
<div class="ttc" id="afullConvexityLUT2D_8cpp_html_ab1d2e1d6c3dde25efcc727c199693922"><div class="ttname"><a href="fullConvexityLUT2D_8cpp.html#ab1d2e1d6c3dde25efcc727c199693922">displaySimplicityTable</a></div><div class="ttdeci">void displaySimplicityTable(Board2D &amp;board, const ConfigMap &amp;map, bool complement, bool with)</div><div class="ttdef"><b>Definition:</b> <a href="fullConvexityLUT2D_8cpp_source.html#l00102">fullConvexityLUT2D.cpp:102</a></div></div>
<div class="ttc" id="afullConvexityLUT2D_8cpp_html_ada9492cdda05959a6927580ea1a82e41"><div class="ttname"><a href="fullConvexityLUT2D_8cpp.html#ada9492cdda05959a6927580ea1a82e41">outputTableAsArray</a></div><div class="ttdeci">void outputTableAsArray(ostream &amp;out, const string &amp;tableName, const ConfigMap &amp;map)</div><div class="ttdef"><b>Definition:</b> <a href="fullConvexityLUT2D_8cpp_source.html#l00086">fullConvexityLUT2D.cpp:86</a></div></div>
<div class="ttc" id="anamespaceDGtal_html"><div class="ttname"><a href="namespaceDGtal.html">DGtal</a></div><div class="ttdoc">DGtal is the top-level namespace which contains all DGtal functions and types.</div></div>
<div class="ttc" id="anamespaceDGtal_html_a8fc7012708b0416880a5c8b12dfdf9dd"><div class="ttname"><a href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">DGtal::trace</a></div><div class="ttdeci">Trace trace</div><div class="ttdef"><b>Definition:</b> <a href="Common_8h_source.html#l00153">Common.h:153</a></div></div>
<div class="ttc" id="atestArithmeticDSS-benchmark_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="testArithmeticDSS-benchmark_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="testArithmeticDSS-benchmark_8cpp_source.html#l00147">testArithmeticDSS-benchmark.cpp:147</a></div></div>
<div class="ttc" id="atestArithmeticalDSSComputerOnSurfels_8cpp_html_aebe586e91159919ccf2f565d4407fff7"><div class="ttname"><a href="testArithmeticalDSSComputerOnSurfels_8cpp.html#aebe586e91159919ccf2f565d4407fff7">KSpace</a></div><div class="ttdeci">Z3i::KSpace KSpace</div><div class="ttdef"><b>Definition:</b> <a href="testArithmeticalDSSComputerOnSurfels_8cpp_source.html#l00048">testArithmeticalDSSComputerOnSurfels.cpp:48</a></div></div>
<div class="ttc" id="atestClone2_8cpp_html_a15e9592ccc512dc691b46185e6814758"><div class="ttname"><a href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a></div><div class="ttdeci">MyPointD Point</div><div class="ttdef"><b>Definition:</b> <a href="testClone2_8cpp_source.html#l00383">testClone2.cpp:383</a></div></div>
<div class="ttc" id="atestCubicalComplex_8cpp_html_a2b87ed989d2519d025bd5d4fbcbac062"><div class="ttname"><a href="testCubicalComplex_8cpp.html#a2b87ed989d2519d025bd5d4fbcbac062">K</a></div><div class="ttdeci">KSpace K</div><div class="ttdef"><b>Definition:</b> <a href="testCubicalComplex_8cpp_source.html#l00062">testCubicalComplex.cpp:62</a></div></div>
<div class="ttc" id="atestLabelledMap_8cpp_html_ad7bf55b7a17eb27c4ccabe9ae82a0629"><div class="ttname"><a href="testLabelledMap_8cpp.html#ad7bf55b7a17eb27c4ccabe9ae82a0629">display</a></div><div class="ttdeci">void display(ostream &amp;out, const AContainer &amp;C)</div><div class="ttdef"><b>Definition:</b> <a href="testLabelledMap_8cpp_source.html#l00094">testLabelledMap.cpp:94</a></div></div>
<div class="ttc" id="atestProjection_8cpp_html_a1f1a69f8d8b037b72c2160ed12b3ef51"><div class="ttname"><a href="testProjection_8cpp.html#a1f1a69f8d8b037b72c2160ed12b3ef51">domain</a></div><div class="ttdeci">Domain domain</div><div class="ttdef"><b>Definition:</b> <a href="testProjection_8cpp_source.html#l00088">testProjection.cpp:88</a></div></div>
<div class="ttc" id="atestSimpleRandomAccessRangeFromPoint_8cpp_html_a614d1b1c043b31763c1eb50f64666737"><div class="ttname"><a href="testSimpleRandomAccessRangeFromPoint_8cpp.html#a614d1b1c043b31763c1eb50f64666737">image</a></div><div class="ttdeci">Image image(domain)</div></div>
<div class="ttc" id="atestSimpleRandomAccessRangeFromPoint_8cpp_html_acd532b318489cd93df57e0b3d136d050"><div class="ttname"><a href="testSimpleRandomAccessRangeFromPoint_8cpp.html#acd532b318489cd93df57e0b3d136d050">Domain</a></div><div class="ttdeci">HyperRectDomain&lt; Space &gt; Domain</div><div class="ttdef"><b>Definition:</b> <a href="testSimpleRandomAccessRangeFromPoint_8cpp_source.html#l00044">testSimpleRandomAccessRangeFromPoint.cpp:44</a></div></div>
</div><!-- fragment --> </div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Mon Dec 23 2024 13:18:26 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>