Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
k_d_tree::DynamicKdTrees< Dim, Component, Id > Class Template Reference

#include <k_d_tree.h>

+ Collaboration diagram for k_d_tree::DynamicKdTrees< Dim, Component, Id >:

Classes

struct  DelEntry
 

Public Types

using Point = typename Tree::Point
 

Public Member Functions

void insert (const std::array< Component, Dim > &point, Id id)
 
void remove (Id id)
 
void update (const Point &newPos, Id id)
 
template<typename F >
void rangeQuery (const Point &min, const Point &max, const F &cb) const
 
size_t size () const
 

Private Types

using Tree = KdTree<Dim, Component, Id>
 

Private Member Functions

void updateDelEntries (uint8_t tree_idx)
 
void shrink_to_half ()
 

Private Attributes

std::vector< Treetrees
 
std::unordered_map< Id, DelEntrydel_entries
 
size_t n_entries = 0
 
size_t deleted = 0
 

Member Typedef Documentation

◆ Point

template<uint8_t Dim, class Component , class Id >
using k_d_tree::DynamicKdTrees< Dim, Component, Id >::Point = typename Tree::Point

◆ Tree

template<uint8_t Dim, class Component , class Id >
using k_d_tree::DynamicKdTrees< Dim, Component, Id >::Tree = KdTree<Dim, Component, Id>
private

Member Function Documentation

◆ insert()

template<uint8_t Dim, class Component , class Id >
void k_d_tree::DynamicKdTrees< Dim, Component, Id >::insert ( const std::array< Component, Dim > & point,
Id id )
inline

References k_d_tree::DynamicKdTrees< Dim, Component, Id >::n_entries, k_d_tree::DynamicKdTrees< Dim, Component, Id >::trees, and k_d_tree::DynamicKdTrees< Dim, Component, Id >::updateDelEntries().

Referenced by server::ActiveObjectMgr::registerObject(), TEST_CASE(), and k_d_tree::DynamicKdTrees< Dim, Component, Id >::update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rangeQuery()

template<uint8_t Dim, class Component , class Id >
template<typename F >
void k_d_tree::DynamicKdTrees< Dim, Component, Id >::rangeQuery ( const Point & min,
const Point & max,
const F & cb ) const
inline

References k_d_tree::DynamicKdTrees< Dim, Component, Id >::trees.

Referenced by server::ActiveObjectMgr::getObjectsInArea(), server::ActiveObjectMgr::getObjectsInsideRadius(), and TEST_CASE().

+ Here is the caller graph for this function:

◆ remove()

template<uint8_t Dim, class Component , class Id >
void k_d_tree::DynamicKdTrees< Dim, Component, Id >::remove ( Id id)
inline

References k_d_tree::DynamicKdTrees< Dim, Component, Id >::del_entries, k_d_tree::DynamicKdTrees< Dim, Component, Id >::deleted, k_d_tree::DynamicKdTrees< Dim, Component, Id >::n_entries, k_d_tree::DynamicKdTrees< Dim, Component, Id >::shrink_to_half(), and k_d_tree::DynamicKdTrees< Dim, Component, Id >::trees.

Referenced by server::ActiveObjectMgr::removeObject(), TEST_CASE(), and k_d_tree::DynamicKdTrees< Dim, Component, Id >::update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ shrink_to_half()

template<uint8_t Dim, class Component , class Id >
void k_d_tree::DynamicKdTrees< Dim, Component, Id >::shrink_to_half ( )
inlineprivate

References _, k_d_tree::Points< Dim, Component >::begin(), k_d_tree::DynamicKdTrees< Dim, Component, Id >::del_entries, k_d_tree::DynamicKdTrees< Dim, Component, Id >::deleted, k_d_tree::DynamicKdTrees< Dim, Component, Id >::n_entries, k_d_tree::Points< Dim, Component >::setPoint(), k_d_tree::DynamicKdTrees< Dim, Component, Id >::trees, and k_d_tree::DynamicKdTrees< Dim, Component, Id >::updateDelEntries().

Referenced by k_d_tree::DynamicKdTrees< Dim, Component, Id >::remove().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ size()

template<uint8_t Dim, class Component , class Id >
size_t k_d_tree::DynamicKdTrees< Dim, Component, Id >::size ( ) const
inline

◆ update()

template<uint8_t Dim, class Component , class Id >
void k_d_tree::DynamicKdTrees< Dim, Component, Id >::update ( const Point & newPos,
Id id )
inline

References k_d_tree::DynamicKdTrees< Dim, Component, Id >::insert(), and k_d_tree::DynamicKdTrees< Dim, Component, Id >::remove().

Referenced by TEST_CASE(), and server::ActiveObjectMgr::updateObjectPos().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateDelEntries()

template<uint8_t Dim, class Component , class Id >
void k_d_tree::DynamicKdTrees< Dim, Component, Id >::updateDelEntries ( uint8_t tree_idx)
inlineprivate

References _, k_d_tree::DynamicKdTrees< Dim, Component, Id >::del_entries, and k_d_tree::DynamicKdTrees< Dim, Component, Id >::trees.

Referenced by k_d_tree::DynamicKdTrees< Dim, Component, Id >::insert(), and k_d_tree::DynamicKdTrees< Dim, Component, Id >::shrink_to_half().

+ Here is the caller graph for this function:

Member Data Documentation

◆ del_entries

◆ deleted

◆ n_entries

◆ trees


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