Main MRPT website > C++ reference
MRPT logo
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes

mrpt::opengl::COctreePointRenderer< Derived > Class Template Reference


Detailed Description

template<class Derived>
class mrpt::opengl::COctreePointRenderer< Derived >

Template class that implements the data structure and algorithms for Octree-based efficient rendering.

See also:
mrpt::opengl::CPointCloud, mrpt::opengl::CPointCloudColoured, http://www.mrpt.org/Efficiently_rendering_point_clouds_of_millions_of_points

Definition at line 62 of file COctreePointRenderer.h.

#include <mrpt/opengl/COctreePointRenderer.h>

Inheritance diagram for mrpt::opengl::COctreePointRenderer< Derived >:
Inheritance graph
[legend]

List of all members.

Classes

struct  TNode
 The structure for each octree spatial node. More...
struct  TRenderQueueElement

Public Types

enum  { OCTREE_ROOT_NODE = 0 }

Public Member Functions

 COctreePointRenderer ()
 Default ctor.
 COctreePointRenderer (const COctreePointRenderer &)
 Copy ctor.
size_t octree_get_node_count () const
 Return the number of octree nodes (all of them, including the empty ones)
size_t octree_get_visible_nodes () const
 Return the number of visible octree nodes in the last render event.
void octree_mark_as_outdated ()
 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)
void octree_get_graphics_boundingboxes (mrpt::opengl::CSetOfObjects &gl_bb, const double lines_width=1, const TColorf lines_color=TColorf(1, 1, 1)) const
 Returns a graphical representation of all the bounding boxes of the octree (leaf) nodes.
void octree_debug_dump_tree (std::ostream &o) const
 Used for debug only.

Protected Member Functions

Derived & octree_derived ()
const Derived & octree_derived () const
void octree_assure_uptodate () const
 Must be called at children class' render() previously to octree_render()
void octree_render (const mrpt::opengl::CRenderizable::TRenderInfo &ri) const
 Render the entire octree recursively.

Private Member Functions

void octree_recursive_render (size_t node_idx, const mrpt::opengl::CRenderizable::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
 Render a given node.
void internal_octree_assure_uptodate ()
void internal_recursive_split (const size_t node_id, const bool all_pts=false)

Private Attributes

std::vector< TRenderQueueElementm_render_queue
 The list of elements that really are visible and will be rendered.
bool m_octree_has_to_rebuild_all
std::deque< TNodem_octree_nodes
 First one [0] is always the root node.
volatile size_t m_visible_octree_nodes
volatile size_t m_visible_octree_nodes_ongoing

Member Enumeration Documentation

template<class Derived>
anonymous enum
Enumerator:
OCTREE_ROOT_NODE 

Definition at line 78 of file COctreePointRenderer.h.


Constructor & Destructor Documentation

template<class Derived>
mrpt::opengl::COctreePointRenderer< Derived >::COctreePointRenderer ( ) [inline]

Default ctor.

Definition at line 66 of file COctreePointRenderer.h.

template<class Derived>
mrpt::opengl::COctreePointRenderer< Derived >::COctreePointRenderer ( const COctreePointRenderer< Derived > &  ) [inline]

Copy ctor.

Definition at line 73 of file COctreePointRenderer.h.


Member Function Documentation

template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::internal_octree_assure_uptodate ( ) [inline, private]
template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::internal_recursive_split ( const size_t  node_id,
const bool  all_pts = false 
) [inline, private]
template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::octree_assure_uptodate ( ) const [inline, protected]

Must be called at children class' render() previously to octree_render()

Definition at line 86 of file COctreePointRenderer.h.

Referenced by mrpt::opengl::COctreePointRenderer< CPointCloudColoured >::octree_get_graphics_boundingboxes().

template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::octree_debug_dump_tree ( std::ostream &  o) const [inline]

Used for debug only.

Definition at line 567 of file COctreePointRenderer.h.

template<class Derived>
const Derived& mrpt::opengl::COctreePointRenderer< Derived >::octree_derived ( ) const [inline, protected]

Definition at line 83 of file COctreePointRenderer.h.

template<class Derived>
Derived& mrpt::opengl::COctreePointRenderer< Derived >::octree_derived ( ) [inline, protected]
template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::octree_get_graphics_boundingboxes ( mrpt::opengl::CSetOfObjects gl_bb,
const double  lines_width = 1,
const TColorf  lines_color = TColorf(1,1,1) 
) const [inline]

Returns a graphical representation of all the bounding boxes of the octree (leaf) nodes.

Definition at line 545 of file COctreePointRenderer.h.

template<class Derived>
size_t mrpt::opengl::COctreePointRenderer< Derived >::octree_get_node_count ( ) const [inline]

Return the number of octree nodes (all of them, including the empty ones)

See also:
octree_get_nonempty_node_count

Definition at line 535 of file COctreePointRenderer.h.

template<class Derived>
size_t mrpt::opengl::COctreePointRenderer< Derived >::octree_get_visible_nodes ( ) const [inline]

Return the number of visible octree nodes in the last render event.

Definition at line 538 of file COctreePointRenderer.h.

template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::octree_mark_as_outdated ( ) [inline]

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)

Definition at line 541 of file COctreePointRenderer.h.

template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::octree_recursive_render ( size_t  node_idx,
const mrpt::opengl::CRenderizable::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 [inline, private]
template<class Derived>
void mrpt::opengl::COctreePointRenderer< Derived >::octree_render ( const mrpt::opengl::CRenderizable::TRenderInfo ri) const [inline, protected]

Render the entire octree recursively.

Should be called from children's render() method.

Definition at line 94 of file COctreePointRenderer.h.


Member Data Documentation

template<class Derived>
bool mrpt::opengl::COctreePointRenderer< Derived >::m_octree_has_to_rebuild_all [private]
template<class Derived>
std::deque<TNode> mrpt::opengl::COctreePointRenderer< Derived >::m_octree_nodes [private]
template<class Derived>
std::vector<TRenderQueueElement> mrpt::opengl::COctreePointRenderer< Derived >::m_render_queue [mutable, private]
template<class Derived>
volatile size_t mrpt::opengl::COctreePointRenderer< Derived >::m_visible_octree_nodes [mutable, private]
template<class Derived>
volatile size_t mrpt::opengl::COctreePointRenderer< Derived >::m_visible_octree_nodes_ongoing [mutable, private]



Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN: at Sat Mar 26 06:40:17 UTC 2011