#include <MRAABBTree.h>
Public Member Functions | |
MRMESH_API | AABBTree (const MeshPart &mp) |
creates tree for given mesh or its part | |
AABBTree ()=default | |
AABBTree (AABBTree &&) noexcept=default | |
AABBTree & | operator= (AABBTree &&) noexcept=default |
MRMESH_API void | refit (const Mesh &mesh, const VertBitSet &changedVerts) |
Public Member Functions inherited from MR::AABBTreeBase< FaceTreeTraits3 > | |
const NodeVec & | nodes () const |
const-access to all nodes | |
const Node & | operator[] (NodeId nid) const |
const-access to any node | |
BoxT | getBoundingBox () const |
returns the root node bounding box | |
size_t | heapBytes () const |
returns the amount of memory this object occupies on heap | |
size_t | numLeaves () const |
returns the number of leaves in whole tree | |
MRMESH_API std::vector< NodeId > | getSubtrees (int minNum) const |
returns at least given number of top-level not-intersecting subtrees, union of which contain all tree leaves | |
MRMESH_API LeafBitSet | getSubtreeLeaves (NodeId subtreeRoot) const |
returns all leaves in the subtree with given root | |
MRMESH_API NodeBitSet | getNodesFromLeaves (const LeafBitSet &leaves) const |
returns set of nodes containing among direct or indirect children given leaves | |
MRMESH_API void | getLeafOrder (LeafBMap &leafMap) const |
MRMESH_API void | getLeafOrderAndReset (LeafBMap &leafMap) |
Friends | |
class | UniqueThreadSafeOwner< AABBTree > |
Additional Inherited Members | |
Public Types inherited from MR::AABBTreeBase< FaceTreeTraits3 > | |
using | Traits |
using | Node |
using | NodeVec |
using | LeafTag |
using | LeafId |
using | LeafBitSet |
using | LeafBMap |
using | BoxT |
Static Public Member Functions inherited from MR::AABBTreeBase< FaceTreeTraits3 > | |
static NodeId | rootNodeId () |
returns root node id | |
Protected Attributes inherited from MR::AABBTreeBase< FaceTreeTraits3 > | |
NodeVec | nodes_ |
bounding volume hierarchy
|
explicitnodiscard |
creates tree for given mesh or its part
|
default |
|
defaultnoexcept |
MRMESH_API void MR::AABBTree::refit | ( | const Mesh & | mesh, |
const VertBitSet & | changedVerts ) |
updates bounding boxes of the nodes containing changed vertices; this is a faster alternative to full tree rebuild (but the tree after refit might be less efficient)
mesh | same mesh for which this tree was constructed but with updated coordinates; |
changedVerts | vertex ids with modified coordinates (since tree construction or last refit) |
|
friend |