Make cg::kdtree::closest const & add cg::kdtree::clear & assign
This commit is contained in:
parent
97c9d79a5a
commit
28a4d9ccb0
1 changed files with 21 additions and 2 deletions
|
|
@ -77,6 +77,9 @@ namespace psemek::cg
|
|||
template <typename Iterator>
|
||||
kdtree(Iterator begin, Iterator end);
|
||||
|
||||
template <typename Iterator>
|
||||
void assign(Iterator begin, Iterator end);
|
||||
|
||||
bool empty() const { return nodes_.empty(); }
|
||||
|
||||
bool insert(value_type && value);
|
||||
|
|
@ -84,11 +87,13 @@ namespace psemek::cg
|
|||
// TODO: implement
|
||||
bool remove(point_type const & point) const;
|
||||
|
||||
void clear();
|
||||
|
||||
// TODO: implement
|
||||
// TODO: alternative non-const version that allows modifying value.data
|
||||
value_type const * find(point_type const & point) const;
|
||||
|
||||
value_type const & closest(point_type const & target);
|
||||
value_type const & closest(point_type const & target) const;
|
||||
|
||||
private:
|
||||
|
||||
|
|
@ -125,6 +130,14 @@ namespace psemek::cg
|
|||
build_node_impl(begin, end, 0);
|
||||
}
|
||||
|
||||
template <typename T, std::size_t N, typename Data>
|
||||
template <typename Iterator>
|
||||
void kdtree<T, N, Data>::assign(Iterator begin, Iterator end)
|
||||
{
|
||||
clear();
|
||||
build_node_impl(begin, end, 0);
|
||||
}
|
||||
|
||||
template <typename T, std::size_t N, typename Data>
|
||||
bool kdtree<T, N, Data>::insert(value_type && value)
|
||||
{
|
||||
|
|
@ -132,7 +145,13 @@ namespace psemek::cg
|
|||
}
|
||||
|
||||
template <typename T, std::size_t N, typename Data>
|
||||
kdtree<T, N, Data>::value_type const & kdtree<T, N, Data>::closest(point_type const & target)
|
||||
void kdtree<T, N, Data>::clear()
|
||||
{
|
||||
nodes_.clear();
|
||||
}
|
||||
|
||||
template <typename T, std::size_t N, typename Data>
|
||||
kdtree<T, N, Data>::value_type const & kdtree<T, N, Data>::closest(point_type const & target) const
|
||||
{
|
||||
if (nodes_.empty())
|
||||
throw util::exception("empty kdtree");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue