BoundingBoxTree¶
-
class
dolfin.cpp.mesh.
BoundingBoxTree
¶ Bases:
object
This class implements a (distributed) axis aligned bounding box tree (AABB tree). Bounding box trees can be created from meshes and [other data structures, to be filled in].
Create empty bounding box tree.
-
build
()¶ Build bounding box tree for mesh entities of given dimension. Arguments mesh (
Mesh
) The mesh for which to compute the bounding box tree. dimension (std::size_t) The entity dimension (topological dimension) for which to compute the bounding box tree.Parameters: - Mesh & mesh (const) –
- tdim (std::size_t) –
Return type: void
-
collides
()¶ Check whether given point collides with the bounding box tree. This is equivalent to calling compute_first_collision and checking whether any collision was detected. Returns bool True iff the point is inside the tree.
Parameters: Point & point (const) – Return type: bool
-
collides_entity
()¶ Check whether given point collides with any entity contained in the bounding box tree. This is equivalent to calling compute_first_entity_collision and checking whether any collision was detected. Returns bool True iff the point is inside the tree.
Parameters: Point & point (const) – Return type: bool
-
compute_closest_entity
()¶ Compute closest entity to
Point
. Returns unsigned int The local index for the entity that is closest to the point. If more than one entity is at the same distance (or point contained in entity), then the first entity is returned. double The distance to the closest entity. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: std::pair< unsigned int, double >
-
compute_closest_point
()¶ Compute closest point to
Point
. This function assumes that the tree has been built for a point cloud. Developer note: This function should not be confused with computing the closest point in all entities of a mesh. That function could be added with relative ease since we actually compute the closest points to get the distance in the above function (compute_closest_entity) inside the specialized implementations in TetrahedronCell.cpp etc. Returns unsigned int The local index for the point that is closest to the point. If more than one point is at the same distance (or point contained in entity), then the first point is returned. double The distance to the closest point. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: std::pair< unsigned int, double >
-
compute_collisions
()¶ Compute all collisions between bounding boxes and
Point
. Returns std::vector<unsigned int> A list of local indices for entities contained in (leaf) bounding boxes that collide with (intersect) the given point. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: std::vector< unsigned int >
-
compute_entity_collisions
()¶ Compute all collisions between entities and
Point
. Returns std::vector<unsigned int> A list of local indices for entities that collide with (intersect) the given point. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: std::vector< unsigned int >
-
compute_first_collision
()¶ Compute first collision between bounding boxes and
Point
. Returns unsigned int The local index for the first found entity contained in a (leaf) bounding box that collides with (intersects) the given point. If not found, std::numeric_limits<unsigned int>::max() is returned. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: unsigned int
-
compute_first_entity_collision
()¶ Compute first collision between entities and
Point
. Returns unsigned int The local index for the first found entity that collides with (intersects) the given point. If not found, std::numeric_limits<unsigned int>::max() is returned. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: unsigned int
-
compute_process_collisions
()¶ Compute all collisions between process bounding boxes and
Point
. Effectively a list of processes which may contain thePoint
. Returns std::vector<unsigned int> A list of process numbers where theMesh
may collide with (intersect) the given point. Arguments point (Point
) The point.Parameters: Point & point (const) – Return type: std::vector< unsigned int >
-
thisown
¶ The membership flag
-