1#ifndef __AAKDTREE_HEADER__
2#define __AAKDTREE_HEADER__
10#include <GfxTL/Intersect.h>
16 template <
class Po
int,
class Base>
39 void Axis(
unsigned int axis);
47 template <
class Strategies>
49 public Strategies::StrategyBase<
50 BaseTree<AAKdCell<typename Strategies::PointType,
51 typename Strategies::CellData<typename Strategies::PointType>>>>
54 typedef AAKdCell<
typename Strategies::PointType,
55 typename Strategies::CellData<typename Strategies::PointType>>
59 typedef typename Strategies::StrategyBase<
61 typename Strategies::CellData<typename Strategies::PointType>>>>
63 typedef typename StrategyBaseType::HandleType
HandleType;
64 typedef ::GfxTL::NearestNeighbor<ScalarType>
NN;
74 std::vector<size_t>* points)
const;
78 std::vector<size_t>* points)
const;
83 std::vector<NN>* neighbors,
96 std::vector<NN>* neighbors,
103 std::vector<size_t>* points)
const;
107 std::vector<HandleType>* points)
const;
108 bool ShouldSubdivide(
const CellType* cell)
const;
AAKdCell< Point, Base > ThisType
void Split(ScalarType split)
AAKdCell(const AAKdCell< Point, Base > &cell)
const ThisType * operator[](unsigned int index) const
Point::ScalarType ScalarType
void Axis(unsigned int axis)
void Child(unsigned int index, ThisType *child)
unsigned int Axis() const
ThisType * operator[](unsigned int index)
void RefreshWithNewTreeData(const AACube< PointType > &bc)
void PointsInSphere(const PointType ¢er, ScalarType radius, std::vector< size_t > *points) const
::GfxTL::NearestNeighbor< ScalarType > NN
void PointsInAACube(const AACube< PointType > &cube, std::vector< size_t > *points) const
void NearestNeighbor(const PointType &p, size_t *neighbor, ScalarType *dist) const
void KNearestNeighbors(const PointType &p, unsigned int k, std::vector< NN > *neighbors, ScalarType *dist) const
Strategies::StrategyBase< BaseTree< AAKdCell< typename Strategies::PointType, typename Strategies::CellData< typename Strategies::PointType > > > > StrategyBaseType
AAKdCell< typename Strategies::PointType, typename Strategies::CellData< typename Strategies::PointType > > CellType
CellType::PointType PointType
StrategyBaseType::HandleType HandleType
CellType::ScalarType ScalarType