template <typename Rtree> inline bool are_counts_ok(Rtree const& tree) { typedef utilities::view<Rtree> RTV; RTV rtv(tree); visitors::are_counts_ok< typename RTV::value_type, typename RTV::options_type, typename RTV::box_type, typename RTV::allocators_type > v(tree.parameters()); rtv.apply_visitor(v); return v.result; }
template <typename Rtree> inline bool are_boxes_ok(Rtree const& tree, bool exact_match = true) { typedef utilities::view<Rtree> RTV; RTV rtv(tree); visitors::are_boxes_ok< typename RTV::value_type, typename RTV::options_type, typename RTV::translator_type, typename RTV::box_type, typename RTV::allocators_type > v(rtv.translator(), exact_match); rtv.apply_visitor(v); return v.result; }
template <typename Rtree> inline pdalboost::tuple<std::size_t, std::size_t, std::size_t, std::size_t, std::size_t, std::size_t> statistics(Rtree const& tree) { typedef utilities::view<Rtree> RTV; RTV rtv(tree); visitors::statistics< typename RTV::value_type, typename RTV::options_type, typename RTV::box_type, typename RTV::allocators_type > stats_v; rtv.apply_visitor(stats_v); return pdalboost::make_tuple(stats_v.levels, stats_v.nodes, stats_v.leaves, stats_v.values, stats_v.values_min, stats_v.values_max); }