pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT > Class Template Reference
Module outofcore

OutofcoreOctreeBaseNode Class internally representing nodes of an outofcore octree, with accessors to its data via the pcl::outofcore::OutofcoreOctreeDiskContainer class or pcl::outofcore::OutofcoreOctreeRamContainer class, whichever it is templated against. More...

`#include <pcl/outofcore/octree_base_node.h>`

Inheritance diagram for pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >:

## Public Types

typedef OutofcoreOctreeBase< OutofcoreOctreeDiskContainer< PointT >, PointT > | octree_disk
typedef OutofcoreOctreeBaseNode< OutofcoreOctreeDiskContainer< PointT >, PointT > | octree_disk_node
typedef std::vector< PointT, Eigen::aligned_allocator< PointT > > | AlignedPointTVector
typedef pcl::octree::node_type_t | node_type_t

## Public Member Functions

| OutofcoreOctreeBaseNode ()
| Empty constructor; sets pointers for children and for bounding boxes to 0. More...
| OutofcoreOctreeBaseNode (const Eigen::Vector3d &bb_min, const Eigen::Vector3d &bb_max, OutofcoreOctreeBase< ContainerT, PointT > *const tree, const boost::filesystem::path &root_name)
| Create root node and directory. More...
virtual | ~OutofcoreOctreeBaseNode ()
| Will recursively delete all children calling recFreeChildrein. More...
virtual void | getBoundingBox (Eigen::Vector3d &min_bb, Eigen::Vector3d &max_bb) const
| gets the minimum and maximum corner of the bounding box represented by this node More...
const boost::filesystem::path & | getPCDFilename () const
const boost::filesystem::path & | getMetadataFilename () const
void | queryFrustum (const double planes[24], std::list< std::string > &file_names)
void | queryFrustum (const double planes[24], std::list< std::string > &file_names, const boost::uint32_t query_depth, const bool skip_vfc_check=false)
void | queryFrustum (const double planes[24], const Eigen::Vector3d &eye, const Eigen::Matrix4d &view_projection_matrix, std::list< std::string > &file_names, const boost::uint32_t query_depth, const bool skip_vfc_check=false)
virtual void | queryBBIncludes (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, size_t query_depth, AlignedPointTVector &dst)
| Recursively add points that fall into the queried bounding box up to the query_depth. More...
virtual void | queryBBIncludes (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, size_t query_depth, const pcl::PCLPointCloud2::Ptr &dst_blob)
| Recursively add points that fall into the queried bounding box up to the query_depth. More...
virtual void | queryBBIncludes_subsample (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, boost::uint64_t query_depth, const double percent, AlignedPointTVector &v)
| Recursively add points that fall into the queried bounding box up to the query_depth. More...
virtual void | queryBBIncludes_subsample (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, boost::uint64_t query_depth, const pcl::PCLPointCloud2::Ptr &dst_blob, double percent=1.0)
virtual void | queryBBIntersects (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, const boost::uint32_t query_depth, std::list< std::string > &file_names)
| Recursive acquires PCD paths to any node with which the queried bounding box intersects (at query_depth only). More...
virtual void | printBoundingBox (const size_t query_depth) const
| Write the voxel size to stdout at `query_depth`. More...
virtual boost::uint64_t | addDataToLeaf (const AlignedPointTVector &p, const bool skip_bb_check=true)
| add point to this node if we are a leaf, or find the leaf below us that is supposed to take the point More...
virtual boost::uint64_t | addDataToLeaf (const std::vector< const PointT *> &p, const bool skip_bb_check=true)
virtual boost::uint64_t | addPointCloud (const pcl::PCLPointCloud2::Ptr &input_cloud, const bool skip_bb_check=false)
| Add a single PCLPointCloud2 object into the octree. More...
virtual boost::uint64_t | addPointCloud_and_genLOD (const pcl::PCLPointCloud2::Ptr input_cloud)
| Add a single PCLPointCloud2 into the octree and build the subsampled LOD during construction; this method of LOD construction is not multiresolution. More...
virtual boost::uint64_t | addDataToLeaf_and_genLOD (const AlignedPointTVector &p, const bool skip_bb_check)
| Recursively add points to the leaf and children subsampling LODs on the way down. More...
void | writeVPythonVisual (std::ofstream &file)
| Write a python visual script to file. More...
virtual int | read (pcl::PCLPointCloud2::Ptr &output_cloud)
virtual node_type_t | getNodeType () const
| Pure virtual method for receiving the type of octree node (branch or leaf) More...
virtual OutofcoreOctreeBaseNode * | deepCopy () const
| Pure virtual method to perform a deep copy of the octree. More...
virtual size_t | getDepth () const
virtual size_t | getNumChildren () const
| Returns the total number of children on disk. More...
virtual size_t | getNumLoadedChildren () const
| Count loaded chilren. More...
virtual OutofcoreOctreeBaseNode * | getChildPtr (size_t index_arg) const
| Returns a pointer to the child in octant index_arg. More...
virtual boost::uint64_t | getDataSize () const
| Gets the number of points available in the PCD file. More...
virtual void | clearData ()
Public Member Functions inherited from pcl::octree::OctreeNode
| OctreeNode ()
virtual | ~OctreeNode ()

## Static Public Attributes

static const std::string | node_index_basename = "node"
static const std::string | node_container_basename = "node"
static const std::string | node_index_extension = ".oct_idx"
static const std::string | node_container_extension = ".oct_dat"
static const double | sample_percent_ = .125

## Protected Member Functions

| OutofcoreOctreeBaseNode (const boost::filesystem::path &directory_path, OutofcoreOctreeBaseNode< ContainerT, PointT > *super, bool load_all)
| Load from disk If creating root, path is full name. More...
void | init_root_node (const Eigen::Vector3d &bb_min, const Eigen::Vector3d &bb_max, OutofcoreOctreeBase< ContainerT, PointT > *const tree, const boost::filesystem::path &rootname)
| Create root node and directory. More...
| OutofcoreOctreeBaseNode (const OutofcoreOctreeBaseNode &rval)
| no copy construction right now More...
OutofcoreOctreeBaseNode & | operator= (const OutofcoreOctreeBaseNode &rval)
| Operator= is not implemented. More...
virtual size_t | countNumChildren () const
| Counts the number of child directories on disk; used to update num_children_. More...
virtual size_t | countNumLoadedChildren () const
| Counts the number of loaded chilren by testing the `children_` array; used to update num_loaded_chilren_ internally. More...
void | saveIdx (bool recursive)
| Save node's metadata to file. More...
void | randomSample (const AlignedPointTVector &p, AlignedPointTVector &insertBuff, const bool skip_bb_check)
| Randomly sample point data. More...
void | subdividePoints (const AlignedPointTVector &p, std::vector< AlignedPointTVector > &c, const bool skip_bb_check)
| Subdivide points to pass to child nodes. More...
void | subdividePoint (const PointT &point, std::vector< AlignedPointTVector > &c)
| Subdivide a single point into a specific child node. More...
boost::uint64_t | addDataAtMaxDepth (const AlignedPointTVector &p, const bool skip_bb_check=true)
| Add data to the leaf when at max depth of tree. More...
boost::uint64_t | addDataAtMaxDepth (const pcl::PCLPointCloud2::Ptr input_cloud, const bool skip_bb_check=true)
| Add data to the leaf when at max depth of tree. More...
bool | intersectsWithBoundingBox (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb) const
| Tests whether the input bounding box intersects with the current node's bounding box. More...
bool | inBoundingBox (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb) const
| Tests whether the input bounding box falls inclusively within this node's bounding box. More...
bool | pointInBoundingBox (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, const Eigen::Vector3d &point)
| Tests whether `point` falls within the input bounding box. More...
bool | pointInBoundingBox (const PointT &p) const
| Tests if specified point is within bounds of current node's bounding box. More...
void | createChild (const std::size_t idx)
| Creates child node `idx`. More...
void | saveMetadataToFile (const boost::filesystem::path &path)
| Write JSON metadata for this node to file. More...
void | recFreeChildren ()
| Method which recursively free children of this node. More...
boost::uint64_t | size () const
| Number of points in the payload. More...
void | flushToDiskRecursive ()
void | loadFromFile (const boost::filesystem::path &path, OutofcoreOctreeBaseNode *super)
| Loads the nodes metadata from the JSON file. More...
void | convertToXYZRecursive ()
| Recursively converts data files to ascii XZY files. More...
| OutofcoreOctreeBaseNode (const Eigen::Vector3d &bb_min, const Eigen::Vector3d &bb_max, const char *dir, OutofcoreOctreeBaseNode< ContainerT, PointT > *super)
| Private constructor used for children. More...
void | copyAllCurrentAndChildPointsRec (std::list< PointT > &v)
| Copies points from this and all children into a single point container (std::list) More...
void | copyAllCurrentAndChildPointsRec_sub (std::list< PointT > &v, const double percent)
bool | hasUnloadedChildren () const
| Returns whether or not a node has unloaded children data. More...
virtual void | loadChildren (bool recursive)
| Load nodes child data creating new nodes for each. More...
void | getOccupiedVoxelCentersRecursive (AlignedPointTVector &voxel_centers, const size_t query_depth)
| Gets a vector of occupied voxel centers. More...
void | getOccupiedVoxelCentersRecursive (std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &voxel_centers, const size_t query_depth)
| Gets a vector of occupied voxel centers. More...
void | sortOctantIndices (const pcl::PCLPointCloud2::Ptr &input_cloud, std::vector< std::vector< int > > &indices, const Eigen::Vector3d &mid_xyz)
| Sorts the indices based on x,y,z fields and pushes the index into the proper octant's vector; This could be overloaded with a parallelized implementation. More...
void | enlargeToCube (Eigen::Vector3d &bb_min, Eigen::Vector3d &bb_max)
| Enlarges the shortest two sidelengths of the bounding box to a cubic shape; operation is done in place. More...

## Static Protected Member Functions

static bool | pointInBoundingBox (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, const PointT &p)
| Tests whether `p` falls within the input bounding box. More...
static bool | pointInBoundingBox (const Eigen::Vector3d &min_bb, const Eigen::Vector3d &max_bb, const double x, const double y, const double z)
| Tests whether `x`, `y`, and `z` fall within the input bounding box. More...

## Protected Attributes

OutofcoreOctreeBase< ContainerT, PointT > * | m_tree_
| The tree we belong to. More...
OutofcoreOctreeBaseNode * | root_node_
| The root node of the tree we belong to. More...
OutofcoreOctreeBaseNode * | parent_
| super-node More...
size_t | depth_
| Depth in the tree, root is 0, root's children are 1, ... More...
std::vector< OutofcoreOctreeBaseNode * > | children_
| The children of this node. More...
uint64_t | num_children_
| Number of children on disk. More...
uint64_t | num_loaded_children_
| Number of loaded children this node has. More...
boost::shared_ptr< ContainerT > | payload_
| what holds the points. More...
OutofcoreOctreeNodeMetadata::Ptr | node_metadata_

## Static Protected Attributes

static boost::mutex | rng_mutex_
| Random number generator mutex. More...
static boost::mt19937 | rand_gen_
| Mersenne Twister: A 623-dimensionally equidistributed uniform pseudo-random number generator. More...
static const boost::uint32_t | rngseed = 0xAABBCCDD
| Random number generator seed. More...
static const std::string | pcd_extension = ".pcd"
| Extension for this class to find the pcd files on disk. More...

## Friends

class | OutofcoreOctreeBase< ContainerT, PointT >
OutofcoreOctreeBaseNode< ContainerT, PointT > * | makenode_norec (const boost::filesystem::path &path, OutofcoreOctreeBaseNode< ContainerT, PointT > *super)
| Non-class function which creates a single child leaf; used with queryBBIntersects_noload to avoid loading the data from disk. More...
void | queryBBIntersects_noload (const boost::filesystem::path &rootnode, const Eigen::Vector3d &min, const Eigen::Vector3d &max, const boost::uint32_t query_depth, std::list< std::string > &bin_name)
| Non-class method which performs a bounding box query without loading any of the point cloud data from disk. More...
void | queryBBIntersects_noload (OutofcoreOctreeBaseNode< ContainerT, PointT > *current, const Eigen::Vector3d &min, const Eigen::Vector3d &max, const boost::uint32_t query_depth, std::list< std::string > &bin_name)
| Non-class method overload. More...

## Detailed Description

### template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>
class pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >

OutofcoreOctreeBaseNode Class internally representing nodes of an outofcore octree, with accessors to its data via the pcl::outofcore::OutofcoreOctreeDiskContainer class or pcl::outofcore::OutofcoreOctreeRamContainer class, whichever it is templated against.

Note
  Code was adapted from the Urban Robotics out of core octree implementation. Contact Jacob Schloss jacob.nosp@m..sch.nosp@m.loss@.nosp@m.urba.nosp@m.nrobo.nosp@m.tics.nosp@m..net with any questions. http://www.urbanrobotics.net/

Author
  Jacob Schloss (jacob.nosp@m..sch.nosp@m.loss@.nosp@m.urba.nosp@m.nrobo.nosp@m.tics.nosp@m..net)

Definition at line 59 of file octree_base_node.h.

## Member Typedef Documentation

## AlignedPointTVector

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

typedef std::vector<PointT, Eigen::aligned_allocator<PointT> > pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::AlignedPointTVector

Definition at line 110 of file octree_base_node.h.

## node_type_t

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

typedef pcl::octree::node_type_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_type_t

Definition at line 112 of file octree_base_node.h.

## octree_disk

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

typedef OutofcoreOctreeBase<OutofcoreOctreeDiskContainer < PointT > , PointT > pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::octree_disk

Definition at line 107 of file octree_base_node.h.

## octree_disk_node

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

typedef OutofcoreOctreeBaseNode<OutofcoreOctreeDiskContainer < PointT > , PointT > pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::octree_disk_node

Definition at line 108 of file octree_base_node.h.

## Constructor & Destructor Documentation

## OutofcoreOctreeBaseNode() [1/5]

template<typename ContainerT , typename PointT >

pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode | ( |  | ) |

Empty constructor; sets pointers for children and for bounding boxes to 0.

Definition at line 90 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## OutofcoreOctreeBaseNode() [2/5]

template<typename ContainerT , typename PointT >

pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode | ( | const Eigen::Vector3d & | bb_min,
|  | const Eigen::Vector3d & | bb_max,
|  | OutofcoreOctreeBase< ContainerT, PointT > *const | tree,
|  | const boost::filesystem::path & | root_name
| ) |  |

Create root node and directory.

Definition at line 183 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

## ~OutofcoreOctreeBaseNode()

template<typename ContainerT , typename PointT >

pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::~OutofcoreOctreeBaseNode | ( |  | ) |

virtual

Will recursively delete all children calling recFreeChildrein.

Definition at line 259 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::recFreeChildren().

## OutofcoreOctreeBaseNode() [3/5]

template<typename ContainerT , typename PointT >

pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode | ( | const boost::filesystem::path & | directory_path,
|  | OutofcoreOctreeBaseNode< ContainerT, PointT > * | super,
|  | bool | load_all
| ) |  |

protected

Load from disk If creating root, path is full name.

If creating any other node, path is dir; throws exception if directory or metadata not found

Parameters

  [in] | directory_path | pathname
  [in] | super |
  [in] | load_all |

Exceptions

  PCLException | if directory is missing
  PCLException | if node index is missing

Definition at line 108 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_index_extension, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

## OutofcoreOctreeBaseNode() [4/5]

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode | ( | const OutofcoreOctreeBaseNode< ContainerT, PointT > & | rval | ) |

protected

no copy construction right now

## OutofcoreOctreeBaseNode() [5/5]

template<typename ContainerT , typename PointT >

pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode | ( | const Eigen::Vector3d & | bb_min,
|  | const Eigen::Vector3d & | bb_max,
|  | const char * | dir,
|  | OutofcoreOctreeBaseNode< ContainerT, PointT > * | super
| ) |  |

protected

Private constructor used for children.

Definition at line 1729 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::getRandomUUIDString(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_container_basename, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_index_basename, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_index_extension, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::parent_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pcd_extension, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveIdx().

## Member Function Documentation

## addDataAtMaxDepth() [1/2]

template<typename ContainerT , typename PointT >

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth | ( | const AlignedPointTVector & | p,
|  | const bool | skip_bb_check = `true`
| ) |  |

protected

Add data to the leaf when at max depth of tree.

If skip_bb_check is true, adds to the node regardless of the bounding box it represents; otherwise only adds points that fall within the bounding box

Parameters

  [in] | p | vector of points to attempt to add to the tree
  [in] | skip_bb_check | if true, doesn't check that points are in the proper bounding box; if false, only adds the points that fall into the bounding box to this node

Returns
  number of points successfully added

Definition at line 625 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData().

## addDataAtMaxDepth() [2/2]

template<typename ContainerT , typename PointT >

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth | ( | const pcl::PCLPointCloud2::Ptr | input_cloud,
|  | const bool | skip_bb_check = `true`
| ) |  |

protected

Add data to the leaf when at max depth of tree.

If `skip_bb_check` is true, adds to the node regardless of the bounding box it represents; otherwise only adds points that fall within the bounding box

Parameters

  [in] | input_cloud | PCLPointCloud2 points to attempt to add to the tree;

Warning
  PCLPointCloud2 inserted into the tree must have x,y,z fields, and must be of same type of any other points inserted in the tree

Parameters

  [in] | skip_bb_check | (default true) if true, doesn't check that points are in the proper bounding box; if false, only adds the points that fall into the bounding box to this node

Returns
  number of points successfully added

Definition at line 666 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

## addDataToLeaf() [1/2]

template<typename ContainerT , typename PointT >

uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf | ( | const AlignedPointTVector & | p,
|  | const bool | skip_bb_check = `true`
| ) |  |

virtual

add point to this node if we are a leaf, or find the leaf below us that is supposed to take the point

Parameters

  [in] | p | vector of points to add to the leaf
  [in] | skip_bb_check | whether to check if the point's coordinates fall within the bounding box

Definition at line 356 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## addDataToLeaf() [2/2]

template<typename ContainerT , typename PointT >

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf | ( | const std::vector< const PointT *> & | p,
|  | const bool | skip_bb_check = `true`
| ) |  |

virtual

Definition at line 415 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

## addDataToLeaf_and_genLOD()

template<typename ContainerT , typename PointT >

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD | ( | const AlignedPointTVector & | p,
|  | const bool | skip_bb_check
| ) |  |

virtual

Recursively add points to the leaf and children subsampling LODs on the way down.

Note
  rng_mutex_ lock occurs

Definition at line 820 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoints().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## addPointCloud()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud | ( | const pcl::PCLPointCloud2::Ptr & | input_cloud,
|  | const bool | skip_bb_check = `false`
| ) |  |

virtual

Add a single PCLPointCloud2 object into the octree.

Parameters

  [in] | input_cloud |
  [in] | skip_bb_check | (default = false)

Definition at line 508 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::copyPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## addPointCloud_and_genLOD()

template<typename ContainerT , typename PointT >

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD | ( | const pcl::PCLPointCloud2::Ptr | input_cloud | ) |

virtual

Add a single PCLPointCloud2 into the octree and build the subsampled LOD during construction; this method of LOD construction is not multiresolution.

Rather, there are no redundant data.

Definition at line 720 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::copyPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::FilterIndices< pcl::PCLPointCloud2 >::filter(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_, pcl::PCLBase< pcl::PCLPointCloud2 >::setIndices(), pcl::PCLBase< pcl::PCLPointCloud2 >::setInputCloud(), pcl::FilterIndices< pcl::PCLPointCloud2 >::setNegative(), pcl::RandomSample< pcl::PCLPointCloud2 >::setSample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## clearData()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData | ( |  | ) |

inline virtual

Definition at line 302 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumLoadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::operator=(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::recFreeChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveIdx(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveMetadataToFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoint(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoints().

## convertToXYZRecursive()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive | ( |  | ) |

protected

Recursively converts data files to ascii XZY files.

Note
  This will be deprecated soon

Definition at line 1974 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## copyAllCurrentAndChildPointsRec()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec | ( | std::list< PointT > & | v | ) |

protected

Copies points from this and all children into a single point container (std::list)

Definition at line 1782 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## copyAllCurrentAndChildPointsRec_sub()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub | ( | std::list< PointT > & | v,
|  | const double | percent
| ) |  |

protected

Definition at line 1806 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## countNumChildren()

template<typename ContainerT , typename PointT >

size_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumChildren | ( |  | ) | const

protected virtual

Counts the number of child directories on disk; used to update num_children_.

Definition at line 268 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## countNumLoadedChildren()

template<typename ContainerT , typename PointT >

size_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumLoadedChildren | ( |  | ) | const

protected virtual

Counts the number of loaded chilren by testing the `children_` array; used to update num_loaded_chilren_ internally.

Definition at line 1940 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumLoadedChildren().

## createChild()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild | ( | const std::size_t | idx | ) |

protected

Creates child node `idx`.

Parameters

  [in] | idx | Index (0-7) of the child node

Definition at line 878 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData().

## deepCopy()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual OutofcoreOctreeBaseNode* pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::deepCopy | ( |  | ) | const

inline virtual

Pure virtual method to perform a deep copy of the octree.

Implements pcl::octree::OctreeNode.

Definition at line 264 of file octree_base_node.h.

## enlargeToCube()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::enlargeToCube | ( | Eigen::Vector3d & | bb_min,
|  | Eigen::Vector3d & | bb_max
| ) |  |

protected

Enlarges the shortest two sidelengths of the bounding box to a cubic shape; operation is done in place.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## flushToDiskRecursive()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::flushToDiskRecursive | ( |  | ) |

protected

Definition at line 1995 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## getBoundingBox()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getBoundingBox | ( | Eigen::Vector3d & | min_bb,
|  | Eigen::Vector3d & | max_bb
| ) |  | const

inline virtual

gets the minimum and maximum corner of the bounding box represented by this node

Parameters

  [out] | min_bb | returns the minimum corner of the bounding box indexed by 0–>X, 1–>Y, 2–>Z
  [out] | max_bb | returns the maximum corner of the bounding box indexed by 0–>X, 1–>Y, 2–>Z

Definition at line 137 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::buildLOD().

## getChildPtr()

template<typename ContainerT , typename PointT >

OutofcoreOctreeBaseNode< ContainerT, PointT > * pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getChildPtr | ( | size_t | index_arg | ) | const

virtual

Returns a pointer to the child in octant index_arg.

Definition at line 1924 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_.

Referenced by pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::getBranchChildPtr(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumLoadedChildren().

## getDataSize()

template<typename ContainerT , typename PointT >

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDataSize | ( |  | ) | const

virtual

Gets the number of points available in the PCD file.

Definition at line 1932 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumLoadedChildren(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum().

## getDepth()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual size_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDepth | ( |  | ) | const

inline virtual

Definition at line 272 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_.

Referenced by pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::buildLODRecursive(), pcl::outofcore::OutofcoreBreadthFirstIterator< PointT, ContainerT >::operator++(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## getMetadataFilename()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const boost::filesystem::path& pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename | ( |  | ) | const

inline

Definition at line 150 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::printBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::read(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::writeVPythonVisual().

## getNodeType()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual node_type_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNodeType | ( |  | ) | const

inline virtual

Pure virtual method for receiving the type of octree node (branch or leaf)

Implements pcl::octree::OctreeNode.

Definition at line 250 of file octree_base_node.h.

References pcl::octree::BRANCH_NODE, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), and pcl::octree::LEAF_NODE.

Referenced by pcl::outofcore::OutofcoreDepthFirstIterator< PointT, ContainerT >::operator++(), and pcl::outofcore::OutofcoreBreadthFirstIterator< PointT, ContainerT >::operator++().

## getNumChildren()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual size_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren | ( |  | ) | const

inline virtual

Returns the total number of children on disk.

Definition at line 279 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumChildren().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNodeType(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum().

## getNumLoadedChildren()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

virtual size_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumLoadedChildren | ( |  | ) | const

inline virtual

Count loaded chilren.

Definition at line 287 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumLoadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getChildPtr(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDataSize().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren().

## getOccupiedVoxelCentersRecursive() [1/2]

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive | ( | AlignedPointTVector & | voxel_centers,
|  | const size_t | query_depth
| ) |  |

protected

Gets a vector of occupied voxel centers.

Parameters

  [out] | voxel_centers |
  [in] | query_depth |

Definition at line 986 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## getOccupiedVoxelCentersRecursive() [2/2]

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive | ( | std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > & | voxel_centers,
|  | const size_t | query_depth
| ) |  |

protected

Gets a vector of occupied voxel centers.

Parameters

  [out] | voxel_centers |
  [in] | query_depth |

Definition at line 1330 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_.

## getPCDFilename()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const boost::filesystem::path& pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getPCDFilename | ( |  | ) | const

inline

Definition at line 144 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

## hasUnloadedChildren()

template<typename ContainerT , typename PointT >

bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren | ( |  | ) | const

protected

Returns whether or not a node has unloaded children data.

Definition at line 301 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumLoadedChildren().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## inBoundingBox()

template<typename ContainerT , typename PointT >

bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb
| ) |  | const

inline protected

Tests whether the input bounding box falls inclusively within this node's bounding box.

Parameters

  [in] | min_bb | The minimum corner of the input bounding box
  [in] | max_bb | The maximum corner of the input bounding box

Returns
  bool True if the input bounding box falls inclusively within the boundaries of this node's bounding box

Definition at line 1853 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample().

## init_root_node()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node | ( | const Eigen::Vector3d & | bb_min,
|  | const Eigen::Vector3d & | bb_max,
|  | OutofcoreOctreeBase< ContainerT, PointT > *const | tree,
|  | const boost::filesystem::path & | rootname
| ) |  |

protected

Create root node and directory.

Initializes the root node and performs initial filesystem checks for the octree; throws OctreeException::OCT_BAD_PATH if root directory is an existing file

Parameters

  bb_min | triple of x,y,z minima for bounding box
  bb_max | triple of x,y,z maxima for bounding box
  tree | adress of the tree data structure that will hold this initial root node
  rootname | Root directory for location of on-disk octree storage; if directory doesn't exist, it is created; if "rootname" is an existing file,

Exceptions

  PCLException | if the specified path already exists

Definition at line 202 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeDiskContainer< PointT >::getRandomUUIDString(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_container_basename, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::parent_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pcd_extension, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## intersectsWithBoundingBox()

template<typename ContainerT , typename PointT >

bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb
| ) |  | const

inline protected

Tests whether the input bounding box intersects with the current node's bounding box.

Parameters

  [in] | min_bb | The minimum corner of the input bounding box
  [in] | max_bb | The maximum corner of the input bounding box

Returns
  bool True if any portion of the bounding box intersects with this node's bounding box; false otherwise

Definition at line 1831 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## loadChildren()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren | ( | bool | recursive | ) |

protected virtual

Load nodes child data creating new nodes for each.

Definition at line 311 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_loaded_children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## loadFromFile()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile | ( | const boost::filesystem::path & | path,
|  | OutofcoreOctreeBaseNode< ContainerT, PointT > * | super
| ) |  |

protected

Loads the nodes metadata from the JSON file.

Definition at line 1956 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::parent_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::recFreeChildren().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## operator=()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

OutofcoreOctreeBaseNode& pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::operator= | ( | const OutofcoreOctreeBaseNode< ContainerT, PointT > & | rval | ) |

protected

Operator= is not implemented.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData().

## pointInBoundingBox() [1/4]

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | const Eigen::Vector3d & | point
| ) |  |

protected

Tests whether `point` falls within the input bounding box.

Parameters

  [in] | min_bb | The minimum corner of the input bounding box
  [in] | max_bb | The maximum corner of the input bounding box
  [in] | point | The test point

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoints().

## pointInBoundingBox() [2/4]

template<typename ContainerT , typename PointT >

bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | const PointT & | p
| ) |  |

inline static protected

Tests whether `p` falls within the input bounding box.

Parameters

  [in] | min_bb | The minimum corner of the input bounding box
  [in] | max_bb | The maximum corner of the input bounding box
  [in] | p | The point to be tested

Definition at line 1875 of file octree_base_node.hpp.

## pointInBoundingBox() [3/4]

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

static bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | const double | x,
|  | const double | y,
|  | const double | z
| ) |  |

static protected

Tests whether `x`, `y`, and `z` fall within the input bounding box.

Parameters

  [in] | min_bb | The minimum corner of the input bounding box
  [in] | max_bb | The maximum corner of the input bounding box
  | x |
  | y |
  | z |

## pointInBoundingBox() [4/4]

template<typename ContainerT , typename PointT >

bool pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox | ( | const PointT & | p | ) | const

inline protected

Tests if specified point is within bounds of current node's bounding box.

Definition at line 941 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

## printBoundingBox()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::printBoundingBox | ( | const size_t | query_depth | ) | const

virtual

Write the voxel size to stdout at `query_depth`.

Parameters

  [in] | query_depth | The depth at which to print the size of the voxel/bounding boxes

Definition at line 958 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## queryBBIncludes() [1/2]

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | size_t | query_depth,
|  | AlignedPointTVector & | dst
| ) |  |

virtual

Recursively add points that fall into the queried bounding box up to the query_depth.

Parameters

  [in] | min_bb | the minimum corner of the bounding box, indexed by X,Y,Z coordinates
  [in] | max_bb | the maximum corner of the bounding box, indexed by X,Y,Z coordinates
  [in] | query_depth | the maximum depth to query in the octree for points within the bounding box
  [out] | dst | destion of points returned by the queries

Definition at line 1517 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## queryBBIncludes() [2/2]

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | size_t | query_depth,
|  | const pcl::PCLPointCloud2::Ptr & | dst_blob
| ) |  |

virtual

Recursively add points that fall into the queried bounding box up to the query_depth.

Parameters

  [in] | min_bb | the minimum corner of the bounding box, indexed by X,Y,Z coordinates
  [in] | max_bb | the maximum corner of the bounding box, indexed by X,Y,Z coordinates
  [in] | query_depth | the maximum depth to query in the octree for points within the bounding box
  [out] | dst_blob | destion of points returned by the queries

Definition at line 1393 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::concatenatePointCloud(), pcl::copyPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::fromPCLPointCloud2(), pcl::getPointsInBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::PointCloud< PointT >::height, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, and pcl::PointCloud< PointT >::width.

## queryBBIncludes_subsample() [1/2]

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | boost::uint64_t | query_depth,
|  | const double | percent,
|  | AlignedPointTVector & | v
| ) |  |

virtual

Recursively add points that fall into the queried bounding box up to the query_depth.

Parameters

  [in] | min_bb | the minimum corner of the bounding box, indexed by X,Y,Z coordinates
  [in] | max_bb | the maximum corner of the bounding box, indexed by X,Y,Z coordinates
  [in] | query_depth |
  | percent |
  [out] | v | std::list of points returned by the query

Definition at line 1658 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## queryBBIncludes_subsample() [2/2]

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | boost::uint64_t | query_depth,
|  | const pcl::PCLPointCloud2::Ptr & | dst_blob,
|  | double | percent = `1.0`
| ) |  |

virtual

Definition at line 1591 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::concatenatePointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::FilterIndices< pcl::PCLPointCloud2 >::filter(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::PCLBase< pcl::PCLPointCloud2 >::setIndices(), pcl::PCLBase< pcl::PCLPointCloud2 >::setInputCloud(), and pcl::RandomSample< pcl::PCLPointCloud2 >::setSample().

## queryBBIntersects()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects | ( | const Eigen::Vector3d & | min_bb,
|  | const Eigen::Vector3d & | max_bb,
|  | const boost::uint32_t | query_depth,
|  | std::list< std::string > & | file_names
| ) |  |

virtual

Recursive acquires PCD paths to any node with which the queried bounding box intersects (at query_depth only).

Definition at line 1353 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## queryFrustum() [1/3]

template<typename Container , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< Container, PointT >::queryFrustum | ( | const double | planes[24],
|  | std::list< std::string > & | file_names
| ) |  |

Definition at line 1063 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## queryFrustum() [2/3]

template<typename Container , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< Container, PointT >::queryFrustum | ( | const double | planes[24],
|  | std::list< std::string > & | file_names,
|  | const boost::uint32_t | query_depth,
|  | const bool | skip_vfc_check = `false`
| ) |  |

Definition at line 1069 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

## queryFrustum() [3/3]

template<typename Container , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< Container, PointT >::queryFrustum | ( | const double | planes[24],
|  | const Eigen::Vector3d & | eye,
|  | const Eigen::Matrix4d & | view_projection_matrix,
|  | std::list< std::string > & | file_names,
|  | const boost::uint32_t | query_depth,
|  | const bool | skip_vfc_check = `false`
| ) |  |

Definition at line 1218 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDataSize(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::visualization::viewScreenArea().

## randomSample()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample | ( | const AlignedPointTVector & | p,
|  | AlignedPointTVector & | insertBuff,
|  | const bool | skip_bb_check
| ) |  |

protected

Randomly sample point data.

Definition at line 572 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::rand_gen_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::rng_mutex_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sample_percent_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData().

## read()

template<typename ContainerT , typename PointT >

int pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::read | ( | pcl::PCLPointCloud2::Ptr & | output_cloud | ) |

virtual

Definition at line 1916 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## recFreeChildren()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::recFreeChildren | ( |  | ) |

protected

Method which recursively free children of this node.

Definition at line 335 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::~OutofcoreOctreeBaseNode().

## saveIdx()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveIdx | ( | bool | recursive | ) |

protected

Save node's metadata to file.

Parameters

  [in] | recursive | if false, save only this node's metadata to file; if true, recursively save all children's metadata to files as well

Definition at line 284 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## saveMetadataToFile()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveMetadataToFile | ( | const boost::filesystem::path & | path | ) |

protected

Write JSON metadata for this node to file.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData().

## size()

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

boost::uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size | ( |  | ) | const

inline protected

Number of points in the payload.

Definition at line 467 of file octree_base_node.h.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::enlargeToCube(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::flushToDiskRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::hasUnloadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), and pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::DeAllocEmptyNodeCache().

## sortOctantIndices()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices | ( | const pcl::PCLPointCloud2::Ptr & | input_cloud,
|  | std::vector< std::vector< int > > & | indices,
|  | const Eigen::Vector3d & | mid_xyz
| ) |  |

protected

Sorts the indices based on x,y,z fields and pushes the index into the proper octant's vector; This could be overloaded with a parallelized implementation.

Definition at line 2007 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_, pcl::getFieldIndex(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::makenode_norec, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::parent_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects_noload, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size().

## subdividePoint()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoint | ( | const PointT & | point,
|  | std::vector< AlignedPointTVector > & | c
| ) |  |

protected

Subdivide a single point into a specific child node.

Definition at line 710 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoints().

## subdividePoints()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoints | ( | const AlignedPointTVector & | p,
|  | std::vector< AlignedPointTVector > & | c,
|  | const bool | skip_bb_check
| ) |  |

protected

Subdivide points to pass to child nodes.

Definition at line 688 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoint().

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData().

## writeVPythonVisual()

template<typename ContainerT , typename PointT >

void pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::writeVPythonVisual | ( | std::ofstream & | file | ) |

Write a python visual script to file.

Parameters

  [in] | file | output file stream to write the python visual script

Definition at line 1895 of file octree_base_node.hpp.

References pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_, pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_, and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename().

## Friends And Related Function Documentation

## makenode_norec

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

OutofcoreOctreeBaseNode<ContainerT, PointT>* makenode_norec | ( | const boost::filesystem::path & | path,
|  | OutofcoreOctreeBaseNode< ContainerT, PointT > * | super
| ) |  |

friend

Non-class function which creates a single child leaf; used with queryBBIntersects_noload to avoid loading the data from disk.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## OutofcoreOctreeBase< ContainerT, PointT >

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

friend class OutofcoreOctreeBase< ContainerT, PointT >

friend

Definition at line 94 of file octree_base_node.h.

## queryBBIntersects_noload [1/2]

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

void queryBBIntersects_noload | ( | const boost::filesystem::path & | rootnode,
|  | const Eigen::Vector3d & | min,
|  | const Eigen::Vector3d & | max,
|  | const boost::uint32_t | query_depth,
|  | std::list< std::string > & | bin_name
| ) |  |

friend

Non-class method which performs a bounding box query without loading any of the point cloud data from disk.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## queryBBIntersects_noload [2/2]

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

void queryBBIntersects_noload | ( | OutofcoreOctreeBaseNode< ContainerT, PointT > * | current,
|  | const Eigen::Vector3d & | min,
|  | const Eigen::Vector3d & | max,
|  | const boost::uint32_t | query_depth,
|  | std::list< std::string > & | bin_name
| ) |  |

friend

Non-class method overload.

## Member Data Documentation

## children_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

std::vector<OutofcoreOctreeBaseNode*> pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::children_

protected

The children of this node.

Definition at line 542 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumLoadedChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::flushToDiskRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getChildPtr(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::printBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::recFreeChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveIdx(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::writeVPythonVisual().

## depth_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

size_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::depth_

protected

Depth in the tree, root is 0, root's children are 1, ...

Definition at line 540 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::printBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## m_tree_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

OutofcoreOctreeBase<ContainerT, PointT>* pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::m_tree_

protected

The tree we belong to.

Definition at line 534 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::init(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::OutofcoreOctreeBase(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample().

## node_container_basename

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const std::string pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_container_basename = "node"

static

Definition at line 115 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## node_container_extension

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const std::string pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_container_extension = ".oct_dat"

static

Definition at line 117 of file octree_base_node.h.

## node_index_basename

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const std::string pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_index_basename = "node"

static

Definition at line 114 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## node_index_extension

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const std::string pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_index_extension = ".oct_idx"

static

Definition at line 116 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## node_metadata_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

OutofcoreOctreeNodeMetadata::Ptr pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::node_metadata_

protected

Definition at line 572 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::countNumChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getMetadataFilename(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getPCDFilename(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::inBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::intersectsWithBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pointInBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::printBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::saveIdx(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::subdividePoint(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::writeVPythonVisual().

## num_children_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_children_

protected

Number of children on disk.

This is only changed when a new node is created

Definition at line 545 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::createChild(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getOccupiedVoxelCentersRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::printBoundingBox(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::recFreeChildren(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::writeVPythonVisual().

## num_loaded_children_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

uint64_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::num_loaded_children_

protected

Number of loaded children this node has.

"Loaded" means child OctreeBaseNodes have been allocated, and their metadata files have been loaded into memory. num_loaded_children_ <= num_children_

Definition at line 553 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadChildren().

## parent_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

OutofcoreOctreeBaseNode* pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::parent_

protected

super-node

Definition at line 538 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## payload_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

boost::shared_ptr<ContainerT> pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::payload_

protected

what holds the points.

currently a custom class, but in theory you could use an stl container if you rewrote some of this class. I used to use deques for this...

Definition at line 558 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBase< ContainerT, pcl::PointXYZRGB >::buildLODRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::clearData(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::convertToXYZRecursive(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::copyAllCurrentAndChildPointsRec_sub(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::getDataSize(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::loadFromFile(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIncludes_subsample(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryBBIntersects(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::queryFrustum(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::read(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::size(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## pcd_extension

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const std::string pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::pcd_extension = ".pcd"

static protected

Extension for this class to find the pcd files on disk.

Definition at line 570 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode().

## rand_gen_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

boost::mt19937 pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::rand_gen_

static protected

Mersenne Twister: A 623-dimensionally equidistributed uniform pseudo-random number generator.

Definition at line 565 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample().

## rng_mutex_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

boost::mutex pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::rng_mutex_

static protected

Random number generator mutex.

Definition at line 561 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample().

## rngseed

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const boost::uint32_t pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::rngseed = 0xAABBCCDD

static protected

Random number generator seed.

Definition at line 568 of file octree_base_node.h.

## root_node_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

OutofcoreOctreeBaseNode* pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::root_node_

protected

The root node of the tree we belong to.

Definition at line 536 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataAtMaxDepth(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addDataToLeaf_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::addPointCloud_and_genLOD(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::init_root_node(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::OutofcoreOctreeBaseNode(), pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample(), and pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sortOctantIndices().

## sample_percent_

template<typename ContainerT = OutofcoreOctreeDiskContainer<pcl::PointXYZ>, typename PointT = pcl::PointXYZ>

const double pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::sample_percent_ = .125

static

Definition at line 118 of file octree_base_node.h.

Referenced by pcl::outofcore::OutofcoreOctreeBaseNode< ContainerT, PointT >::randomSample().

The documentation for this class was generated from the following files:

- /build/pcl-qv3n_B/pcl-1.8.1+dfsg1/outofcore/include/pcl/outofcore/octree_base_node.h
- /build/pcl-qv3n_B/pcl-1.8.1+dfsg1/outofcore/include/pcl/outofcore/impl/octree_base_node.hpp