octomap 1.5.0
|
Bounding-box leaf iterator. More...
Public Member Functions | |
point3d | getCoordinate () const |
return the center coordinate of the current node | |
unsigned | getDepth () const |
return depth of the current node | |
OcTreeKey | getIndexKey () const |
const OcTreeKey & | getKey () const |
double | getSize () const |
double | getX () const |
double | getY () const |
double | getZ () const |
leaf_bbx_iterator (const leaf_bbx_iterator &other) | |
leaf_bbx_iterator (OcTreeBaseImpl< NodeType, INTERFACE > const *tree, const point3d &min, const point3d &max, unsigned char depth=0) | |
Constructor of the iterator. | |
leaf_bbx_iterator (OcTreeBaseImpl< NodeType, INTERFACE > const *tree, const OcTreeKey &min, const OcTreeKey &max, unsigned char depth=0) | |
Constructor of the iterator. | |
leaf_bbx_iterator () | |
bool | operator!= (const iterator_base &other) const |
Comparison between iterators. First compares the tree, then stack size and top element of stack. | |
NodeType & | operator* () |
Return the current node in the octree which the iterator is referring to. | |
const NodeType & | operator* () const |
Return the current node in the octree which the iterator is referring to. | |
leaf_bbx_iterator & | operator++ () |
prefix increment operator of iterator (++it) | |
leaf_bbx_iterator | operator++ (int) |
postfix increment operator of iterator (it++) | |
NodeType const * | operator-> () const |
Ptr operator will return the current node in the octree which the iterator is referring to. | |
NodeType * | operator-> () |
Ptr operator will return the current node in the octree which the iterator is referring to. | |
bool | operator== (const iterator_base &other) const |
Comparison between iterators. First compares the tree, then stack size and top element of stack. | |
Protected Member Functions | |
void | singleIncrement () |
One step of depth-first tree traversal. | |
Protected Attributes | |
unsigned char | maxDepth |
Maximum depth for depth-limited queries. | |
OcTreeKey | maxKey |
OcTreeKey | minKey |
std::stack< StackElement, std::vector< StackElement > > | stack |
Internal recursion stack. Apparently a stack of vector works fastest here. | |
OcTreeBaseImpl< NodeType, INTERFACE > const * | tree |
Octree this iterator is working on. |
Bounding-box leaf iterator.
This iterator will traverse all leaf nodes within a given bounding box (axis-aligned). See below for example usage. Note that the non-trivial call to tree->end_leafs_bbx() should be done only once for efficiency!
for(OcTreeTYPE::leaf_bbx_iterator it = tree->begin_leafs_bbx(min,max), end=tree->end_leafs_bbx(); it!= end; ++it) { //manipulate node, e.g.: std::cout << "Node center: " << it.getCoordinate() << std::endl; std::cout << "Node size: " << it.getSize() << std::endl; std::cout << "Node value: " << it->getValue() << std::endl; }
leaf_bbx_iterator::leaf_bbx_iterator | ( | ) | [inline] |
leaf_bbx_iterator::leaf_bbx_iterator | ( | OcTreeBaseImpl< NodeType, INTERFACE > const * | tree, |
const point3d & | min, | ||
const point3d & | max, | ||
unsigned char | depth = 0 |
||
) | [inline] |
Constructor of the iterator.
The bounding box corners min and max are converted into an OcTreeKey first.
tree | OcTreeBaseImpl on which the iterator is used on |
min | Minimum point3d of the axis-aligned boundingbox |
max | Maximum point3d of the axis-aligned boundingbox |
depth | Maximum depth to traverse the tree. 0 (default): unlimited |
References iterator_base::maxDepth, maxKey, minKey, operator++(), and iterator_base::stack.
leaf_bbx_iterator::leaf_bbx_iterator | ( | OcTreeBaseImpl< NodeType, INTERFACE > const * | tree, |
const OcTreeKey & | min, | ||
const OcTreeKey & | max, | ||
unsigned char | depth = 0 |
||
) | [inline] |
Constructor of the iterator.
This version uses the exact keys as axis-aligned bounding box (including min and max).
tree | OcTreeBaseImpl on which the iterator is used on |
min | Minimum OcTreeKey to be included in the axis-aligned boundingbox |
max | Maximum OcTreeKey to be included in the axis-aligned boundingbox |
depth | Maximum depth to traverse the tree. 0 (default): unlimited |
References operator++(), and iterator_base::stack.
leaf_bbx_iterator::leaf_bbx_iterator | ( | const leaf_bbx_iterator & | other | ) | [inline] |
point3d iterator_base::getCoordinate | ( | ) | const [inline, inherited] |
return the center coordinate of the current node
References iterator_base::stack, and iterator_base::tree.
unsigned iterator_base::getDepth | ( | ) | const [inline, inherited] |
return depth of the current node
References iterator_base::stack.
OcTreeKey iterator_base::getIndexKey | ( | ) | const [inline, inherited] |
References octomap::computeIndexKey(), iterator_base::stack, and iterator_base::tree.
const OcTreeKey& iterator_base::getKey | ( | ) | const [inline, inherited] |
References iterator_base::stack.
double iterator_base::getSize | ( | ) | const [inline, inherited] |
References iterator_base::stack, and iterator_base::tree.
double iterator_base::getX | ( | ) | const [inline, inherited] |
References iterator_base::stack, and iterator_base::tree.
double iterator_base::getY | ( | ) | const [inline, inherited] |
References iterator_base::stack, and iterator_base::tree.
double iterator_base::getZ | ( | ) | const [inline, inherited] |
References iterator_base::stack, and iterator_base::tree.
bool iterator_base::operator!= | ( | const iterator_base & | other | ) | const [inline, inherited] |
Comparison between iterators. First compares the tree, then stack size and top element of stack.
References iterator_base::stack, and iterator_base::tree.
NodeType& iterator_base::operator* | ( | ) | [inline, inherited] |
Return the current node in the octree which the iterator is referring to.
References iterator_base::stack.
const NodeType& iterator_base::operator* | ( | ) | const [inline, inherited] |
Return the current node in the octree which the iterator is referring to.
References iterator_base::stack.
leaf_bbx_iterator& leaf_bbx_iterator::operator++ | ( | ) | [inline] |
prefix increment operator of iterator (++it)
References iterator_base::maxDepth, singleIncrement(), iterator_base::stack, and iterator_base::tree.
Referenced by leaf_bbx_iterator().
leaf_bbx_iterator leaf_bbx_iterator::operator++ | ( | int | ) | [inline] |
postfix increment operator of iterator (it++)
NodeType* iterator_base::operator-> | ( | ) | [inline, inherited] |
Ptr operator will return the current node in the octree which the iterator is referring to.
References iterator_base::stack.
NodeType const* iterator_base::operator-> | ( | ) | const [inline, inherited] |
Ptr operator will return the current node in the octree which the iterator is referring to.
References iterator_base::stack.
bool iterator_base::operator== | ( | const iterator_base & | other | ) | const [inline, inherited] |
Comparison between iterators. First compares the tree, then stack size and top element of stack.
References iterator_base::stack, and iterator_base::tree.
void leaf_bbx_iterator::singleIncrement | ( | ) | [inline, protected] |
One step of depth-first tree traversal.
How this is used depends on the actual iterator.
Reimplemented from iterator_base.
References octomap::computeChildKey(), iterator_base::StackElement::depth, iterator_base::StackElement::key, maxKey, minKey, iterator_base::StackElement::node, iterator_base::stack, and iterator_base::tree.
Referenced by operator++().
unsigned char iterator_base::maxDepth [protected, inherited] |
Maximum depth for depth-limited queries.
Referenced by octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >::begin(), octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >::begin_leafs(), octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >::begin_leafs_bbx(), octomap::OcTreeBaseImpl< CountingOcTreeNode, AbstractOcTree >::begin_tree(), tree_iterator::isLeaf(), iterator_base::iterator_base(), leaf_bbx_iterator(), operator++(), leaf_iterator::operator++(), iterator_base::operator=(), and iterator_base::singleIncrement().
OcTreeKey leaf_bbx_iterator::maxKey [protected] |
Referenced by leaf_bbx_iterator(), and singleIncrement().
OcTreeKey leaf_bbx_iterator::minKey [protected] |
Referenced by leaf_bbx_iterator(), and singleIncrement().
std::stack<StackElement,std::vector<StackElement> > iterator_base::stack [protected, inherited] |
Internal recursion stack. Apparently a stack of vector works fastest here.
Referenced by iterator_base::getCoordinate(), iterator_base::getDepth(), iterator_base::getIndexKey(), iterator_base::getKey(), iterator_base::getSize(), iterator_base::getX(), iterator_base::getY(), iterator_base::getZ(), tree_iterator::isLeaf(), iterator_base::iterator_base(), leaf_bbx_iterator(), leaf_iterator::leaf_iterator(), iterator_base::operator!=(), iterator_base::operator*(), operator++(), leaf_iterator::operator++(), tree_iterator::operator++(), iterator_base::operator->(), iterator_base::operator=(), iterator_base::operator==(), singleIncrement(), and iterator_base::singleIncrement().
OcTreeBaseImpl<NodeType,INTERFACE> const* iterator_base::tree [protected, inherited] |
Octree this iterator is working on.
Referenced by iterator_base::getCoordinate(), iterator_base::getIndexKey(), iterator_base::getSize(), iterator_base::getX(), iterator_base::getY(), iterator_base::getZ(), iterator_base::operator!=(), operator++(), leaf_iterator::operator++(), tree_iterator::operator++(), iterator_base::operator=(), iterator_base::operator==(), singleIncrement(), and iterator_base::singleIncrement().