StackElement
StackElement::node
StackElement::key
StackElement::depth
KeyHash
KeyHash::operator()()
iterator_base
iterator_base::iterator_category
iterator_base::value_type
iterator_base::difference_type
iterator_base::pointer
iterator_base::reference
iterator_base::iterator_base()
iterator_base::operator==()
iterator_base::operator!=()
iterator_base::operator=()
iterator_base::operator->()
iterator_base::operator*()
iterator_base::getCoordinate()
iterator_base::getX()
iterator_base::getY()
iterator_base::getZ()
iterator_base::getSize()
iterator_base::getDepth()
iterator_base::getKey()
iterator_base::getIndexKey()
iterator_base::singleIncrement()
iterator_base::tree
iterator_base::maxDepth
iterator_base::stack
iterator_base::StackElement
iterator_base::StackElement::node
iterator_base::StackElement::key
iterator_base::StackElement::depth
leaf_bbx_iterator
leaf_bbx_iterator::leaf_bbx_iterator()
leaf_bbx_iterator::operator++()
leaf_bbx_iterator::singleIncrement()
leaf_bbx_iterator::minKey
leaf_bbx_iterator::maxKey
leaf_iterator
leaf_iterator::leaf_iterator()
leaf_iterator::operator++()
AbstractOccupancyOcTree
AbstractOccupancyOcTree::AbstractOccupancyOcTree()
AbstractOccupancyOcTree::~AbstractOccupancyOcTree()
AbstractOccupancyOcTree::writeBinary()
AbstractOccupancyOcTree::writeBinaryConst()
AbstractOccupancyOcTree::writeBinaryData()
AbstractOccupancyOcTree::readBinary()
AbstractOccupancyOcTree::readBinaryData()
AbstractOccupancyOcTree::isNodeOccupied()
AbstractOccupancyOcTree::isNodeAtThreshold()
AbstractOccupancyOcTree::updateNode()
AbstractOccupancyOcTree::toMaxLikelihood()
AbstractOccupancyOcTree::setOccupancyThres()
AbstractOccupancyOcTree::setProbHit()
AbstractOccupancyOcTree::setProbMiss()
AbstractOccupancyOcTree::setClampingThresMin()
AbstractOccupancyOcTree::setClampingThresMax()
AbstractOccupancyOcTree::getOccupancyThres()
AbstractOccupancyOcTree::getOccupancyThresLog()
AbstractOccupancyOcTree::getProbHit()
AbstractOccupancyOcTree::getProbHitLog()
AbstractOccupancyOcTree::getProbMiss()
AbstractOccupancyOcTree::getProbMissLog()
AbstractOccupancyOcTree::getClampingThresMin()
AbstractOccupancyOcTree::getClampingThresMinLog()
AbstractOccupancyOcTree::getClampingThresMax()
AbstractOccupancyOcTree::getClampingThresMaxLog()
AbstractOccupancyOcTree::readBinaryLegacyHeader()
AbstractOccupancyOcTree::clamping_thres_min
AbstractOccupancyOcTree::clamping_thres_max
AbstractOccupancyOcTree::prob_hit_log
AbstractOccupancyOcTree::prob_miss_log
AbstractOccupancyOcTree::occ_prob_thres_log
AbstractOccupancyOcTree::binaryFileHeader
AbstractOcTree
AbstractOcTree::AbstractOcTree()
AbstractOcTree::~AbstractOcTree()
AbstractOcTree::create()
AbstractOcTree::getTreeType()
AbstractOcTree::getResolution()
AbstractOcTree::setResolution()
AbstractOcTree::size()
AbstractOcTree::memoryUsage()
AbstractOcTree::memoryUsageNode()
AbstractOcTree::getMetricMin()
AbstractOcTree::getMetricMax()
AbstractOcTree::getMetricSize()
AbstractOcTree::prune()
AbstractOcTree::expand()
AbstractOcTree::clear()
AbstractOcTree::write()
AbstractOcTree::readData()
AbstractOcTree::writeData()
AbstractOcTree::createTree()
AbstractOcTree::read()
AbstractOcTree::readHeader()
AbstractOcTree::registerTreeType()
AbstractOcTree::fileHeader
AbstractOcTreeNode
ColorOcTree
ColorOcTree::ColorOcTree()
ColorOcTree::create()
ColorOcTree::getTreeType()
ColorOcTree::pruneNode()
ColorOcTree::isNodeCollapsible()
ColorOcTree::setNodeColor()
ColorOcTree::averageNodeColor()
ColorOcTree::integrateNodeColor()
ColorOcTree::updateInnerOccupancy()
ColorOcTree::writeColorHistogram()
ColorOcTree::updateInnerOccupancyRecurs()
ColorOcTree::colorOcTreeMemberInit
ColorOcTree::StaticMemberInitializer
ColorOcTree::StaticMemberInitializer::StaticMemberInitializer()
ColorOcTree::StaticMemberInitializer::ensureLinking()
StaticMemberInitializer
StaticMemberInitializer::StaticMemberInitializer()
StaticMemberInitializer::ensureLinking()
ColorOcTreeNode
ColorOcTreeNode::ColorOcTreeNode()
ColorOcTreeNode::operator==()
ColorOcTreeNode::copyData()
ColorOcTreeNode::getColor()
ColorOcTreeNode::setColor()
ColorOcTreeNode::isColorSet()
ColorOcTreeNode::updateColorChildren()
ColorOcTreeNode::getAverageChildColor()
ColorOcTreeNode::readData()
ColorOcTreeNode::writeData()
ColorOcTreeNode::color
ColorOcTreeNode::Color
ColorOcTreeNode::Color::Color()
ColorOcTreeNode::Color::operator==()
ColorOcTreeNode::Color::operator!=()
ColorOcTreeNode::Color::r
ColorOcTreeNode::Color::g
ColorOcTreeNode::Color::b
Color
Color::Color()
Color::operator==()
Color::operator!=()
Color::r
Color::g
Color::b
CountingOcTree
CountingOcTree::CountingOcTree()
CountingOcTree::updateNode()
CountingOcTree::getCentersMinHits()
CountingOcTree::getCentersMinHitsRecurs()
CountingOcTree::countingOcTreeMemberInit
CountingOcTree::StaticMemberInitializer
CountingOcTree::StaticMemberInitializer::StaticMemberInitializer()
CountingOcTree::StaticMemberInitializer::ensureLinking()
CountingOcTreeNode
CountingOcTreeNode::CountingOcTreeNode()
CountingOcTreeNode::~CountingOcTreeNode()
CountingOcTreeNode::getCount()
CountingOcTreeNode::increaseCount()
CountingOcTreeNode::setCount()
KeyRay
KeyRay::iterator
KeyRay::const_iterator
KeyRay::reverse_iterator
KeyRay::KeyRay()
KeyRay::reset()
KeyRay::addKey()
KeyRay::size()
KeyRay::sizeMax()
KeyRay::begin()
KeyRay::end()
KeyRay::rbegin()
KeyRay::rend()
MapCollection
MapCollection::iterator
MapCollection::const_iterator
MapCollection::MapCollection()
MapCollection::~MapCollection()
MapCollection::addNode()
MapCollection::removeNode()
MapCollection::queryNode()
MapCollection::isOccupied()
MapCollection::getOccupancy()
MapCollection::castRay()
MapCollection::writePointcloud()
MapCollection::write()
MapCollection::insertScan()
MapCollection::begin()
MapCollection::end()
MapCollection::size()
MapCollection::clear()
MapCollection::read()
MapCollection::segment()
MapCollection::associate()
MapCollection::nodes
MapCollection::splitPathAndFilename()
MapCollection::combinePathAndFilename()
MapCollection::readTagValue()
MapNode
MapNode::TreeType
MapNode::MapNode()
MapNode::~MapNode()
MapNode::getMap()
MapNode::updateMap()
MapNode::getId()
MapNode::setId()
MapNode::getOrigin()
MapNode::generatePointcloud()
MapNode::writeMap()
MapNode::clear()
MapNode::readMap()
MapNode::node_map
MapNode::origin
MapNode::id
OccupancyOcTreeBase
OccupancyOcTreeBase::OccupancyOcTreeBase()
OccupancyOcTreeBase::~OccupancyOcTreeBase()
OccupancyOcTreeBase::insertPointCloud()
OccupancyOcTreeBase::insertPointCloudRays()
OccupancyOcTreeBase::setNodeValue()
OccupancyOcTreeBase::updateNode()
OccupancyOcTreeBase::toMaxLikelihood()
OccupancyOcTreeBase::insertRay()
OccupancyOcTreeBase::castRay()
OccupancyOcTreeBase::getRayIntersection()
OccupancyOcTreeBase::getNormals()
OccupancyOcTreeBase::useBBXLimit()
OccupancyOcTreeBase::bbxSet()
OccupancyOcTreeBase::setBBXMin()
OccupancyOcTreeBase::setBBXMax()
OccupancyOcTreeBase::getBBXMin()
OccupancyOcTreeBase::getBBXMax()
OccupancyOcTreeBase::getBBXBounds()
OccupancyOcTreeBase::getBBXCenter()
OccupancyOcTreeBase::inBBX()
OccupancyOcTreeBase::enableChangeDetection()
OccupancyOcTreeBase::isChangeDetectionEnabled()
OccupancyOcTreeBase::resetChangeDetection()
OccupancyOcTreeBase::changedKeysBegin()
OccupancyOcTreeBase::changedKeysEnd()
OccupancyOcTreeBase::numChangesDetected()
OccupancyOcTreeBase::computeUpdate()
OccupancyOcTreeBase::computeDiscreteUpdate()
OccupancyOcTreeBase::readBinaryData()
OccupancyOcTreeBase::readBinaryNode()
OccupancyOcTreeBase::writeBinaryNode()
OccupancyOcTreeBase::writeBinaryData()
OccupancyOcTreeBase::updateInnerOccupancy()
OccupancyOcTreeBase::integrateHit()
OccupancyOcTreeBase::integrateMiss()
OccupancyOcTreeBase::updateNodeLogOdds()
OccupancyOcTreeBase::nodeToMaxLikelihood()
OccupancyOcTreeBase::integrateMissOnRay()
OccupancyOcTreeBase::updateNodeRecurs()
OccupancyOcTreeBase::setNodeValueRecurs()
OccupancyOcTreeBase::updateInnerOccupancyRecurs()
OccupancyOcTreeBase::toMaxLikelihoodRecurs()
OccupancyOcTreeBase::use_bbx_limit
OccupancyOcTreeBase::bbx_min
OccupancyOcTreeBase::bbx_max
OccupancyOcTreeBase::bbx_min_key
OccupancyOcTreeBase::bbx_max_key
OccupancyOcTreeBase::use_change_detection
OccupancyOcTreeBase::changed_keys
OcTree
OcTree::OcTree()
OcTree::~OcTree()
OcTree::create()
OcTree::getTreeType()
OcTree::ocTreeMemberInit
OcTree::StaticMemberInitializer
OcTree::StaticMemberInitializer::StaticMemberInitializer()
OcTree::StaticMemberInitializer::ensureLinking()
OcTreeBase
OcTreeBase::OcTreeBase()
OcTreeBase::create()
OcTreeBase::getTreeType()
OcTreeBaseImpl
OcTreeBaseImpl::NodeType
OcTreeBaseImpl::iterator
OcTreeBaseImpl::OcTreeBaseImpl()
OcTreeBaseImpl::~OcTreeBaseImpl()
OcTreeBaseImpl::swapContent()
OcTreeBaseImpl::operator==()
OcTreeBaseImpl::getTreeType()
OcTreeBaseImpl::setResolution()
OcTreeBaseImpl::getResolution()
OcTreeBaseImpl::getTreeDepth()
OcTreeBaseImpl::getNodeSize()
OcTreeBaseImpl::clearKeyRays()
OcTreeBaseImpl::createNodeChild()
OcTreeBaseImpl::deleteNodeChild()
OcTreeBaseImpl::getNodeChild()
OcTreeBaseImpl::isNodeCollapsible()
OcTreeBaseImpl::nodeChildExists()
OcTreeBaseImpl::nodeHasChildren()
OcTreeBaseImpl::expandNode()
OcTreeBaseImpl::pruneNode()
OcTreeBaseImpl::getRoot()
OcTreeBaseImpl::search()
OcTreeBaseImpl::deleteNode()
OcTreeBaseImpl::clear()
OcTreeBaseImpl::prune()
OcTreeBaseImpl::expand()
OcTreeBaseImpl::size()
OcTreeBaseImpl::memoryUsage()
OcTreeBaseImpl::memoryUsageNode()
OcTreeBaseImpl::memoryFullGrid()
OcTreeBaseImpl::volume()
OcTreeBaseImpl::getMetricSize()
OcTreeBaseImpl::getMetricMin()
OcTreeBaseImpl::getMetricMax()
OcTreeBaseImpl::calcNumNodes()
OcTreeBaseImpl::getNumLeafNodes()
OcTreeBaseImpl::getUnknownLeafCenters()
OcTreeBaseImpl::computeRayKeys()
OcTreeBaseImpl::computeRay()
OcTreeBaseImpl::readData()
OcTreeBaseImpl::writeData()
OcTreeBaseImpl::begin()
OcTreeBaseImpl::end()
OcTreeBaseImpl::begin_leafs()
OcTreeBaseImpl::end_leafs()
OcTreeBaseImpl::begin_leafs_bbx()
OcTreeBaseImpl::end_leafs_bbx()
OcTreeBaseImpl::begin_tree()
OcTreeBaseImpl::end_tree()
OcTreeBaseImpl::coordToKey()
OcTreeBaseImpl::adjustKeyAtDepth()
OcTreeBaseImpl::coordToKeyChecked()
OcTreeBaseImpl::keyToCoord()
OcTreeBaseImpl::init()
OcTreeBaseImpl::calcMinMax()
OcTreeBaseImpl::calcNumNodesRecurs()
OcTreeBaseImpl::readNodesRecurs()
OcTreeBaseImpl::writeNodesRecurs()
OcTreeBaseImpl::deleteNodeRecurs()
OcTreeBaseImpl::pruneRecurs()
OcTreeBaseImpl::expandRecurs()
OcTreeBaseImpl::getNumLeafNodesRecurs()
OcTreeBaseImpl::allocNodeChildren()
OcTreeBaseImpl::root
OcTreeBaseImpl::tree_depth
OcTreeBaseImpl::tree_max_val
OcTreeBaseImpl::resolution
OcTreeBaseImpl::resolution_factor
OcTreeBaseImpl::tree_size
OcTreeBaseImpl::size_changed
OcTreeBaseImpl::tree_center
OcTreeBaseImpl::max_value
OcTreeBaseImpl::min_value
OcTreeBaseImpl::sizeLookupTable
OcTreeBaseImpl::keyrays
OcTreeBaseImpl::leaf_iterator_end
OcTreeBaseImpl::leaf_iterator_bbx_end
OcTreeBaseImpl::tree_iterator_end
OcTreeDataNode
OcTreeDataNode::DataType
OcTreeDataNode::OcTreeDataNode()
OcTreeDataNode::~OcTreeDataNode()
OcTreeDataNode::copyData()
OcTreeDataNode::operator==()
OcTreeDataNode::OCTOMAP_DEPRECATED()
OcTreeDataNode::getValue()
OcTreeDataNode::setValue()
OcTreeDataNode::readData()
OcTreeDataNode::writeData()
OcTreeDataNode::allocChildren()
OcTreeDataNode::children
OcTreeDataNode::value
OcTreeKey
OcTreeKey::OcTreeKey()
OcTreeKey::operator==()
OcTreeKey::operator!=()
OcTreeKey::operator=()
OcTreeKey::operator[]()
OcTreeKey::k
OcTreeKey::KeyHash
OcTreeKey::KeyHash::operator()()
OcTreeNode
OcTreeNode::OcTreeNode()
OcTreeNode::~OcTreeNode()
OcTreeNode::getOccupancy()
OcTreeNode::getLogOdds()
OcTreeNode::setLogOdds()
OcTreeNode::getMeanChildLogOdds()
OcTreeNode::getMaxChildLogOdds()
OcTreeNode::updateOccupancyChildren()
OcTreeNode::addValue()
OcTreeNodeStamped
OcTreeNodeStamped::OcTreeNodeStamped()
OcTreeNodeStamped::operator==()
OcTreeNodeStamped::copyData()
OcTreeNodeStamped::getTimestamp()
OcTreeNodeStamped::updateTimestamp()
OcTreeNodeStamped::setTimestamp()
OcTreeNodeStamped::updateOccupancyChildren()
OcTreeNodeStamped::timestamp
OcTreeStamped
OcTreeStamped::OcTreeStamped()
OcTreeStamped::create()
OcTreeStamped::getTreeType()
OcTreeStamped::getLastUpdateTime()
OcTreeStamped::degradeOutdatedNodes()
OcTreeStamped::updateNodeLogOdds()
OcTreeStamped::integrateMissNoTime()
OcTreeStamped::ocTreeStampedMemberInit
OcTreeStamped::StaticMemberInitializer
OcTreeStamped::StaticMemberInitializer::StaticMemberInitializer()
OcTreeStamped::StaticMemberInitializer::ensureLinking()
Pointcloud
Pointcloud::iterator
Pointcloud::const_iterator
Pointcloud::Pointcloud()
Pointcloud::~Pointcloud()
Pointcloud::size()
Pointcloud::clear()
Pointcloud::reserve()
Pointcloud::push_back()
Pointcloud::writeVrml()
Pointcloud::transform()
Pointcloud::rotate()
Pointcloud::transformAbsolute()
Pointcloud::calcBBX()
Pointcloud::crop()
Pointcloud::minDist()
Pointcloud::subSampleRandom()
Pointcloud::begin()
Pointcloud::end()
Pointcloud::back()
Pointcloud::getPoint()
Pointcloud::operator[]()
Pointcloud::readBinary()
Pointcloud::read()
Pointcloud::writeBinary()
Pointcloud::current_inv_transform
Pointcloud::points
ScanEdge
ScanEdge::ScanEdge()
ScanEdge::operator==()
ScanEdge::writeBinary()
ScanEdge::readBinary()
ScanEdge::writeASCII()
ScanEdge::readASCII()
ScanEdge::first
ScanEdge::second
ScanEdge::constraint
ScanEdge::weight
ScanGraph
ScanGraph::iterator
ScanGraph::const_iterator
ScanGraph::edge_iterator
ScanGraph::const_edge_iterator
ScanGraph::ScanGraph()
ScanGraph::~ScanGraph()
ScanGraph::clear()
ScanGraph::addNode()
ScanGraph::addEdge()
ScanGraph::getNodeByID()
ScanGraph::edgeExists()
ScanGraph::connectPrevious()
ScanGraph::getNeighborIDs()
ScanGraph::getOutEdges()
ScanGraph::getInEdges()
ScanGraph::exportDot()
ScanGraph::transformScans()
ScanGraph::crop()
ScanGraph::cropEachScan()
ScanGraph::begin()
ScanGraph::end()
ScanGraph::size()
ScanGraph::getNumPoints()
ScanGraph::edges_begin()
ScanGraph::edges_end()
ScanGraph::writeBinary()
ScanGraph::readBinary()
ScanGraph::writeEdgesASCII()
ScanGraph::readEdgesASCII()
ScanGraph::writeNodePosesASCII()
ScanGraph::readNodePosesASCII()
ScanGraph::readPlainASCII()
ScanGraph::nodes
ScanGraph::edges
ScanNode
ScanNode::ScanNode()
ScanNode::~ScanNode()
ScanNode::operator==()
ScanNode::writeBinary()
ScanNode::readBinary()
ScanNode::writePoseASCII()
ScanNode::readPoseASCII()
ScanNode::scan
ScanNode::pose
ScanNode::id
Pose6D
Pose6D::Pose6D()
Pose6D::~Pose6D()
Pose6D::operator=()
Pose6D::operator==()
Pose6D::operator!=()
Pose6D::trans()
Pose6D::rot()
Pose6D::x()
Pose6D::y()
Pose6D::z()
Pose6D::roll()
Pose6D::pitch()
Pose6D::yaw()
Pose6D::transform()
Pose6D::inv()
Pose6D::inv_IP()
Pose6D::operator*()
Pose6D::operator*=()
Pose6D::distance()
Pose6D::transLength()
Pose6D::write()
Pose6D::read()
Pose6D::writeBinary()
Pose6D::readBinary()
Pose6D::translation
Pose6D::rotation
Quaternion
Quaternion::Quaternion()
Quaternion::toEuler()
Quaternion::toRotMatrix()
Quaternion::operator()()
Quaternion::norm()
Quaternion::normalized()
Quaternion::normalize()
Quaternion::operator/=()
Quaternion::operator=()
Quaternion::operator==()
Quaternion::operator*()
Quaternion::inv()
Quaternion::inv_IP()
Quaternion::rotate()
Quaternion::u()
Quaternion::x()
Quaternion::y()
Quaternion::z()
Quaternion::read()
Quaternion::write()
Quaternion::readBinary()
Quaternion::writeBinary()
Quaternion::data
Vector3
Vector3::Vector3()
Vector3::operator=()
Vector3::cross()
Vector3::dot()
Vector3::operator()()
Vector3::x()
Vector3::y()
Vector3::z()
Vector3::roll()
Vector3::pitch()
Vector3::yaw()
Vector3::operator-()
Vector3::operator+()
Vector3::operator*()
Vector3::operator+=()
Vector3::operator-=()
Vector3::operator/=()
Vector3::operator*=()
Vector3::operator==()
Vector3::operator<()
Vector3::norm()
Vector3::norm_sq()
Vector3::normalize()
Vector3::normalized()
Vector3::angleTo()
Vector3::distance()
Vector3::distanceXY()
Vector3::rotate_IP()
Vector3::read()
Vector3::write()
Vector3::readBinary()
Vector3::writeBinary()
Vector3::data
tree_iterator
tree_iterator::tree_iterator()
tree_iterator::operator++()
tree_iterator::isLeaf()
computeChildIdx()
computeChildKey()
computeIndexKey()
logodds()
operator<<()
probability()
edgeTable
triTable
vertexList
key_type
KeyBoolMap
KeySet
OcTreeVolume
point3d
point3d_collection
point3d_list
pose6d
/tmp/ws/src/octomap/octomap/include/octomap/AbstractOccupancyOcTree.h
/tmp/ws/src/octomap/octomap/include/octomap/AbstractOcTree.h
/tmp/ws/src/octomap/octomap/include/octomap/ColorOcTree.h
/tmp/ws/src/octomap/octomap/include/octomap/CountingOcTree.h
/tmp/ws/src/octomap/octomap/include/octomap/MapCollection.h
/tmp/ws/src/octomap/octomap/include/octomap/MapCollection.hxx
/tmp/ws/src/octomap/octomap/include/octomap/MapNode.h
/tmp/ws/src/octomap/octomap/include/octomap/MapNode.hxx
/tmp/ws/src/octomap/octomap/include/octomap/MCTables.h
/tmp/ws/src/octomap/octomap/include/octomap/OccupancyOcTreeBase.h
/tmp/ws/src/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx
/tmp/ws/src/octomap/octomap/include/octomap/octomap.h
/tmp/ws/src/octomap/octomap/include/octomap/octomap_deprecated.h
/tmp/ws/src/octomap/octomap/include/octomap/octomap_timing.h
/tmp/ws/src/octomap/octomap/include/octomap/octomap_types.h
/tmp/ws/src/octomap/octomap/include/octomap/octomap_utils.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTree.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeBase.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeBaseImpl.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeBaseImpl.hxx
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeDataNode.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeDataNode.hxx
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeIterator.hxx
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeKey.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeNode.h
/tmp/ws/src/octomap/octomap/include/octomap/OcTreeStamped.h
/tmp/ws/src/octomap/octomap/include/octomap/Pointcloud.h
/tmp/ws/src/octomap/octomap/include/octomap/math/Pose6D.h
/tmp/ws/src/octomap/octomap/include/octomap/math/Quaternion.h
/tmp/ws/src/octomap/octomap/include/octomap/ScanGraph.h
/tmp/ws/src/octomap/octomap/include/octomap/math/Utils.h
/tmp/ws/src/octomap/octomap/include/octomap/math/Vector3.h
Defined in File OcTreeKey.h
generate child index (between 0 and 7) from key at given tree depth