mirror of https://github.com/CGAL/cgal
Moved to namespace internal,renamed HAS_DIMENSION to HAS_DIMENSION_TAG
This commit is contained in:
parent
9a7660b6fa
commit
87aa5ad7c3
|
|
@ -28,30 +28,32 @@
|
|||
#include <boost/mpl/has_xxx.hpp>
|
||||
|
||||
|
||||
#ifndef HAS_DIMENSION
|
||||
#define HAS_DIMENSION
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
template <class SearchTraits>
|
||||
class Euclidean_distance;
|
||||
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct Euclidean_distance_base;
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Euclidean_distance_base<SearchTraits,true>{
|
||||
typedef typename SearchTraits::Dimension Dimension;
|
||||
};
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Euclidean_distance_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
|
||||
|
||||
namespace internal{
|
||||
#ifndef HAS_DIMENSION_TAG
|
||||
#define HAS_DIMENSION_TAG
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct Euclidean_distance_base;
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Euclidean_distance_base<SearchTraits,true>{
|
||||
typedef typename SearchTraits::Dimension Dimension;
|
||||
};
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Euclidean_distance_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Spatial_searching_default_distance{
|
||||
typedef ::CGAL::Euclidean_distance<SearchTraits> type;
|
||||
|
|
@ -69,7 +71,7 @@ namespace CGAL {
|
|||
typedef typename SearchTraits::Point_d Point_d;
|
||||
typedef Point_d Query_item;
|
||||
|
||||
typedef typename Euclidean_distance_base<SearchTraits>::Dimension D;
|
||||
typedef typename internal::Euclidean_distance_base<SearchTraits>::Dimension D;
|
||||
|
||||
|
||||
// default constructor
|
||||
|
|
|
|||
|
|
@ -25,15 +25,18 @@
|
|||
#include <boost/mpl/has_xxx.hpp>
|
||||
|
||||
|
||||
#ifndef HAS_DIMENSION
|
||||
#define HAS_DIMENSION
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
|
||||
namespace CGAL {
|
||||
template <class SearchTraits, class Distance,class Splitter,class Tree>
|
||||
class K_neighbor_search;
|
||||
|
||||
namespace internal{
|
||||
#ifndef HAS_DIMENSION_TAG
|
||||
#define HAS_DIMENSION_TAG
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct K_neighbor_search_base;
|
||||
|
||||
|
|
@ -46,6 +49,7 @@ class K_neighbor_search;
|
|||
struct K_neighbor_search_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
}//internal
|
||||
template <class SearchTraits,
|
||||
class Distance= typename internal::Spatial_searching_default_distance<SearchTraits>::type,
|
||||
class Splitter= Sliding_midpoint<SearchTraits> ,
|
||||
|
|
@ -55,7 +59,7 @@ class K_neighbor_search: public internal::K_neighbor_search<SearchTraits,Distanc
|
|||
|
||||
public:
|
||||
typedef typename Base::FT FT;
|
||||
typedef typename K_neighbor_search_base<SearchTraits>::Dimension D;
|
||||
typedef typename internal::K_neighbor_search_base<SearchTraits>::Dimension D;
|
||||
|
||||
K_neighbor_search(const Tree& tree, const typename Base::Query_item& q,
|
||||
unsigned int k=1, FT Eps=FT(0.0), bool Search_nearest=true, const Distance& d=Distance(),bool sorted=true)
|
||||
|
|
|
|||
|
|
@ -31,32 +31,35 @@
|
|||
#include <CGAL/Compact_container.h>
|
||||
#include <boost/mpl/has_xxx.hpp>
|
||||
|
||||
#ifndef HAS_DIMENSION
|
||||
#define HAS_DIMENSION
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
#ifdef CGAL_HAS_THREADS
|
||||
#include <boost/thread/mutex.hpp>
|
||||
#endif
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
|
||||
template <class SearchTraits, class Splitter_, class UseExtendedNode >
|
||||
class Kd_tree;
|
||||
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct Kd_tree_base;
|
||||
namespace internal{
|
||||
#ifndef HAS_DIMENSION_TAG
|
||||
#define HAS_DIMENSION_TAG
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Kd_tree_base<SearchTraits,true>{
|
||||
typedef typename SearchTraits::Dimension Dimension;
|
||||
};
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct Kd_tree_base;
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Kd_tree_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
template <class SearchTraits>
|
||||
struct Kd_tree_base<SearchTraits,true>{
|
||||
typedef typename SearchTraits::Dimension Dimension;
|
||||
};
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Kd_tree_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
}
|
||||
|
||||
//template <class SearchTraits, class Splitter_=Median_of_rectangle<SearchTraits>, class UseExtendedNode = Tag_true >
|
||||
template <class SearchTraits, class Splitter_=Sliding_midpoint<SearchTraits>, class UseExtendedNode = Tag_true >
|
||||
|
|
@ -85,7 +88,7 @@ public:
|
|||
|
||||
|
||||
|
||||
typedef typename Kd_tree_base<SearchTraits>::Dimension D;
|
||||
typedef typename internal::Kd_tree_base<SearchTraits>::Dimension D;
|
||||
|
||||
private:
|
||||
SearchTraits traits_;
|
||||
|
|
|
|||
|
|
@ -30,10 +30,6 @@
|
|||
#include <CGAL/Kd_tree_rectangle.h>
|
||||
|
||||
#include <boost/optional.hpp>
|
||||
#ifndef HAS_DIMENSION
|
||||
#define HAS_DIMENSION
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
|
@ -42,18 +38,25 @@ namespace CGAL {
|
|||
template <class Traits>
|
||||
class Point_container;
|
||||
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct Point_container_base;
|
||||
namespace internal{
|
||||
#ifndef HAS_DIMENSION_TAG
|
||||
#define HAS_DIMENSION_TAG
|
||||
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_dimension,Dimension,false);
|
||||
#endif
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Point_container_base<SearchTraits,true>{
|
||||
typedef typename SearchTraits::Dimension Dimension;
|
||||
};
|
||||
template <class SearchTraits, bool has_dim = has_dimension<SearchTraits>::value>
|
||||
struct Point_container_base;
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Point_container_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
template <class SearchTraits>
|
||||
struct Point_container_base<SearchTraits,true>{
|
||||
typedef typename SearchTraits::Dimension Dimension;
|
||||
};
|
||||
|
||||
template <class SearchTraits>
|
||||
struct Point_container_base<SearchTraits,false>{
|
||||
typedef Dynamic_dimension_tag Dimension;
|
||||
};
|
||||
}
|
||||
|
||||
template <class Traits>
|
||||
class Point_container {
|
||||
|
|
@ -67,7 +70,7 @@ public:
|
|||
|
||||
typedef typename Point_vector::iterator iterator;
|
||||
typedef typename Point_vector::const_iterator const_iterator;
|
||||
typedef typename Point_container_base<Traits>::Dimension D;
|
||||
typedef typename internal::Point_container_base<Traits>::Dimension D;
|
||||
private:
|
||||
Traits traits;
|
||||
// the iterator range of the Point_container
|
||||
|
|
|
|||
Loading…
Reference in New Issue