ellipsoid_tree 0.1.0
Exact intersection tests for ellipsoids and friends
Loading...
Searching...
No Matches
ellipsoid_tree::BoxTree Class Reference

Spatial index over a collection of axis-aligned boxes. More...

#include <ellipsoid_tree/object_tree.hpp>

Inheritance diagram for ellipsoid_tree::BoxTree:

Public Member Functions

 BoxTree ()=default
 Empty tree (indexes no boxes).
 
 BoxTree (std::vector< Box > boxes)
 Index a collection of axis-aligned boxes, building an AABBTree over them.
 
 BoxTree (const Eigen::Ref< const Eigen::MatrixXd > &lo, const Eigen::Ref< const Eigen::MatrixXd > &hi)
 Index boxes given as columns of lower- and upper-corner matrices (dim x n).
 
int size () const
 Number of indexed boxes.
 
int dim () const
 Spatial dimension of the indexed boxes.
 
const Boxobject (int ii) const
 The ii-th indexed box.
 
const std::vector< Box > & objects () const
 All indexed boxes, in index order.
 
const AABBTreetree () const
 The underlying AABB tree over the elements' bounding boxes.
 
std::vector< int > collisions (const Eigen::Ref< const Eigen::VectorXd > &p) const
 Indices of the boxes containing the query point.
 
std::vector< int > collisions (const Box &q) const
 Indices of the boxes intersecting the query box.
 
std::vector< int > collisions (const Ball &q) const
 Indices of the boxes intersecting the query ball.
 
std::vector< int > collisions (const Ellipsoid &q, double tau) const
 Indices of the boxes intersecting the query ellipsoid at scale tau.
 
std::vector< int > collisions (const Simplex &q) const
 Indices of the boxes intersecting the query simplex.
 
std::vector< int > collisions (const Segment &q) const
 Indices of the boxes intersecting the query segment.
 
std::vector< int > collisions (const Halfspace &q) const
 Indices of the boxes intersecting the query halfspace.
 
std::vector< std::pair< int, int > > self_collision_pairs () const
 Every intersecting pair within the family of boxes (the overlap graph).
 

Public Attributes

bool exact_ellipsoid_pruning = true
 Enable the exact ellipsoid-box test during node pruning (vs. bounding-box only).
 

Detailed Description

Spatial index over a collection of axis-aligned boxes.

Constructor & Destructor Documentation

◆ BoxTree() [1/3]

ellipsoid_tree::BoxTree::BoxTree ( )
default

Empty tree (indexes no boxes).

◆ BoxTree() [2/3]

ellipsoid_tree::BoxTree::BoxTree ( std::vector< Box boxes)
inlineexplicit

Index a collection of axis-aligned boxes, building an AABBTree over them.

◆ BoxTree() [3/3]

ellipsoid_tree::BoxTree::BoxTree ( const Eigen::Ref< const Eigen::MatrixXd > &  lo,
const Eigen::Ref< const Eigen::MatrixXd > &  hi 
)
inline

Index boxes given as columns of lower- and upper-corner matrices (dim x n).

Member Function Documentation

◆ size()

int ellipsoid_tree::BoxTree::size ( ) const
inline

Number of indexed boxes.

◆ dim()

int ellipsoid_tree::BoxTree::dim ( ) const
inline

Spatial dimension of the indexed boxes.

◆ object()

const Box & ellipsoid_tree::BoxTree::object ( int  ii) const
inline

The ii-th indexed box.

◆ objects()

const std::vector< Box > & ellipsoid_tree::BoxTree::objects ( ) const
inline

All indexed boxes, in index order.

◆ tree()

const AABBTree & ellipsoid_tree::BoxTree::tree ( ) const
inline

The underlying AABB tree over the elements' bounding boxes.

◆ collisions() [1/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Eigen::Ref< const Eigen::VectorXd > &  p) const
inline

Indices of the boxes containing the query point.

◆ collisions() [2/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Box q) const
inline

Indices of the boxes intersecting the query box.

◆ collisions() [3/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Ball q) const
inline

Indices of the boxes intersecting the query ball.

◆ collisions() [4/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Ellipsoid q,
double  tau 
) const
inline

Indices of the boxes intersecting the query ellipsoid at scale tau.

◆ collisions() [5/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Simplex q) const
inline

Indices of the boxes intersecting the query simplex.

◆ collisions() [6/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Segment q) const
inline

Indices of the boxes intersecting the query segment.

◆ collisions() [7/7]

std::vector< int > ellipsoid_tree::BoxTree::collisions ( const Halfspace q) const
inline

Indices of the boxes intersecting the query halfspace.

◆ self_collision_pairs()

std::vector< std::pair< int, int > > ellipsoid_tree::BoxTree::self_collision_pairs ( ) const
inline

Every intersecting pair within the family of boxes (the overlap graph).

Member Data Documentation

◆ exact_ellipsoid_pruning

bool ellipsoid_tree::BoxTree::exact_ellipsoid_pruning = true

Enable the exact ellipsoid-box test during node pruning (vs. bounding-box only).


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