<!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> > <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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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> | <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pri-methods">Private Member Functions</a> | <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 <<a class="el" href="_c_octree_point_renderer_8h_source.html">mrpt/opengl/COctreePointRenderer.h</a>></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\< CPointCloud \>" 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\< CPointCloudColoured \>" 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  </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"> </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  </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  </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"> </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"> </td><td class="mdescRight">Default ctor. <a href="#aeb39312bcb21f9c90b4a13b077c478d4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </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> &)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy ctor. <a href="#a8c7993b497dc188c9371cd731f7f6303"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </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"> </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 </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"> </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 </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"> </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 </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> &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"> </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 </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> &o) const </td></tr> <tr><td class="mdescLeft"> </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 & </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 & </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 </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"> </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 </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> &ri) const </td></tr> <tr><td class="mdescLeft"> </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 </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> &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"> </td><td class="mdescRight">Render a given node. <a href="#a70f6da062de75bac406c661aa730279b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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 </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>< <a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_render_queue_element.html">TRenderQueueElement</a> > </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"> </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 </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>< <a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_node.html">TNode</a> > </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"> </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 </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 </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> </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 & 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 &)" --> <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> & </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< CPointCloudColoured >::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 </td> <td class="paramname"><em>node_id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const bool </td> <td class="paramname"><em>all_pts</em> = <code>false</code> </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< CPointCloudColoured >::internal_octree_assure_uptodate()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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< CPointCloudColoured >::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 &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> & </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& 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< CPointCloudColoured >::octree_render()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::internal_recursive_split()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00570">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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& 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 &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> & </td> <td class="paramname"><em>gl_bb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </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> </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> </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 &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 </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> & </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> </td> <td class="paramname"><em>cr_px</em>[8], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>cr_z</em>[8], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </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 </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 </td> <td class="paramname"><em>approx_area_sqpixels</em> = <code>0</code> </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< CPointCloudColoured >::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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 &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> & </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< CPointCloudColoured >::internal_octree_assure_uptodate()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00544">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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><<a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_node.html">TNode</a>> <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< CPointCloudColoured >::octree_render()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::octree_recursive_render()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00415">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::internal_octree_assure_uptodate()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00430">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::internal_recursive_split()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00538">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::octree_get_node_count()</a>, <a class="el" href="_c_octree_point_renderer_8h_source.html#l00548">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::octree_get_graphics_boundingboxes()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00570">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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><<a class="el" href="structmrpt_1_1opengl_1_1_c_octree_point_renderer_1_1_t_render_queue_element.html">TRenderQueueElement</a>> <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< CPointCloudColoured >::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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< CPointCloudColoured >::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00541">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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< CPointCloudColoured >::octree_render()</a>, and <a class="el" href="_c_octree_point_renderer_8h_source.html#l00220">mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::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>