Bounding Volume Hierarchy (BVH) in N-D. More...
#include <Core/Geometry/BVH.hpp>
Public Types | |
| using | ContainerType = Array1< T > |
| using | Iterator = typename ContainerType::Iterator |
| using | ConstIterator = typename ContainerType::ConstIterator |
Detailed Description
Bounding Volume Hierarchy (BVH) in N-D.
This class implements the classic bounding volume hierarchy structure in N-D. It implements IntersectionQueryEngine in order to support box/ray intersection tests. Also, NearestNeighborQueryEngine is implemented to provide nearest neighbor query.
Member Typedef Documentation
◆ ConstIterator
| using CubbyFlow::BVH< T, N >::ConstIterator = typename ContainerType::ConstIterator |
◆ ContainerType
◆ Iterator
| using CubbyFlow::BVH< T, N >::Iterator = typename ContainerType::Iterator |
Member Function Documentation
◆ begin() [1/2]
| BVH< T, N >::Iterator CubbyFlow::BVH< T, N >::begin | ( | ) |
Returns the begin Iterator of the item.
◆ begin() [2/2]
| BVH< T, N >::ConstIterator CubbyFlow::BVH< T, N >::begin | ( | ) | const |
Returns the immutable begin Iterator of the item.
◆ Build()
| void CubbyFlow::BVH< T, N >::Build | ( | const ConstArrayView1< T > & | items, |
| const ConstArrayView1< BoundingBox< double, N > > & | itemsBounds | ||
| ) |
Builds bounding volume hierarchy.
◆ Children()
Returns the children indices of i-th node.
◆ Clear()
Clears all the contents of this instance.
◆ ClosestIntersection()
|
overridevirtual |
Returns the closest intersection for given ray.
Implements CubbyFlow::IntersectionQueryEngine< T, N >.
◆ end() [1/2]
| BVH< T, N >::Iterator CubbyFlow::BVH< T, N >::end | ( | ) |
Returns the end Iterator of the item.
◆ end() [2/2]
| BVH< T, N >::ConstIterator CubbyFlow::BVH< T, N >::end | ( | ) | const |
Returns the immutable end Iterator of the item.
◆ ForEachIntersectingItem() [1/2]
|
overridevirtual |
Invokes visitorFunc for every intersecting items.
Implements CubbyFlow::IntersectionQueryEngine< T, N >.
◆ ForEachIntersectingItem() [2/2]
|
overridevirtual |
Invokes visitorFunc for every intersecting items.
Implements CubbyFlow::IntersectionQueryEngine< T, N >.
◆ GetBoundingBox()
| const BoundingBox< double, N > & CubbyFlow::BVH< T, N >::GetBoundingBox | ( | ) | const |
Returns bounding box of every items.
◆ Intersects() [1/2]
|
overridevirtual |
Returns true if given box intersects with any of the stored items.
Implements CubbyFlow::IntersectionQueryEngine< T, N >.
◆ Intersects() [2/2]
|
overridevirtual |
Returns true if given ray intersects with any of the stored items.
Implements CubbyFlow::IntersectionQueryEngine< T, N >.
◆ IsLeaf()
Returns true if i-th node is a leaf node.
◆ Item()
Returns the item at i.
◆ ItemOfNode() [1/2]
| BVH< T, N >::Iterator CubbyFlow::BVH< T, N >::ItemOfNode | ( | size_t | i | ) |
Returns item of i-th node.
◆ ItemOfNode() [2/2]
| BVH< T, N >::ConstIterator CubbyFlow::BVH< T, N >::ItemOfNode | ( | size_t | i | ) | const |
Returns item of i-th node.
◆ Nearest()
|
inlineoverridevirtual |
Returns the nearest neighbor for given point and distance measure function.
Implements CubbyFlow::NearestNeighborQueryEngine< T, N >.
◆ NodeBound()
| const BoundingBox< double, N > & CubbyFlow::BVH< T, N >::NodeBound | ( | size_t | i | ) | const |
Returns bounding box of i-th node.
◆ NumberOfItems()
Returns the number of items.
◆ NumberOfNodes()
Returns the number of nodes.
The documentation for this class was generated from the following files:
- Core/Geometry/BVH.hpp
- Core/Geometry/BVH-Impl.hpp
Public Member Functions inherited from
1.9.8