|
| | GU_SortKDTree (size_t size) |
| |
| void | setPos (int idx, const UT_Vector3 &pos) |
| |
| const int * | getIndices () const |
| |
| int | comparePosition (int idx0, int idx1, int dim) const override |
| |
| const float * | getP (int idx) const override |
| | Return the position associated with the given point. More...
|
| |
| | UT_KDTree (int dim=3, size_t size=0) |
| |
| virtual | ~UT_KDTree () |
| |
| virtual void | buildIfNeeded (bool enable_multithreading=true) |
| | This must be called before querying, to build and balance the tree. More...
|
| |
| int64 | getMemoryUsage (bool inclusive) const |
| |
| void | setEntries (size_t size) |
| |
| size_t | getEntries () const |
| |
| void | growEntries (size_t amount) |
| |
| size_t | getRebalanceCount () const |
| |
| void | setRebalanceCount (size_t count) |
| |
| void | setBalancer (ut_KDBalancer balance) |
| |
| void | setMaxLeafNodes (int max_leaf_nodes) |
| |
| void | flagDirty () |
| |
| virtual bool | pointsHaveRadius () const |
| |
| virtual fpreal | getRadius (int) const |
| | Return the radius associated with the point in question. More...
|
| |
| virtual bool | isValid (int) const |
| | Returns whether the given index should be considered in searches. More...
|
| |
| virtual bool | isValid (int idx, const UT_KDQueryPt &) const |
| |
| virtual int | getInvalidLimit (int maxn) const |
| |
| template<typename QueryPoint > |
| int | findClosest (const QueryPoint &pt, fpreal max_distance_squared) |
| |
| template<typename QueryPoint > |
| int | findClosestQueue (const QueryPoint &pt, ut_KDPQueue &queue, fpreal max_distance_squared) |
| |
| template<typename QueryPoint > |
| int | findClosest (UT_IntArray &list, const QueryPoint &pt, fpreal max_distance_squared, int max_nodes, bool sorted=true) |
| |
| template<typename QueryPoint > |
| int | findClosestQueue (UT_IntArray &list, const QueryPoint &pt, ut_KDPQueue &q, fpreal max_distance_squared, int max_nodes, bool sorted=true) |
| |
| template<typename QueryPoint > |
| int | findClosest (UT_IntArray &list, UT_FloatArray &dist, const QueryPoint &pt, fpreal max_distance_squared, int max_nodes, bool sorted=true) |
| |
| template<typename QueryPoint > |
| int | findClosestQueue (UT_IntArray &list, UT_FloatArray &dist, const QueryPoint &pt, ut_KDPQueue &q, fpreal max_distance_squared, int max_nodes, bool sorted=true) |
| |
| template<typename QueryPoint > |
| int | findNClosest (UT_IntArray &list, const QueryPoint &pt, int max_nodes) |
| |
| template<typename QueryPoint > |
| int | findAllClosest (UT_IntArray &list, const QueryPoint &pt, fpreal max_distance_squared) |
| |
| void | traverse (Visitor &visitor) |
| |
| void | filterVolume (VolumeData &data, const UT_Vector3 &pos, const UT_Filter &filter, const AggregateVolume &aggdata, int max_nodes) |
| |
| const fpreal * | getBoxMin () |
| |
| const fpreal * | getBoxMax () |
| |
|
| enum | ut_KDBalancer { UT_KD_MEDIAN,
UT_KD_SAH,
UT_KD_CENTROID
} |
| | KD Tree balancing algorithms. See setBalancer. More...
|
| |
| static ut_KDPQueuePtr | createQueue () |
| |
| int | getHead () const |
| |
| bool | isValid (int node, const UT_KDTubeQuery &) const |
| |
| bool | isValid (int node, const UT_KDLineQuery &) const |
| |
| bool | isValid (int node, const UT_KDTriQuery &) const |
| |
| bool | isValid (int node, const UT_KDTetQuery &) const |
| |
| bool | isValid (int node, const UT_KDQueryPtUnitWrap &) const |
| |
| template<typename QueryPoint > |
| int | findClosest (ut_KDPQueue &list, const QueryPoint &pt) |
| |
| template<typename QueryPoint > |
| void | recurseFind (ut_KDPQueue &list, const QueryPoint &pt, int split, int lo, int hi) const |
| |
| template<typename QueryPoint > |
| void | recurseFindTube (ut_KDPQueue &list, const QueryPoint &pt, int split, int lo, int hi) const |
| |
| template<typename QueryPoint > |
| void | recurseFindTri (ut_KDPQueue &list, const QueryPoint &pt, int split, int lo, int hi) const |
| |
| template<typename QueryPoint > |
| void | findInLeaf (ut_KDPQueue &list, const QueryPoint &pt, int lo, int hi, int invalid_limit, int &invalid) const |
| |
| bool | isBalanced () const |
| |
| void | traverseRecursive (Visitor &visitor, int split, int nodeid, UT_BoundingBox &box, int lo, int hi) |
| |
| void | computeBox (int start_index=0) |
| |
| bool | isBoxClose (const fpreal *P, fpreal qd, fpreal r) const |
| |
| void | balance (bool enable_multithreading=true) |
| |
| void | balanceSet (int &split, fpreal &radius, int *list, int entries, fpreal *boxmin, fpreal *boxmax, UT_Lock *splitlock) |
| |
| fpreal | myBMin [UT_KD_MAXDIM] |
| |
| fpreal | myBMax [UT_KD_MAXDIM] |
| |
| int * | myList |
| |
| UT_Array< KDSplit > | mySplits |
| |
| UT_Lock | myLock |
| | For protecting tree balancing and bounding box computation. More...
|
| |
| size_t | myEntries |
| | This marks the number of entries that have been added to our tree. More...
|
| |
| size_t | myFullEntries |
| |
| size_t | myRebalanceCount |
| |
| int | myDim |
| |
| int | myMaxLeafNodes |
| |
| bool | myBalanced |
| |
| bool | myBoxComputed |
| |
| bool | myHasRadius |
| | A faster way to evaluate pointsHaveRadius() at runtime. More...
|
| |
| ut_KDBalancer | myBalancer |
| |
Definition at line 119 of file GU_Sort.h.