Go to the documentation of this file.
9 #include <concurrent_vector.h>
16 float x()
const {
return vec[0]; }
17 float y()
const {
return vec[1]; }
18 float z()
const {
return vec[2]; }
29 bool operator==(
const QuadTreeIterator& b)
const {
return (b._current == _current); }
63 void clear() { mData.clear(); };
64 bool empty()
const {
return mData.empty(); };
85 const std::deque<Geom::ColorPoint>&
getPoints()
const;
112 void getDeep(
int& deep);
138 using container = concurrency::concurrent_vector<ColorPoint>;
150 bool empty()
const {
return mData.empty(); };
208 void putInQuadTree(
const std::vector<FloatPoint>& points,
const std::vector<uint32_t>& colors );
209 void countsInQuadTree(
const std::vector<FloatPoint>& points,
const std::vector<uint32_t>& colors);
214 std::atomic<uint64_t> mCountOfPoints = 0;
219 std::vector<LOD_Data> mLOD_Data;
221 void getDeep(
int& deep);
223 void setDeep(
int deep, std::vector<QuadTreeMT*>& leafNodes);
238 concurrency::concurrent_vector<FloatPoint> _points;
239 concurrency::concurrent_vector<uint32_t> _colors;
void getPointsRecursive(std::deque< Geom::ColorPoint > &points)
concurrency::concurrent_vector< ColorPoint > container
Definition: QuadTree.h:138
std::vector< uint32_t > getColors() const
FloatPoint(const float v[3])
Definition: QuadTree.h:13
Definition: QuadTree.h:49
std::vector< QuadTreeMT * > getChildren() const
QuadTree * northEast
Definition: QuadTree.h:103
const size_t getPointCount() const
void setBBox(Geom::Bnd_Box b)
Definition: QuadTree.h:195
Definition: QuadTree.h:39
std::deque< ColorPoint > container
Definition: QuadTree.h:51
std::vector< FloatPoint > points_level_0_5
Definition: QuadTree.h:168
const std::vector< LOD_Data > & getLOD_Data()
Definition: QuadTree.h:212
QuadTreeMT * northEast
Definition: QuadTree.h:203
void removePointsRecursive()
bool insert(const FloatPoint &fp, const uint32_t color)
float y() const
Definition: QuadTree.h:17
QuadTree * northWest
Definition: QuadTree.h:102
typename container::iterator iterator
Definition: QuadTree.h:52
iterator begin()
Definition: QuadTree.h:56
float x() const
Definition: QuadTree.h:16
const container & getData() const
Definition: QuadTree.h:152
bool empty() const
Definition: QuadTree.h:150
void clear()
Definition: QuadTree.h:63
Definition: QuadTree.h:26
QuadTree(Geom::Rect boundary, size_t capacity, int myDeep=1)
std::vector< uint32_t > colors_level_0_5
Definition: QuadTree.h:172
const size_t getPointCountRecursive() const
const_iterator cend() const
Definition: QuadTree.h:145
void addPoint(const ColorPoint &p)
Definition: QuadTree.h:55
Geom::Pnt p
Definition: QuadTree.h:42
float vec[3]
Definition: QuadTree.h:15
FloatPoint(float x, float y, float z)
Definition: QuadTree.h:14
void removePointsRecursive()
const_iterator cbegin() const
Definition: QuadTree.h:60
const container & getData() const
Definition: QuadTree.h:66
std::vector< uint32_t > colors_level_1_0
Definition: QuadTree.h:171
std::vector< QuadTreeMT * > setDeep(int deep)
QuadTreeMT * southWest
Definition: QuadTree.h:204
void clear()
Definition: QuadTree.h:149
void addPoint(const ColorPoint &p)
Definition: QuadTree.h:147
std::vector< QuadTree * > getChildrenRecursive() const
const bool hasPoints() const
Definition: QuadTree.h:77
QuadTreeMT * northWest
Definition: QuadTree.h:202
Definition: QuadTree.h:163
Base::MColor c
Definition: QuadTree.h:44
void putInQuadTree(const std::vector< FloatPoint > &points, const std::vector< uint32_t > &colors)
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
bool empty() const
Definition: QuadTree.h:64
const Geom::Rect & getBoundary() const
void countsInQuadTree(const std::vector< FloatPoint > &points, const std::vector< uint32_t > &colors)
QuadTreeMT * southEast
Definition: QuadTree.h:205
std::vector< uint32_t > colors_level_0_1
Definition: QuadTree.h:173
ColorPoint()
Definition: QuadTree.h:41
std::vector< FloatPoint > points_level_0_1
Definition: QuadTree.h:169
const_iterator cend() const
Definition: QuadTree.h:61
const Geom::Rect & getBoundary() const
const_iterator end() const
Definition: QuadTree.h:59
const size_t getPointCountRecursive() const
const_iterator begin() const
Definition: QuadTree.h:142
Geom::Bnd_Box getBBox()
Definition: QuadTree.h:196
float z() const
Definition: QuadTree.h:18
bool insert(const Geom::ColorPoint &cp)
const size_t getPointCount() const
Definition: QuadTree.h:136
const_iterator begin() const
Definition: QuadTree.h:58
const_iterator end() const
Definition: QuadTree.h:143
Definition: QuadTree.h:166
void setAutoSplit(bool on)
typename container::const_iterator const_iterator
Definition: QuadTree.h:53
const std::deque< Geom::ColorPoint > & getPoints() const
std::vector< QuadTreeMT * > getChildrenRecursive() const
typename container::iterator iterator
Definition: QuadTree.h:139
const bool hasPoints() const
QuadTreeMT * findQuadTree(const Geom::Pnt &p)
ColorPoint(const Geom::Pnt &p, const Base::MColor &c)
Definition: QuadTree.h:42
QuadTree * southWest
Definition: QuadTree.h:104
typename container::const_iterator const_iterator
Definition: QuadTree.h:140
std::vector< QuadTree * > getChildren() const
iterator end()
Definition: QuadTree.h:57
Definition: QuadTree.h:12
const std::vector< LOD_Data > & createLOD_Data()
QuadTreeMT(Geom::Rect boundary, size_t capacity)
std::vector< FloatPoint > getPoints() const
std::vector< FloatPoint > points_level_1_0
Definition: QuadTree.h:167
QuadTree * southEast
Definition: QuadTree.h:105
const_iterator cbegin() const
Definition: QuadTree.h:144
Definition: PropertyContainer.h:33
QuadTreeMT * findQuadTree(const FloatPoint &cp)