SourceXtractorPlusPlus
1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEUtils
SEUtils
QuadTree.h
Go to the documentation of this file.
1
17
18
#ifndef _SEUTILS_QUADTREE_H_
19
#define _SEUTILS_QUADTREE_H_
20
21
#include <vector>
22
#include <memory>
23
24
namespace
SourceXtractor
{
25
26
template
<
typename
T>
27
struct
QuadTreeTraits
{
28
static
double
getCoord
(
const
T& t,
size_t
index);
29
};
30
31
template
<
typename
T>
32
class
QuadTree
{
33
public
:
34
using
Traits
=
QuadTreeTraits<T>
;
35
36
struct
Coord
{
37
double
x
,
y
;
38
};
39
40
QuadTree
(
size_t
capacity=100);
41
QuadTree
(
const
QuadTree
& tree);
42
43
void
add
(
const
T& data);
44
void
remove
(
const
T& data);
45
std::vector<T>
getPointsWithinRange
(
Coord
c,
double
range)
const
;
46
47
private
:
48
void
addLocally
(
const
T& data);
49
void
split
();
50
void
expand
(
Coord
c);
51
size_t
getQuadrant
(
Coord
c)
const
;
52
bool
isContained
(
Coord
c)
const
;
53
54
Coord
getQuadrantMin
(
size_t
quadrant)
const
;
55
Coord
getQuadrantMax
(
size_t
quadrant)
const
;
56
57
size_t
m_capacity
;
58
59
bool
m_is_divided
;
60
Coord
m_min
,
m_max
;
61
std::vector<T>
m_data
;
62
std::shared_ptr<QuadTree<T>
>
m_sub_trees
[4];
63
};
64
65
}
66
67
#include "
_impl/QuadTree.icpp
"
68
69
#endif
/* _SEUTILS_QUADTREE_H_ */
QuadTree.icpp
SourceXtractor::QuadTree::remove
void remove(const T &data)
Definition
QuadTree.icpp:64
SourceXtractor::QuadTree::m_is_divided
bool m_is_divided
Definition
QuadTree.h:59
SourceXtractor::QuadTree::getPointsWithinRange
std::vector< T > getPointsWithinRange(Coord c, double range) const
Definition
QuadTree.icpp:81
SourceXtractor::QuadTree::isContained
bool isContained(Coord c) const
Definition
QuadTree.icpp:183
SourceXtractor::QuadTree::split
void split()
Definition
QuadTree.icpp:130
SourceXtractor::QuadTree::m_max
Coord m_max
Definition
QuadTree.h:60
SourceXtractor::QuadTree::m_sub_trees
std::shared_ptr< QuadTree< T > > m_sub_trees[4]
Definition
QuadTree.h:62
SourceXtractor::QuadTree::expand
void expand(Coord c)
Definition
QuadTree.icpp:145
SourceXtractor::QuadTree::getQuadrantMax
Coord getQuadrantMax(size_t quadrant) const
Definition
QuadTree.icpp:196
SourceXtractor::QuadTree::m_capacity
size_t m_capacity
Definition
QuadTree.h:57
SourceXtractor::QuadTree::add
void add(const T &data)
Definition
QuadTree.icpp:40
SourceXtractor::QuadTree::addLocally
void addLocally(const T &data)
Definition
QuadTree.icpp:111
SourceXtractor::QuadTree::m_min
Coord m_min
Definition
QuadTree.h:60
SourceXtractor::QuadTree::getQuadrantMin
Coord getQuadrantMin(size_t quadrant) const
Definition
QuadTree.icpp:188
SourceXtractor::QuadTree::Traits
QuadTreeTraits< T > Traits
Definition
QuadTree.h:34
SourceXtractor::QuadTree::QuadTree
QuadTree(size_t capacity=100)
Definition
QuadTree.icpp:24
SourceXtractor::QuadTree::getQuadrant
size_t getQuadrant(Coord c) const
Definition
QuadTree.icpp:171
SourceXtractor::QuadTree::m_data
std::vector< T > m_data
Definition
QuadTree.h:61
SourceXtractor
Definition
Aperture.h:30
std::shared_ptr
SourceXtractor::QuadTreeTraits
Definition
QuadTree.h:27
SourceXtractor::QuadTreeTraits::getCoord
static double getCoord(const T &t, size_t index)
SourceXtractor::QuadTree::Coord
Definition
QuadTree.h:36
SourceXtractor::QuadTree::Coord::y
double y
Definition
QuadTree.h:37
SourceXtractor::QuadTree::Coord::x
double x
Definition
QuadTree.h:37
std::vector
Generated by
1.14.0