6 #ifndef MOAB_ADAPTIVE_KD_TREE_HPP
7 #define MOAB_ADAPTIVE_KD_TREE_HPP
19 class AdaptiveKDTreeIter;
90 const double iter_tol = 1.0e-10,
91 const double inside_tol = 1.0e-6,
92 bool* multiple_leaves = NULL,
116 const double iter_tol = 1.0e-10,
117 const double inside_tol = 1.0e-6,
118 bool* multiple_leaves = NULL,
137 const double distance,
138 std::vector< EntityHandle >& leaves_out,
139 const double iter_tol = 1.0e-10,
140 const double inside_tol = 1.0e-6,
141 std::vector< double >* dists_out = NULL,
142 std::vector< CartVect >* params_out = NULL,
207 const Range& left_entities,
208 const Range& right_entities );
214 const std::vector< EntityHandle >& left_entities,
215 const std::vector< EntityHandle >& right_entities );
227 const double from_coords[3],
228 double closest_point_out[3],
234 std::vector< EntityHandle >& triangles );
238 const double ray_unit_dir[3],
239 const double ray_base_pt[3],
240 std::vector< EntityHandle >& triangles_out,
241 std::vector< double >& distance_out,
242 int result_count_limit = 0,
243 double distance_limit = -1.0 );
270 const double from_point[3],
281 std::vector< Tag >& created_tags );
291 double& metric_value );
299 std::vector< double >& tmp_data,
316 std::vector< double >& coords,
325 std::vector< double >& coords,
326 std::vector< EntityHandle >& indices,
394 return mStack.back().entity;
490 std::vector< AdaptiveKDTreeIter >& results,
491 double epsilon = 0.0 )
const;
525 bool intersect_ray(
const double ray_point[3],
const double ray_vect[3],
double& t_enter,
double& t_exit )
const;