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 &mesh, int tdim, const std::span< const std::int32_t > &entities, double padding=0) |
| Constructor. More...
|
|
| BoundingBoxTree (const mesh::Mesh &mesh, int tdim, double padding=0) |
| Constructor. More...
|
|
| BoundingBoxTree (std::vector< std::pair< std::array< double, 3 >, std::int32_t >> points) |
| Constructor. More...
|
|
| 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< std::array< double, 3 >, 2 > | get_bbox (std::size_t node) const |
| Return bounding box coordinates for a given node in the tree. More...
|
|
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. More...
|
|
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< int, 2 > | bbox (std::size_t node) const |
| Get bounding box child nodes. More...
|
|
Axis-Aligned bounding box binary tree. It is used to find entities in a collection (often a mesh::Mesh).
◆ BoundingBoxTree() [1/3]
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] | entities | List of entity indices (local to process) to compute the bounding box for (may be empty, if none). |
[in] | padding | A float perscribing how much the bounding box of each entity should be padded |
◆ BoundingBoxTree() [2/3]
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 | A float perscribing how much the bounding box of each entity should be padded |
◆ BoundingBoxTree() [3/3]
BoundingBoxTree |
( |
std::vector< std::pair< std::array< double, 3 >, std::int32_t >> |
points | ) |
|
Constructor.
- Parameters
-
[in] | points | Cloud of points, with associated point identifier index, to build the bounding box tree around |
◆ bbox()
std::array<int, 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()
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()
std::array< std::array< double, 3 >, 2 > get_bbox |
( |
std::size_t |
node | ) |
const |
Return bounding box coordinates for a given node in the tree.
- Parameters
-
[in] | node | The bounding box node index |
- Returns
- The bounding box where [0] is the lower corner and [1] is the upper corner
The documentation for this class was generated from the following files:
- /__w/dolfinx/dolfinx/cpp/dolfinx/geometry/BoundingBoxTree.h
- /__w/dolfinx/dolfinx/cpp/dolfinx/geometry/BoundingBoxTree.cpp