<!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/curves/exampleGridCurve3d.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  <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&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&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&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('geometry_2curves_2exampleGridCurve3d_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/curves/exampleGridCurve3d.cpp</div> </div> </div><!--header--> <div class="contents"> <p>This example shows how to use GridCurve as a sequence of 1-scells in a 3d Khalimsky space.</p> <pre class="fragment">$ ./examples/geometry/curves/exampleGridCurve3d </pre><p>Note that the data type you want to display may be passed as argument as follows: </p><pre class="fragment">$ ./examples/geometry/curves/exampleGridCurve3d points </pre><p>This command line produces the following output (points are displayed as voxels):</p> <div class="image"> <img src="exampleGridCurveSinus.png" alt=""/> <div class="caption"> 3d digital curve</div></div> <dl class="section see"><dt>See also</dt><dd><a class="el" href="moduleGridCurveAnalysis.html">Analysis of one-dimensional discrete structures</a></dd></dl> <div class="fragment"><div class="line"> </div> <div class="line"><span class="preprocessor">#include <iostream></span></div> <div class="line"><span class="preprocessor">#include "DGtal/base/Common.h"</span></div> <div class="line"><span class="preprocessor">#include "DGtal/helpers/StdDefs.h"</span></div> <div class="line"><span class="preprocessor">#include "ConfigExamples.h"</span></div> <div class="line"><span class="preprocessor">#include "DGtal/io/viewers/Viewer3D.h"</span></div> <div class="line"><span class="preprocessor">#include "DGtal/geometry/curves/GridCurve.h"</span></div> <div class="line"> </div> <div class="line"><span class="preprocessor">#ifdef WITH_VISU3D_QGLVIEWER</span></div> <div class="line"><span class="preprocessor">#include "DGtal/io/DrawWithDisplay3DModifier.h"</span></div> <div class="line"><span class="preprocessor">#endif</span></div> <div class="line"> </div> <div class="line"> </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>Z3i;</div> <div class="line"> </div> <div class="line"> </div> <div class="line"> </div> <div class="line"><span class="keywordtype">int</span> <a name="a0"></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"> </div> <div class="line"> </div> <div class="line"> <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a name="a1"></a><a class="code" href="classDGtal_1_1Trace.html#ad054990834d2763627166540087a2980">info</a>() << <span class="stringliteral">"exampleGridCurve3d: the type of data to be displayed "</span></div> <div class="line"> << <span class="stringliteral">"may be given as argument as follows: "</span></div> <div class="line"> << argv[0] << <span class="stringliteral">" scells"</span> << endl; </div> <div class="line"> <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#ad054990834d2763627166540087a2980">info</a>() << <span class="stringliteral">"Available types are: gridcurve (default), scells, points, midpoints, arrows"</span> << endl;</div> <div class="line"> </div> <div class="line"> <span class="keywordtype">string</span> type = (argc > 1) ? <span class="keywordtype">string</span>(argv[1]) : <span class="stringliteral">"gridcurve"</span>;</div> <div class="line"> <a class="code" href="namespaceDGtal.html#a8fc7012708b0416880a5c8b12dfdf9dd">trace</a>.<a class="code" href="classDGtal_1_1Trace.html#ad054990834d2763627166540087a2980">info</a>() << <span class="stringliteral">"Chosen type: "</span> << type << endl; </div> <div class="line"> </div> <div class="line"> <span class="comment">//curve</span></div> <div class="line"> <span class="keywordtype">string</span> sinus = examplesPath + <span class="stringliteral">"samples/sinus.dat"</span>;</div> <div class="line"> </div> <div class="line"> <span class="comment">// domain</span></div> <div class="line"> <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> lowerBound = Point::diagonal( -100 );</div> <div class="line"> <a class="code" href="testClone2_8cpp.html#a15e9592ccc512dc691b46185e6814758">Point</a> upperBound = Point::diagonal( 100 );</div> <div class="line"> </div> <div class="line"> <a class="code" href="namespaceDGtal_1_1Z3i.html#a4b7ee43018f9144683fab486eef6f205">K3</a> ks; ks.<a name="a2"></a><a class="code" href="classDGtal_1_1KhalimskySpaceND.html#a15dcbcaae831dd1c36090e6336c177d4">init</a>( lowerBound, upperBound, <span class="keyword">true</span> );</div> <div class="line"> GridCurve<K3> gc( ks );</div> <div class="line"> </div> <div class="line"> fstream inputStream;</div> <div class="line"> inputStream.open (sinus.c_str(), ios::in);</div> <div class="line"> </div> <div class="line"> gc.initFromVectorStream(inputStream);</div> <div class="line"> </div> <div class="line"> inputStream.close();</div> <div class="line"> </div> <div class="line"> <span class="keywordtype">bool</span> flag = <span class="keyword">false</span>;</div> <div class="line"><span class="preprocessor">#ifdef WITH_VISU3D_QGLVIEWER</span></div> <div class="line"> QApplication application(argc,argv);</div> <div class="line"> Viewer3D<Space,K3> viewer(ks);</div> <div class="line"> viewer.show();</div> <div class="line"> </div> <div class="line"> <span class="keywordflow">if</span> (type == <span class="stringliteral">"gridcurve"</span>)</div> <div class="line"> {</div> <div class="line"> viewer << gc;</div> <div class="line"> }</div> <div class="line"> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">"scells"</span>)</div> <div class="line"> {</div> <div class="line"> viewer << gc.getSCellsRange();</div> <div class="line"> }</div> <div class="line"> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">"points"</span>)</div> <div class="line"> {</div> <div class="line"> viewer << gc.getPointsRange();</div> <div class="line"> }</div> <div class="line"> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">"midpoints"</span>)</div> <div class="line"> {</div> <div class="line"> viewer << gc.getMidPointsRange();</div> <div class="line"> }</div> <div class="line"> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">"arrows"</span>)</div> <div class="line"> {</div> <div class="line"> viewer << gc.getArrowsRange();</div> <div class="line"> }</div> <div class="line"> <span class="keywordflow">else</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#ad054990834d2763627166540087a2980">info</a>() << <span class="stringliteral">"Display type not known."</span> << std::endl;</div> <div class="line"> }</div> <div class="line"> viewer << Viewer3D<Space,K3>::updateDisplay;</div> <div class="line"> flag = application.exec();</div> <div class="line"><span class="preprocessor">#endif</span></div> <div class="line"> </div> <div class="line"> <span class="keywordflow">return</span> flag;</div> <div class="line">}</div> <div class="line"><span class="comment">// //</span></div> <div class="ttc" id="aclassDGtal_1_1KhalimskySpaceND_html_a15dcbcaae831dd1c36090e6336c177d4"><div class="ttname"><a href="classDGtal_1_1KhalimskySpaceND.html#a15dcbcaae831dd1c36090e6336c177d4">DGtal::KhalimskySpaceND::init</a></div><div class="ttdeci">bool init(const Point &lower, const Point &upper, bool isClosed)</div><div class="ttdoc">Specifies the upper and lower bounds for the maximal cells in this space.</div></div> <div class="ttc" id="aclassDGtal_1_1Trace_html_ad054990834d2763627166540087a2980"><div class="ttname"><a href="classDGtal_1_1Trace.html#ad054990834d2763627166540087a2980">DGtal::Trace::info</a></div><div class="ttdeci">std::ostream & info()</div></div> <div class="ttc" id="anamespaceDGtal_1_1Z3i_html_a4b7ee43018f9144683fab486eef6f205"><div class="ttname"><a href="namespaceDGtal_1_1Z3i.html#a4b7ee43018f9144683fab486eef6f205">DGtal::Z3i::K3</a></div><div class="ttdeci">KSpace K3</div><div class="ttdef"><b>Definition:</b> <a href="StdDefs_8h_source.html#l00147">StdDefs.h:147</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="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><!-- 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>