18 #ifndef PIC_ALGORITHMS_QUADTREE_HPP 19 #define PIC_ALGORITHMS_QUADTREE_HPP 44 void findAux(
int *pos,
int radius2, std::set<int> &out)
47 out.insert(
list.begin(),
list.end());
49 for(
int i = 0; i < 4; i++) {
68 for(
int i = 0; i < 2; i++) {
69 this->bmax[i] =
bmax[i];
70 this->bmin[i] =
bmin[i];
75 for(
int i = 0; i < 4; i++) {
82 for(
int i = 0; i < 4; i++)
97 return((p[0] >=
bmin[0])
100 && (p[1] <
bmax[1]));
115 for(
int i = 0; i < 2; i++) {
116 if(center[i] <
bmin[i]) {
117 int tmp = center[i] -
bmin[i];
120 if(center[i] >
bmax[i]) {
121 int tmp = center[i] -
bmax[i];
127 return (dmin <= radius2);
142 for(
int j = 0; j < 2; j++) {
145 if((half[j] % 2) == 0) {
146 half[j] = half[j] >> 1;
148 half[j] = (half[j] >> 1) + 1;
198 void insert(
int *pos,
int value,
int MAX_OCTREE_LEVEL,
int level = 0)
200 if(level == MAX_OCTREE_LEVEL) {
204 int pMax[2], pMin[2];
206 for(
int i = 0; i < 4; i++) {
228 void find(
float x,
float y,
float radius, std::set<int> &out)
234 int radius2 = int(ceilf(radius * radius));
int bmax[2]
Definition: quadtree.hpp:36
The Quadtree class.
Definition: quadtree.hpp:28
static bool checkPointBBox(int *p, int *bmin, int *bmax)
checkPointBBox
Definition: quadtree.hpp:95
void findAux(int *pos, int radius2, std::set< int > &out)
findAux
Definition: quadtree.hpp:44
static void getQuadrant(int *bmax, int *bmin, int *pMax, int *pMin, int i)
getQuadrant
Definition: quadtree.hpp:138
static bool checkCircleBBox(int *bmax, int *bmin, int *center, int radius2)
checkCircleBBox
Definition: quadtree.hpp:111
void find(float x, float y, float radius, std::set< int > &out)
find
Definition: quadtree.hpp:228
Quadtree * children[4]
Definition: quadtree.hpp:33
int bmin[2]
Definition: quadtree.hpp:36
void insert(int *pos, int value, int MAX_OCTREE_LEVEL, int level=0)
insert
Definition: quadtree.hpp:198
~Quadtree()
Definition: quadtree.hpp:80
Quadtree(int *bmax, int *bmin)
Quadtree.
Definition: quadtree.hpp:66
Definition: bilateral_separation.hpp:25
std::set< int > list
Definition: quadtree.hpp:32
bool leaf
Definition: quadtree.hpp:31