|
| MbCubeTree (std::vector< ItemIndex > &objects, DistanceMeasure dm=edm_MaxCoord) |
| Tree constructor by objects. More...
|
|
| MbCubeTree (std::vector< ItemIndex > &objects, const Cube &gabarit, DistanceMeasure dm=edm_MaxCoord) |
| Tree constructor by objects. More...
|
|
| MbCubeTree (DistanceMeasure dm=edm_MaxCoord) |
| Constructor of empty tree. More...
|
|
| ~MbCubeTree () |
| Destuctror.
|
|
bool | InitTree (std::vector< ItemIndex > &objects, const Cube &gabarit, DistanceMeasure dm=edm_MaxCoord) |
| Initialize tree by objects. More...
|
|
bool | InitTree (const MbCubeTree &srcTree, const std::vector< ItemIndex > &srcObjects, const std::vector< ItemIndex > &dstObjects) |
| Copy the tree. More...
|
|
void | Clear () |
| Clear the tree.
|
|
void | Move (const Vector &) |
| Move the tree.
|
|
DistanceMeasure | GetDistanceMeasure () const |
| Get algorithm type that is used to measure distance between point and bounding box.
|
|
size_t | Count () const |
| Number of objects in the tree (does not store, tree calculates it by traversing tree nodes).
|
|
size_t | NodeCount () const |
| Number of branches in the tree.
|
|
bool | IsReady () const |
| Whether tree is ready.
|
|
size_t | GetTreeDepth () const |
| Get tree depth (shared variable).
|
|
void | SetTreeDepth (size_t k) |
| Set tree depth (shared variable).
|
|
void | ResetTreeDepth () |
| Reset tree depth (shared variable).
|
|
size_t | GetLeafMinElementsCount () const |
| Get a minimum number of elements in the leaf branch (shared variable).
|
|
void | SetLeafMinElementsCount (size_t k) |
| Set a minimum number of elements in the leaf branch (shared variable).
|
|
void | ResetLeafMinElementsCount () |
| Reset the minimum number of elements in the leaf branch (shared variable).
|
|
void | GetContainsObjects (const Point &pnt, double epsilon, std::vector< const Type * > &objects) const |
| Get tree objects containing a point.
|
|
void | GetContainsObjects (const Point &pnt, double epsilon, std::vector< size_t > &indices) const |
| Get tree objects containing a point.
|
|
void | GetIntersectObjects (const Cube &gabarit, double epsilon, std::vector< const Type * > &objects, bool skipOwnself=false) const |
| Get objects of the tree intersecting with the bounding box.
|
|
void | GetIntersectObjects (const Cube &gabarit, double epsilon, std::vector< size_t > &indices, bool skipOwnself=false) const |
| Get objects of the tree intersecting with the bounding box.
|
|
void | GetIntersectObjects (const Point &rayPnt1, const Point &rayPnt2, double epsilon, std::vector< size_t > &indices) const |
| Get objects of the tree intersecting with the ray segment.
|
|
void | FindNearestObject (const Cube &gabarit, double &distance, const Type *&object, double eps=MbCubeTree::defaultEpsilon) const |
| Find the nearest tree object to a bounding box.
|
|
void | FindNearestObject (const Cube &gabarit, double &distance, size_t &index, double eps=MbCubeTree::defaultEpsilon) const |
| Find the nearest tree object to a bounding box (as an index in initial array of objects).
|
|
void | FindNearestObject (const Point &pnt, double &distance, const Type *&object, double eps=MbCubeTree::defaultEpsilon) const |
| Find the nearest tree object to a point.
|
|
void | FindNearestObject (const Point &pnt, double &distance, size_t &index, double eps=MbCubeTree::defaultEpsilon) const |
| Find the nearest tree object to a point (as an index in initial array of objects).
|
|
void | GetNearestObjects (const Cube &gabarit, const double distance, std::vector< IndexDistance > &itemDistances, double eps=MbCubeTree::defaultEpsilon) const |
| Get tree objects that are closer to the cube than the specified distance.
|
|
void | GetNearestObjects (const Point &pnt, const double distance, std::vector< ItemDistance > &itemDistances, double eps=MbCubeTree::defaultEpsilon) const |
| Get tree objects that are closer to the point than the specified distance.
|
|
void | GetNearestObjects (const Point &pnt, const double distance, std::vector< IndexDistance > &indexDistances, double eps=MbCubeTree::defaultEpsilon) const |
| Get tree objects indices that are closer to the point than the specified distance.
|
|
void | GetNearestObjects (const Point &pnt, const double distance, std::vector< size_t > &indices, double eps=MbCubeTree::defaultEpsilon) const |
| Get tree objects indices that are closer to the point than the specified distance.
|
|
double | FindNearestObject (const Point &pnt, const MbTreeDistanceToElementBase< Point > &calc, size_t &index) const |
| Get tree objects index that are closest to the point, and squared distance to object.
|
|
void | FindObjectsInsideSphere (const Point &pnt, double radius, const MbTreeDistanceToElementBase< Point > &calc, c3d::IndicesVector &indices) const |
| Get an array of tree object indices at least partially lying inside a given sphere.
|
|
template<class Type, class Cube, class Point, class Vector>
class MbCubeTree< Type, Cube, Point, Vector >
Tree of objects with bounding boxes.
Tree of objects with bounding boxes.
Tree objects must have functions : "const Cube & Type::GetCube() const", "double Type::DistanceToCube( const Cube & cube, double eps )".