mirror of https://github.com/CGAL/cgal
Remove file that does not get incuded
This commit is contained in:
parent
b0ce738c82
commit
01dda382bc
|
|
@ -1,97 +0,0 @@
|
||||||
// Copyright (c) 2007-08 INRIA Sophia-Antipolis (France).
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
|
||||||
// the terms of the Q Public License version 1.0.
|
|
||||||
// See the file LICENSE.QPL distributed with CGAL.
|
|
||||||
//
|
|
||||||
// Licensees holding a valid commercial license may use this file in
|
|
||||||
// accordance with the commercial license agreement provided with the software.
|
|
||||||
//
|
|
||||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
||||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
//
|
|
||||||
// $URL$
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// Author(s) : Pierre Alliez and Laurent Saboret
|
|
||||||
|
|
||||||
#ifndef CGAL_K_NEIGHBOR_NEIGHBOR_H
|
|
||||||
#define CGAL_K_NEIGHBOR_NEIGHBOR_H
|
|
||||||
|
|
||||||
#include <CGAL/Orthogonal_k_neighbor_search.h>
|
|
||||||
#include <CGAL/Search_traits_vertex_handle_3.h>
|
|
||||||
#include <list>
|
|
||||||
|
|
||||||
namespace CGAL {
|
|
||||||
|
|
||||||
|
|
||||||
/// Wrapper around Orthogonal_k_neighbor_search for Triangulation_3 Vertex_handles.
|
|
||||||
template <class Gt, class Vertex_handle>
|
|
||||||
class K_nearest_neighbor
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef Gt Geom_traits;
|
|
||||||
|
|
||||||
typedef typename Geom_traits::FT FT;
|
|
||||||
typedef typename Geom_traits::Point_3 Point;
|
|
||||||
typedef CGAL::Point_vertex_handle_3<Vertex_handle> Point_vertex_handle_3;
|
|
||||||
typedef Search_traits_vertex_handle_3<Vertex_handle> Traits;
|
|
||||||
typedef Euclidean_distance_vertex_handle_3<Vertex_handle> KDistance;
|
|
||||||
typedef Orthogonal_k_neighbor_search<Traits,KDistance> Neighbor_search;
|
|
||||||
typedef typename Neighbor_search::Tree Tree;
|
|
||||||
typedef typename Neighbor_search::iterator Search_iterator;
|
|
||||||
|
|
||||||
private:
|
|
||||||
Tree m_tree;
|
|
||||||
|
|
||||||
public:
|
|
||||||
K_nearest_neighbor() {}
|
|
||||||
|
|
||||||
/// @commentheading Precondition:
|
|
||||||
/// InputIterator value_type must be convertible to Point_vertex_handle_3.
|
|
||||||
template <class InputIterator>
|
|
||||||
K_nearest_neighbor(InputIterator first, InputIterator beyond)
|
|
||||||
{
|
|
||||||
m_tree = Tree(first, beyond);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Default copy constructor, operator =() and destructor are fine.
|
|
||||||
|
|
||||||
/// @commentheading Precondition:
|
|
||||||
/// InputIterator value_type must be convertible to Point_vertex_handle_3.
|
|
||||||
template <class InputIterator>
|
|
||||||
void insert(InputIterator first, InputIterator beyond)
|
|
||||||
{
|
|
||||||
m_tree = Tree(first, beyond);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Empty KD-tree.
|
|
||||||
void clear()
|
|
||||||
{
|
|
||||||
m_tree = Tree();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Search 'nb' nearest_neighbors of 'query' point.
|
|
||||||
bool get_k_nearest_neighbors(const Point& query,
|
|
||||||
const unsigned int nb,
|
|
||||||
std::list<Vertex_handle>& nearest_neighbors)
|
|
||||||
{
|
|
||||||
Point_vertex_handle_3 point_wrapper(query.x(), query.y(), query.z(), NULL);
|
|
||||||
Neighbor_search search(m_tree, point_wrapper, nb); // only nb nearest neighbors
|
|
||||||
Search_iterator it = search.begin();
|
|
||||||
for(unsigned int i=0;i<nb;i++,it++)
|
|
||||||
{
|
|
||||||
if(it == search.end())
|
|
||||||
return false;
|
|
||||||
nearest_neighbors.push_back((Vertex_handle)it->first);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}; // K_nearest_neighbor
|
|
||||||
|
|
||||||
|
|
||||||
} //namespace CGAL
|
|
||||||
|
|
||||||
#endif // CGAL_K_NEIGHBOR_NEIGHBOR_H
|
|
||||||
Loading…
Reference in New Issue