| 2 | import numpy as np |
| 3 | |
| 4 | class AABBTree: |
| 5 | def __init__(self): |
| 6 | self.__raw_tree = None |
| 7 | |
| 8 | def load_data(self, vertices, faces): |
| 9 | self.__raw_tree = PyMesh.AABBTree(vertices, faces) |
| 10 | |
| 11 | def load_mesh(self, mesh): |
| 12 | self.__raw_tree = PyMesh.AABBTree(mesh.vertices, mesh.faces) |
| 13 | |
| 14 | def look_up(self, pts): |
| 15 | sq_dists, face_indices = \ |
| 16 | self.__raw_tree.look_up(pts) |
| 17 | return sq_dists.squeeze(), face_indices.squeeze() |
| 18 | |
| 19 | def look_up_with_closest_points(self, pts): |
| 20 | sq_dists, face_indices, closest_pts = \ |
| 21 | self.__raw_tree.look_up_with_closest_points(pts) |
| 22 | return sq_dists.squeeze(), face_indices.squeeze(), closest_pts |
| 23 | |
| 24 | def do_intersect_segments(self, vertices, edges): |
| 25 | return self.__raw_tree.do_intersect_segments(vertices, edges).squeeze() |
| 26 | |
| 27 | class AABBTree2: |
| 28 | def __init__(self): |