A KD-Tree for mesh faces. More...
Go to the source code of this file.
Classes | |
| struct | imesh_kd_tree_node | 
| A node in the KD-Tree.  More... | |
| class | imesh_kd_tree_queue_entry | 
| A class used for sorting a queue of tree nodes by an assigned value.  More... | |
Functions | |
| double | imesh_min_sq_dist (const vgl_point_3d< double > &p, const vgl_box_3d< double > &b) | 
| The minimum square distance between p and any point in b.   | |
| double | imesh_max_sq_dist (const vgl_point_3d< double > &p, const vgl_box_3d< double > &b) | 
| The maximum square distance between p and any point in b.   | |
| vcl_auto_ptr< imesh_kd_tree_node > | imesh_build_kd_tree (const vcl_vector< vgl_box_3d< double > > &boxes) | 
| Construct a kd-tree (in 3d) of axis aligned boxes.   | |
| vcl_auto_ptr< imesh_kd_tree_node > | imesh_build_kd_tree (const imesh_vertex_array< 3 > &verts, const imesh_face_array_base &faces) | 
| construct a kd-tree of mesh faces.   | |
| vcl_auto_ptr< imesh_kd_tree_node > | imesh_build_kd_tree (const imesh_mesh &mesh) | 
| construct a kd-tree of mesh faces.   | |
| unsigned int | imesh_kd_tree_closest_point (const vgl_point_3d< double > &query, const imesh_mesh &mesh, const vcl_auto_ptr< imesh_kd_tree_node > &root, vgl_point_3d< double > &cp, vcl_vector< imesh_kd_tree_queue_entry > *dists=0) | 
| compute the closest point on the mesh using the kd-tree.   | |
| void | imesh_kd_tree_traverse (const vgl_point_3d< double > &query, const vcl_auto_ptr< imesh_kd_tree_node > &root, vcl_vector< imesh_kd_tree_queue_entry > &internal, vcl_vector< imesh_kd_tree_queue_entry > &leaf) | 
| Traverse the tree looking for leaf nodes that contain the query.   | |
| vcl_auto_ptr<imesh_kd_tree_node> imesh_build_kd_tree | ( | const vcl_vector< vgl_box_3d< double > > & | boxes | ) | 
Construct a kd-tree (in 3d) of axis aligned boxes.
Definition at line 229 of file imesh_kd_tree.cxx.
| vcl_auto_ptr<imesh_kd_tree_node> imesh_build_kd_tree | ( | const imesh_vertex_array< 3 > & | verts, | 
| const imesh_face_array_base & | faces | ||
| ) | 
construct a kd-tree of mesh faces.
Definition at line 271 of file imesh_kd_tree.cxx.
| vcl_auto_ptr<imesh_kd_tree_node> imesh_build_kd_tree | ( | const imesh_mesh & | mesh | ) |  [inline] | 
        
construct a kd-tree of mesh faces.
Definition at line 82 of file imesh_kd_tree.h.
| unsigned int imesh_kd_tree_closest_point | ( | const vgl_point_3d< double > & | query, | 
| const imesh_mesh & | mesh, | ||
| const vcl_auto_ptr< imesh_kd_tree_node > & | root, | ||
| vgl_point_3d< double > & | cp, | ||
| vcl_vector< imesh_kd_tree_queue_entry > * | dists | ||
| ) | 
compute the closest point on the mesh using the kd-tree.
| dists | (if specified) returns a vector of all explored nodes and the closest square distance found so far | 
Definition at line 338 of file imesh_kd_tree.cxx.
| void imesh_kd_tree_traverse | ( | const vgl_point_3d< double > & | query, | 
| const vcl_auto_ptr< imesh_kd_tree_node > & | root, | ||
| vcl_vector< imesh_kd_tree_queue_entry > & | leaf, | ||
| vcl_vector< imesh_kd_tree_queue_entry > & | internal_node | ||
| ) | 
Traverse the tree looking for leaf nodes that contain the query.
Returns a vector of leaf nodes paired with min square distance to the inner box Also returns a vector of the unexplored internal node-distance^2 pairs Resulting vectors are unsorted
Definition at line 357 of file imesh_kd_tree.cxx.
| double imesh_max_sq_dist | ( | const vgl_point_3d< double > & | p, | 
| const vgl_box_3d< double > & | b | ||
| ) | 
The maximum square distance between p and any point in b.
Definition at line 53 of file imesh_kd_tree.cxx.
| double imesh_min_sq_dist | ( | const vgl_point_3d< double > & | p, | 
| const vgl_box_3d< double > & | b | ||
| ) | 
The minimum square distance between p and any point in b.
Definition at line 16 of file imesh_kd_tree.cxx.
 1.7.5.1