Check if each element intersects the mesh. Args: mesh (:class:`Mesh`): Input mesh. nodes(:class:`numpy.ndarray`): The nodes of the elements. elements (:class:`numpy.ndarray`): Connectivity of the nodes. Returns: A list indicating if each element intersects
(mesh, nodes, elements)
| 160 | return signed_distances, face_indices, closest_points, face_normals |
| 161 | |
| 162 | def do_intersect(mesh, nodes, elements): |
| 163 | """ Check if each element intersects the mesh. |
| 164 | |
| 165 | Args: |
| 166 | mesh (:class:`Mesh`): Input mesh. |
| 167 | nodes(:class:`numpy.ndarray`): The nodes of the elements. |
| 168 | elements (:class:`numpy.ndarray`): Connectivity of the nodes. |
| 169 | |
| 170 | Returns: |
| 171 | A list indicating if each element intersects the mesh. |
| 172 | """ |
| 173 | tree = AABBTree() |
| 174 | tree.load_mesh(mesh) |
| 175 | |
| 176 | assert(elements.ndim == 2) |
| 177 | elem_type = elements.shape[1] |
| 178 | if (elem_type == 2): |
| 179 | r =tree.do_intersect_segments(nodes, elements) != 0 |
| 180 | else: |
| 181 | raise NotImplementedError( |
| 182 | "AABB tree does not support element consisting of {} nodes"\ |
| 183 | .format(elem_type)) |
| 184 | return r |
| 185 | |
| 186 |
no test coverage detected