Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 4447

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::opengl::COctreePointRenderer Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1opengl.html">opengl</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html">COctreePointRenderer</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::opengl::COctreePointRenderer Class Reference<div class="ingroups"><a class="el" href="group__mrpt__opengl__grp.html">[mrpt-opengl]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::opengl::COctreePointRenderer" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Template class that implements the data structure and algorithms for Octree-based efficient rendering. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1opengl_1_1_c_point_cloud.html" title="A cloud of points, all with the same color or each depending on its value along a particular coordina...">mrpt::opengl::CPointCloud</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_point_cloud_coloured.html" title="A cloud of points, each one with an individual colour (R,G,B).">mrpt::opengl::CPointCloudColoured</a>, <a href="http://www.mrpt.org/Efficiently_rendering_point_clouds_of_millions_of_points">http://www.mrpt.org/Efficiently_rendering_point_clouds_of_millions_of_points</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_octree_point_renderer_8h_source.html">mrpt/opengl/COctreePointRenderer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::opengl::COctreePointRenderer:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1opengl_1_1_c_octree_point_renderer__inherit__graph.png" border="0" usemap="#mrpt_1_1opengl_1_1_c_octree_point_renderer_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1opengl_1_1_c_octree_point_renderer_inherit__map" id="mrpt_1_1opengl_1_1_c_octree_point_renderer_inherit__map">
<area shape="rect" id="node3" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html" title="mrpt::opengl::COctreePointRenderer\&lt; CPointCloud \&gt;" alt="" coords="469,5,801,32"/><area shape="rect" id="node7" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html" title="mrpt::opengl::COctreePointRenderer\&lt; CPointCloudColoured \&gt;" alt="" coords="443,56,827,83"/><area shape="rect" id="node5" href="classmrpt_1_1opengl_1_1_c_point_cloud.html" title="A cloud of points, all with the same color or each depending on its value along a particular coordina..." alt="" coords="904,5,1080,32"/><area shape="rect" id="node9" href="classmrpt_1_1opengl_1_1_c_point_cloud_coloured.html" title="A cloud of points, each one with an individual colour (R,G,B)." alt="" coords="878,56,1106,83"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1opengl_1_1_c_octree_point_renderer-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_node.html">TNode</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure for each octree spatial node.  <a href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_node.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_render_queue_element.html">TRenderQueueElement</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a99e36b1d4761711b9e3a65c5384dbd67a2a27a3888dc519bc2fa39d82bf140c3f">OCTREE_ROOT_NODE</a> =  0
 }</td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#aeb39312bcb21f9c90b4a13b077c478d4">COctreePointRenderer</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default ctor.  <a href="#aeb39312bcb21f9c90b4a13b077c478d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a8c7993b497dc188c9371cd731f7f6303">COctreePointRenderer</a> (const <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html">COctreePointRenderer</a> &amp;)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy ctor.  <a href="#a8c7993b497dc188c9371cd731f7f6303"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a97df46c4bf3b5d805bae5e83df9204f5">octree_get_node_count</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of octree nodes (all of them, including the empty ones)  <a href="#a97df46c4bf3b5d805bae5e83df9204f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a988e5850b856c11e1ffa09f56527aa98">octree_get_visible_nodes</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of visible octree nodes in the last render event.  <a href="#a988e5850b856c11e1ffa09f56527aa98"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a8748ea57a6ca82f31c9d8b0ca213ac4d">octree_mark_as_outdated</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called from the derived class (or the user) to indicate we have/want to rebuild the entire node tree (for example, after modifying the point cloud or any global octree parameter)  <a href="#a8748ea57a6ca82f31c9d8b0ca213ac4d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a795da6fcc74d69fe6765b0936c1e94d0">octree_get_graphics_boundingboxes</a> (<a class="el" href="classmrpt_1_1opengl_1_1_c_set_of_objects.html">mrpt::opengl::CSetOfObjects</a> &amp;gl_bb, const double lines_width=1, const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">TColorf</a> lines_color=<a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">TColorf</a>(1, 1, 1)) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a graphical representation of all the bounding boxes of the octree (leaf) nodes.  <a href="#a795da6fcc74d69fe6765b0936c1e94d0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#aae50bbc3010e571e293e7323452a8628">octree_debug_dump_tree</a> (<a class="el" href="classstd_1_1ostream.html">std::ostream</a> &amp;o) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for debug only.  <a href="#aae50bbc3010e571e293e7323452a8628"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Derived &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a951796ae13d3ac041025ae62989d79ee">octree_derived</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const Derived &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a6967d37a20c9dabc1670eeaa48b069fa">octree_derived</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#ad17579453783a60bc9083b55ece20878">octree_assure_uptodate</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Must be called at children class' render() previously to <em><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#aacbe51a067db75dcb1f9cef10a18417b" title="Render the entire octree recursively.">octree_render()</a></em>  <a href="#ad17579453783a60bc9083b55ece20878"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#aacbe51a067db75dcb1f9cef10a18417b">octree_render</a> (const <a class="el" href="structmrpt_1_1opengl_1_1gl__utils_1_1_t_render_info.html">mrpt::opengl::gl_utils::TRenderInfo</a> &amp;ri) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the entire octree recursively.  <a href="#aacbe51a067db75dcb1f9cef10a18417b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a70f6da062de75bac406c661aa730279b">octree_recursive_render</a> (size_t node_idx, const <a class="el" href="structmrpt_1_1opengl_1_1gl__utils_1_1_t_render_info.html">mrpt::opengl::gl_utils::TRenderInfo</a> &amp;ri, <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">TPixelCoordf</a> cr_px[8], float cr_z[8], bool corners_are_all_computed=true, bool trust_me_youre_visible=false, float approx_area_sqpixels=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Render a given node.  <a href="#a70f6da062de75bac406c661aa730279b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a6cc60748fe9e4a3244ba02f8db032a41">internal_octree_assure_uptodate</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a29f0533f23f363cc9a2745b623acea34">internal_recursive_split</a> (const size_t node_id, const bool all_pts=false)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_render_queue_element.html">TRenderQueueElement</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#ad991caa8577147e36a44b3bc75e9b069">m_render_queue</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of elements that really are visible and will be rendered.  <a href="#ad991caa8577147e36a44b3bc75e9b069"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a5ac57f1f2a8d8f08ae6741da46c9f0b9">m_octree_has_to_rebuild_all</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1deque.html">std::deque</a>&lt; <a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_node.html">TNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a665267aefee84da6bdd42bd80b374919">m_octree_nodes</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">First one [0] is always the root node.  <a href="#a665267aefee84da6bdd42bd80b374919"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#abf7a40869dc47c05a02e4b5cfad2f6a4">m_visible_octree_nodes</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">volatile size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a6aa835ad817877cb040b89aae630b331">m_visible_octree_nodes_ongoing</a></td></tr>
</table>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a99e36b1d4761711b9e3a65c5384dbd67"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::@55" ref="a99e36b1d4761711b9e3a65c5384dbd67" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a99e36b1d4761711b9e3a65c5384dbd67a2a27a3888dc519bc2fa39d82bf140c3f"></a><!-- doxytag: member="OCTREE_ROOT_NODE" ref="a99e36b1d4761711b9e3a65c5384dbd67a2a27a3888dc519bc2fa39d82bf140c3f" args="" -->OCTREE_ROOT_NODE</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00081">81</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aeb39312bcb21f9c90b4a13b077c478d4"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::COctreePointRenderer" ref="aeb39312bcb21f9c90b4a13b077c478d4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::opengl::COctreePointRenderer::COctreePointRenderer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default ctor. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00069">69</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c7993b497dc188c9371cd731f7f6303"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::COctreePointRenderer" ref="a8c7993b497dc188c9371cd731f7f6303" args="(const COctreePointRenderer &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::opengl::COctreePointRenderer::COctreePointRenderer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html">COctreePointRenderer</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy ctor. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00076">76</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6cc60748fe9e4a3244ba02f8db032a41"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::internal_octree_assure_uptodate" ref="a6cc60748fe9e4a3244ba02f8db032a41" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::internal_octree_assure_uptodate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00415">415</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00089">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_assure_uptodate()</a>.</p>

</div>
</div>
<a class="anchor" id="a29f0533f23f363cc9a2745b623acea34"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::internal_recursive_split" ref="a29f0533f23f363cc9a2745b623acea34" args="(const size_t node_id, const bool all_pts=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::internal_recursive_split </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"><em>node_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>all_pts</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">430</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00415">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::internal_octree_assure_uptodate()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::internal_recursive_split()</a>.</p>

</div>
</div>
<a class="anchor" id="ad17579453783a60bc9083b55ece20878"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_assure_uptodate" ref="ad17579453783a60bc9083b55ece20878" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::octree_assure_uptodate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Must be called at children class' render() previously to <em><a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#aacbe51a067db75dcb1f9cef10a18417b" title="Render the entire octree recursively.">octree_render()</a></em> </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00089">89</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00548">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_get_graphics_boundingboxes()</a>.</p>

</div>
</div>
<a class="anchor" id="aae50bbc3010e571e293e7323452a8628"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_debug_dump_tree" ref="aae50bbc3010e571e293e7323452a8628" args="(std::ostream &amp;o) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::octree_debug_dump_tree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1ostream.html">std::ostream</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used for debug only. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00570">570</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a951796ae13d3ac041025ae62989d79ee"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_derived" ref="a951796ae13d3ac041025ae62989d79ee" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Derived&amp; mrpt::opengl::COctreePointRenderer::octree_derived </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00085">85</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00097">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_render()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::internal_recursive_split()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00570">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_debug_dump_tree()</a>.</p>

</div>
</div>
<a class="anchor" id="a6967d37a20c9dabc1670eeaa48b069fa"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_derived" ref="a6967d37a20c9dabc1670eeaa48b069fa" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const Derived&amp; mrpt::opengl::COctreePointRenderer::octree_derived </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00086">86</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a795da6fcc74d69fe6765b0936c1e94d0"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_get_graphics_boundingboxes" ref="a795da6fcc74d69fe6765b0936c1e94d0" args="(mrpt::opengl::CSetOfObjects &amp;gl_bb, const double lines_width=1, const TColorf lines_color=TColorf(1, 1, 1)) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::octree_get_graphics_boundingboxes </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1opengl_1_1_c_set_of_objects.html">mrpt::opengl::CSetOfObjects</a> &amp;&#160;</td>
          <td class="paramname"><em>gl_bb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>lines_width</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">TColorf</a>&#160;</td>
          <td class="paramname"><em>lines_color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_colorf.html">TColorf</a>(1,1,1)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a graphical representation of all the bounding boxes of the octree (leaf) nodes. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00548">548</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a97df46c4bf3b5d805bae5e83df9204f5"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_get_node_count" ref="a97df46c4bf3b5d805bae5e83df9204f5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::opengl::COctreePointRenderer::octree_get_node_count </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number of octree nodes (all of them, including the empty ones) </p>
<dl class="see"><dt><b>See also:</b></dt><dd>octree_get_nonempty_node_count </dd></dl>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00538">538</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a988e5850b856c11e1ffa09f56527aa98"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_get_visible_nodes" ref="a988e5850b856c11e1ffa09f56527aa98" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::opengl::COctreePointRenderer::octree_get_visible_nodes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number of visible octree nodes in the last render event. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00541">541</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8748ea57a6ca82f31c9d8b0ca213ac4d"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_mark_as_outdated" ref="a8748ea57a6ca82f31c9d8b0ca213ac4d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::octree_mark_as_outdated </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called from the derived class (or the user) to indicate we have/want to rebuild the entire node tree (for example, after modifying the point cloud or any global octree parameter) </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00544">544</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a70f6da062de75bac406c661aa730279b"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_recursive_render" ref="a70f6da062de75bac406c661aa730279b" args="(size_t node_idx, const mrpt::opengl::gl_utils::TRenderInfo &amp;ri, TPixelCoordf cr_px[8], float cr_z[8], bool corners_are_all_computed=true, bool trust_me_youre_visible=false, float approx_area_sqpixels=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::octree_recursive_render </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>node_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1opengl_1_1gl__utils_1_1_t_render_info.html">mrpt::opengl::gl_utils::TRenderInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>ri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">TPixelCoordf</a>&#160;</td>
          <td class="paramname"><em>cr_px</em>[8], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>cr_z</em>[8], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>corners_are_all_computed</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>trust_me_youre_visible</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>approx_area_sqpixels</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Render a given node. </p>

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

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00097">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_recursive_render()</a>.</p>

</div>
</div>
<a class="anchor" id="aacbe51a067db75dcb1f9cef10a18417b"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::octree_render" ref="aacbe51a067db75dcb1f9cef10a18417b" args="(const mrpt::opengl::gl_utils::TRenderInfo &amp;ri) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::opengl::COctreePointRenderer::octree_render </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1opengl_1_1gl__utils_1_1_t_render_info.html">mrpt::opengl::gl_utils::TRenderInfo</a> &amp;&#160;</td>
          <td class="paramname"><em>ri</em></td><td>)</td>
          <td> const<code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Render the entire octree recursively. </p>
<p>Should be called from children's render() method. </p>

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

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a5ac57f1f2a8d8f08ae6741da46c9f0b9"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::m_octree_has_to_rebuild_all" ref="a5ac57f1f2a8d8f08ae6741da46c9f0b9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a5ac57f1f2a8d8f08ae6741da46c9f0b9">mrpt::opengl::COctreePointRenderer::m_octree_has_to_rebuild_all</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00213">213</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00415">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::internal_octree_assure_uptodate()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00544">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_mark_as_outdated()</a>.</p>

</div>
</div>
<a class="anchor" id="a665267aefee84da6bdd42bd80b374919"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::m_octree_nodes" ref="a665267aefee84da6bdd42bd80b374919" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1deque.html">std::deque</a>&lt;<a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_node.html">TNode</a>&gt; <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a665267aefee84da6bdd42bd80b374919">mrpt::opengl::COctreePointRenderer::m_octree_nodes</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>First one [0] is always the root node. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00214">214</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00097">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_render()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_recursive_render()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00415">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::internal_octree_assure_uptodate()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::internal_recursive_split()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00538">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_get_node_count()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00548">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_get_graphics_boundingboxes()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00570">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_debug_dump_tree()</a>.</p>

</div>
</div>
<a class="anchor" id="ad991caa8577147e36a44b3bc75e9b069"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::m_render_queue" ref="ad991caa8577147e36a44b3bc75e9b069" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;<a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_render_queue_element.html">TRenderQueueElement</a>&gt; <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#ad991caa8577147e36a44b3bc75e9b069">mrpt::opengl::COctreePointRenderer::m_render_queue</a><code> [mutable, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The list of elements that really are visible and will be rendered. </p>

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00210">210</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00097">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_recursive_render()</a>.</p>

</div>
</div>
<a class="anchor" id="abf7a40869dc47c05a02e4b5cfad2f6a4"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::m_visible_octree_nodes" ref="abf7a40869dc47c05a02e4b5cfad2f6a4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile size_t <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#abf7a40869dc47c05a02e4b5cfad2f6a4">mrpt::opengl::COctreePointRenderer::m_visible_octree_nodes</a><code> [mutable, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00217">217</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00097">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00541">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_get_visible_nodes()</a>.</p>

</div>
</div>
<a class="anchor" id="a6aa835ad817877cb040b89aae630b331"></a><!-- doxytag: member="mrpt::opengl::COctreePointRenderer::m_visible_octree_nodes_ongoing" ref="a6aa835ad817877cb040b89aae630b331" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">volatile size_t <a class="el" href="classmrpt_1_1opengl_1_1_c_octree_point_renderer.html#a6aa835ad817877cb040b89aae630b331">mrpt::opengl::COctreePointRenderer::m_visible_octree_nodes_ongoing</a><code> [mutable, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_octree_point_renderer_8h_source.html#l00217">217</a> of file <a class="el" href="_c_octree_point_renderer_8h_source.html">COctreePointRenderer.h</a>.</p>

<p>Referenced by <a class="el" href="_c_octree_point_renderer_8h_source.html#l00097">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer&lt; CPointCloudColoured &gt;::octree_recursive_render()</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>