48#include <pcl/pcl_exports.h>
57 template<
typename NodeData,
typename NodeDataCreator,
typename Scalar =
float>
95 inline const NodeData&
110 inline const std::set<Node*>&
131 makeNeighbors (
Node* node);
159 build (
const Scalar* bounds, Scalar voxel_size, NodeDataCreator* node_data_creator);
178 inline std::vector<Node*>&
181 inline const std::vector<Node*>&
210#include <pcl/recognition/impl/ransac_based/simple_octree.hpp>
std::set< Node * > full_leaf_neighbors_
void setBounds(const Scalar *b)
const Scalar * getCenter() const
void getBounds(Scalar b[6]) const
void setParent(Node *parent)
void setData(const NodeData &src)
void setData(NodeData *data)
const std::set< Node * > & getNeighbors() const
void setCenter(const Scalar *c)
const NodeData & getData() const
friend class SimpleOctree
const Scalar * getBounds() const
void insertNeighbors(Node *node)
Scalar getVoxelSize() const
Node * getFullLeaf(Scalar x, Scalar y, Scalar z)
Returns a pointer to the full leaf, i.e., one having a data pbject, containing p = (x,...
const std::vector< Node * > & getFullLeaves() const
std::vector< Node * > & getFullLeaves()
HypothesisCreator * node_data_creator_
Node * createLeaf(Scalar x, Scalar y, Scalar z)
Creates the leaf containing p = (x, y, z) and returns a pointer to it, however, only if p lies within...
void build(const Scalar *bounds, Scalar voxel_size, NodeDataCreator *node_data_creator)
Creates an empty octree with bounds at least as large as the ones provided as input and with leaf siz...
std::vector< Node * > full_leaves_
const Scalar * getBounds() const
Node * getFullLeaf(int i, int j, int k)
Since the leaves are aligned in a rectilinear grid, each leaf has a unique id.
void getBounds(Scalar b[6]) const