Axis-Aligned bounding box binary tree. It is used to find entities in a collection (often a mesh::Mesh).
More...
#include <BoundingBoxTree.h>
|
| BoundingBoxTree (const mesh::Mesh< T > &mesh, int tdim, std::span< const std::int32_t > entities, double padding=0) |
| Constructor.
|
|
| BoundingBoxTree (const mesh::Mesh< T > &mesh, int tdim, T padding=0) |
| Constructor.
|
|
| BoundingBoxTree (std::vector< std::pair< std::array< T, 3 >, std::int32_t > > points) |
| Constructor.
|
|
| BoundingBoxTree (BoundingBoxTree &&tree)=default |
| Move constructor.
|
|
| BoundingBoxTree (const BoundingBoxTree &tree)=delete |
| Copy constructor.
|
|
BoundingBoxTree & | operator= (BoundingBoxTree &&other)=default |
| Move assignment.
|
|
BoundingBoxTree & | operator= (const BoundingBoxTree &other)=default |
| Copy assignment.
|
|
| ~BoundingBoxTree ()=default |
| Destructor.
|
|
std::array< T, 6 > | get_bbox (std::size_t node) const |
| Return bounding box coordinates for a given node in the tree,.
|
|
BoundingBoxTree | create_global_tree (MPI_Comm comm) const |
| Compute a global bounding tree (collective on comm) This can be used to find which process a point might have a collision with.
|
|
std::int32_t | num_bboxes () const |
| Return number of bounding boxes.
|
|
int | tdim () const |
| Topological dimension of leaf entities.
|
|
std::string | str () const |
| Print out for debugging.
|
|
std::array< std::int32_t, 2 > | bbox (std::size_t node) const |
| Get bounding box child nodes.
|
|
template<std::floating_point T>
class dolfinx::geometry::BoundingBoxTree< T >
Axis-Aligned bounding box binary tree. It is used to find entities in a collection (often a mesh::Mesh).
◆ BoundingBoxTree() [1/3]
template<std::floating_point T>
Constructor.
- Parameters
-
[in] | mesh | Mesh for building the bounding box tree. |
[in] | tdim | Topological dimension of the mesh entities to build the bounding box tree for. |
[in] | entities | List of entity indices (local to process) to compute the bounding box for (may be empty, if none). |
[in] | padding | Value to pad (extend) the the bounding box of each entity by. |
◆ BoundingBoxTree() [2/3]
template<std::floating_point T>
Constructor.
- Parameters
-
[in] | mesh | The mesh for building the bounding box tree |
[in] | tdim | The topological dimension of the mesh entities to build the bounding box tree for |
[in] | padding | Value to pad (extend) the the bounding box of each entity by. |
◆ BoundingBoxTree() [3/3]
template<std::floating_point T>
BoundingBoxTree |
( |
std::vector< std::pair< std::array< T, 3 >, std::int32_t > > |
points | ) |
|
|
inline |
Constructor.
- Parameters
-
[in] | points | Cloud of points, with associated point identifier index, to build the bounding box tree around |
◆ bbox()
template<std::floating_point T>
std::array< std::int32_t, 2 > bbox |
( |
std::size_t |
node | ) |
const |
|
inline |
Get bounding box child nodes.
- Parameters
-
[in] | node | The bounding box node index |
- Returns
- The indices of the two child nodes. If
node
is a leaf nodes, then the values in the returned array are equal and correspond to the index of the entity that the leaf node bounds, e.g. the index of the cell that it bounds.
◆ create_global_tree()
template<std::floating_point T>
Compute a global bounding tree (collective on comm) This can be used to find which process a point might have a collision with.
- Parameters
-
[in] | comm | MPI Communicator for collective communication |
- Returns
- BoundingBoxTree where each node represents a process
◆ get_bbox()
template<std::floating_point T>
std::array< T, 6 > get_bbox |
( |
std::size_t |
node | ) |
const |
|
inline |
Return bounding box coordinates for a given node in the tree,.
- Parameters
-
[in] | node | The bounding box node index. |
- Returns
- Bounding box coordinates (lower_corner, upper_corner). Shape is (2, 3), row-major storage.
The documentation for this class was generated from the following file: