cgv
Loading...
Searching...
No Matches
cgv::data::quadtree< T > Class Template Reference

Classes

struct  node
 
struct  point_provider
 

Public Types

typedef cgv::math::fvec< T, 2 > vec2_type
 
typedef cgv::media::axis_aligned_box< T, 2 > box2_type
 

Public Member Functions

 quadtree (const point_provider &_provider, const box2_type &_box)
 
bool empty () const
 
int get_root_index () const
 
bool collides (const vec2_type &x, T d, int ni=-1, box2_type b=box2_type()) const
 
void insert (const vec2_type &p, int pi)
 

Protected Member Functions

const nodeget_node (int ni) const
 
noderef_node (int ni)
 
bool is_leaf (int ni) const
 
void add_point_to_leaf (int pi, int ni)
 
bool split_leaf (int ni, const vec2_type &x)
 

Protected Attributes

box2_type box
 
const point_providerprovider
 
int root_idx
 
std::vector< nodenodes
 

Detailed Description

template<typename T>
class cgv::data::quadtree< T >

Definition at line 11 of file quadtree.h.

Member Typedef Documentation

◆ box2_type

template<typename T >
typedef cgv::media::axis_aligned_box<T, 2> cgv::data::quadtree< T >::box2_type

Definition at line 15 of file quadtree.h.

◆ vec2_type

template<typename T >
typedef cgv::math::fvec<T, 2> cgv::data::quadtree< T >::vec2_type

Definition at line 14 of file quadtree.h.

Constructor & Destructor Documentation

◆ quadtree()

template<typename T >
cgv::data::quadtree< T >::quadtree ( const point_provider _provider,
const box2_type _box 
)
inline

Definition at line 66 of file quadtree.h.

Member Function Documentation

◆ add_point_to_leaf()

template<typename T >
void cgv::data::quadtree< T >::add_point_to_leaf ( int  pi,
int  ni 
)
inlineprotected

Definition at line 38 of file quadtree.h.

◆ collides()

template<typename T >
bool cgv::data::quadtree< T >::collides ( const vec2_type x,
d,
int  ni = -1,
box2_type  b = box2_type() 
) const
inline

Definition at line 69 of file quadtree.h.

◆ empty()

template<typename T >
bool cgv::data::quadtree< T >::empty ( ) const
inline

Definition at line 67 of file quadtree.h.

◆ get_node()

template<typename T >
const node & cgv::data::quadtree< T >::get_node ( int  ni) const
inlineprotected

Definition at line 34 of file quadtree.h.

◆ get_root_index()

template<typename T >
int cgv::data::quadtree< T >::get_root_index ( ) const
inline

Definition at line 68 of file quadtree.h.

◆ insert()

template<typename T >
void cgv::data::quadtree< T >::insert ( const vec2_type p,
int  pi 
)
inline

Definition at line 101 of file quadtree.h.

◆ is_leaf()

template<typename T >
bool cgv::data::quadtree< T >::is_leaf ( int  ni) const
inlineprotected

Definition at line 37 of file quadtree.h.

◆ ref_node()

template<typename T >
node & cgv::data::quadtree< T >::ref_node ( int  ni)
inlineprotected

Definition at line 35 of file quadtree.h.

◆ split_leaf()

template<typename T >
bool cgv::data::quadtree< T >::split_leaf ( int  ni,
const vec2_type x 
)
inlineprotected

Definition at line 43 of file quadtree.h.

Member Data Documentation

◆ box

template<typename T >
box2_type cgv::data::quadtree< T >::box
protected

Definition at line 29 of file quadtree.h.

◆ nodes

template<typename T >
std::vector<node> cgv::data::quadtree< T >::nodes
protected

Definition at line 32 of file quadtree.h.

◆ provider

template<typename T >
const point_provider& cgv::data::quadtree< T >::provider
protected

Definition at line 30 of file quadtree.h.

◆ root_idx

template<typename T >
int cgv::data::quadtree< T >::root_idx
protected

Definition at line 31 of file quadtree.h.


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