MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::AABBTreePolyline< V > Class Template Reference

bounding volume hierarchy for line segments More...

#include <MRMesh/MRAABBTreePolyline.h>

Inheritance diagram for MR::AABBTreePolyline< V >:

Public Member Functions

 AABBTreePolyline (const typename PolylineTraits< V >::Polyline &polyline)
 creates tree for given polyline
 AABBTreePolyline (AABBTreePolyline &&) noexcept=default
AABBTreePolylineoperator= (AABBTreePolyline &&) noexcept=default
Public Member Functions inherited from MR::AABBTreeBase< LineTreeTraits< V > >
const NodeVecnodes () const
 const-access to all nodes
const Nodeoperator[] (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
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
LeafBitSet getSubtreeLeaves (NodeId subtreeRoot) const
 returns all leaves in the subtree with given root
NodeBitSet getNodesFromLeaves (const LeafBitSet &leaves) const
 returns set of nodes containing among direct or indirect children given leaves
void getLeafOrder (LeafBMap &leafMap) const
void getLeafOrderAndReset (LeafBMap &leafMap)

Public Attributes

AABBTreePolyline(const Mesh &mesh, const UndirectedEdgeBitSet &edgeSet) MR_REQUIRES_IF_SUPPORTEDAABBTreePolyline )()=default
 creates tree for selected edges on the mesh (only for 3d tree)

Friends

class UniqueThreadSafeOwner< AABBTreePolyline >
class SharedThreadSafeOwner< AABBTreePolyline >

Additional Inherited Members

Public Types inherited from MR::AABBTreeBase< LineTreeTraits< V > >
using Traits
using Node
using NodeVec
using LeafTag
using LeafId
using LeafBitSet
using LeafBMap
using BoxT
Static Public Member Functions inherited from MR::AABBTreeBase< LineTreeTraits< V > >
static NodeId rootNodeId ()
 returns root node id
Protected Attributes inherited from MR::AABBTreeBase< LineTreeTraits< V > >
NodeVec nodes_

Detailed Description

template<typename V>
class MR::AABBTreePolyline< V >

bounding volume hierarchy for line segments

Constructor & Destructor Documentation

◆ AABBTreePolyline() [1/2]

template<typename V>
MR::AABBTreePolyline< V >::AABBTreePolyline ( const typename PolylineTraits< V >::Polyline & polyline)
explicit

creates tree for given polyline

◆ AABBTreePolyline() [2/2]

template<typename V>
MR::AABBTreePolyline< V >::AABBTreePolyline ( AABBTreePolyline< V > && )
defaultnoexcept

Member Function Documentation

◆ operator=()

template<typename V>
AABBTreePolyline & MR::AABBTreePolyline< V >::operator= ( AABBTreePolyline< V > && )
defaultnoexcept

◆ SharedThreadSafeOwner< AABBTreePolyline >

template<typename V>
friend class SharedThreadSafeOwner< AABBTreePolyline >
friend

◆ UniqueThreadSafeOwner< AABBTreePolyline >

template<typename V>
friend class UniqueThreadSafeOwner< AABBTreePolyline >
friend

Member Data Documentation

◆ AABBTreePolyline

template<typename V>
AABBTreePolyline(const Mesh &mesh, const UndirectedEdgeBitSet &edgeSet) MR_REQUIRES_IF_SUPPORTED( MR::AABBTreePolyline< V >::AABBTreePolyline) ()=default
default

creates tree for selected edges on the mesh (only for 3d tree)


The documentation for this class was generated from the following file: