threaddb  2.0
A file mapped memory container extension
Classes | Namespaces | Functions
threaddbRGrid.h File Reference

Range grid implementation for performant spacial searches. More...

#include <threaddbCPP.h>
#include <atomic>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <cstddef>
#include <vector>
#include <istream>
#include <ostream>

Go to the source code of this file.

Classes

struct  tdb::array_deleter< T >
 
struct  tdb::Functor< T >
 Functor class receiving the queried elements. More...
 
struct  tdb::Point< T, D >
 Point basic class definition. More...
 
class  tdb::Box< T, D >
 Box basic class definition. More...
 
class  tdb::rgrid< T, C, D, L >
 External representation of the rgrid structure. More...
 
class  tdb::rgrid_< T, C, D, L >
 Internal representation of the rgrid structure. More...
 
struct  tdb::TaskInfo< L >
 Query task information. More...
 
struct  tdb::Link< T, C, D >
 Link helper class to the next node level. More...
 
struct  tdb::TaskInfo< L >
 Query task information. More...
 
struct  tdb::Cells< T, C, D, L >
 Definition of a ode of the rgrid. More...
 
class  tdb::rgrid_< T, C, D, L >
 Internal representation of the rgrid structure. More...
 
class  tdb::rgrid< T, C, D, L >
 External representation of the rgrid structure. More...
 

Namespaces

 tdb
 

Functions

template<typename C , size_t D>
bool tdb::intersects (const Box< C, D > &rLhs_p, const Box< C, D > &rRhs_p)
 Check intersection of two Boxes. More...
 
template<typename C , size_t D>
std::pair< Box< C, D >, int32_t > tdb::index_ (const Box< C, D > &lhs_p, const Box< C, D > &rhs_p)
 Range index calculation specialization for n dimensional scenarios. More...
 
template<typename C >
std::pair< tdb::Box< C, 1 >, int32_t > tdb::index_ (const tdb::Box< C, 1 > &lhs_p, const tdb::Box< C, 1 > &rhs_p)
 Range index calculation specialization for 1 dimensional scenarios. More...
 
template<typename C >
std::pair< tdb::Box< C, 2 >, int32_t > tdb::index_ (const tdb::Box< C, 2 > &lhs_p, const tdb::Box< C, 2 > &rhs_p)
 Range index calculation specialization for 2 dimensional scenarios. More...
 
template<typename C >
std::pair< tdb::Box< C, 3 >, int32_t > tdb::index_ (const tdb::Box< C, 3 > &lhs_p, const tdb::Box< C, 3 > &rhs_p)
 Range index calculation specialization for 3 dimensional scenarios. More...
 
template<typename C , size_t D>
tdb::Point< C, D > operator+ (const tdb::Point< C, D > &a, const tdb::Point< C, D > &b)
 Point increment operator. More...
 
template<typename C , size_t D>
tdb::Point< C, D > operator- (const tdb::Point< C, D > &a, const tdb::Point< C, D > &b)
 Point subtract operator. More...
 
template<typename C , size_t D>
tdb::Box< C, D > & operator+= (tdb::Box< C, D > &a, const tdb::Point< C, D > &b)
 Box increment operator. More...
 

Detailed Description

Range grid implementation for performant spacial searches.

The underlying template class provides a data structure for performant range queries. Basically the rgrid can be seen as a static rgrid with a fixed tiling and depth. This gives the advantage, that the elements can be inserted directly without the additional effort of re-balancing the tree. A neccessary prerequisite is that the amount and range of elements to be stored are available already during construction of the data structure.

Function Documentation

◆ operator+()

template<typename C , size_t D>
tdb::Point<C, D> operator+ ( const tdb::Point< C, D > &  a,
const tdb::Point< C, D > &  b 
)

Point increment operator.

◆ operator+=()

template<typename C , size_t D>
tdb::Box<C, D>& operator+= ( tdb::Box< C, D > &  a,
const tdb::Point< C, D > &  b 
)

Box increment operator.

◆ operator-()

template<typename C , size_t D>
tdb::Point<C, D> operator- ( const tdb::Point< C, D > &  a,
const tdb::Point< C, D > &  b 
)

Point subtract operator.