7 #ifndef NUKLEI_KERNEL_COLLECTION_TYPES_H
8 #define NUKLEI_KERNEL_COLLECTION_TYPES_H
10 #ifdef NUKLEI_USE_CGAL
12 #include <CGAL/basic.h>
13 #include <CGAL/Search_traits.h>
14 #include <CGAL/Search_traits_3.h>
15 #include <CGAL/Search_traits_d.h>
16 #include <CGAL/Orthogonal_k_neighbor_search.h>
17 #include <CGAL/Simple_cartesian.h>
18 #include <CGAL/Cartesian_d.h>
21 #ifdef NUKLEI_USE_CGAL_DEPRECATED
23 #include <CGAL/Homogeneous.h>
24 #include <CGAL/Convex_hull_d.h>
25 #include <CGAL/Convex_hull_d_traits_3.h>
30 #ifdef NUKLEI_USE_CGAL
31 # include <CGAL/double.h>
35 #include <CGAL/Cartesian.h>
36 #include <CGAL/linear_least_squares_fitting_3.h>
41 #include "kdtree++/kdtree.hpp"
45 #ifdef NUKLEI_USE_CGAL
51 typedef ::nuklei::FlexiblePoint::value_type FT;
52 typedef ::nuklei::FlexiblePoint::value_type RT;
61 namespace libkdtree_types
63 typedef KDTree::KDTree< 3, FlexiblePoint, FlexiblePoint::Accessor > Tree;
66 #ifdef NUKLEI_USE_CGAL_DEPRECATED
67 namespace cgal_convex_hull_types
72 typedef CGAL::Homogeneous<RT> K;
73 typedef K::Point_3 Point_3;
75 typedef CGAL::Convex_hull_d_traits_3<K> Hull_traits_3;
76 typedef CGAL::Convex_hull_d< Hull_traits_3 > Convex_hull_3;
80 #ifdef NUKLEI_USE_CGAL
82 namespace cgal_neighbor_search_types
84 typedef CGAL::Simple_cartesian<coord_t> K;
85 typedef K::Point_3 Point_d;
86 typedef CGAL::Search_traits_3<K> Traits;
87 typedef CGAL::Orthogonal_k_neighbor_search<Traits> K_neighbor_search;
88 typedef K_neighbor_search::Tree Tree;
91 namespace cgal_userdef_neighbor_search_types
93 typedef CGAL::Search_traits<
94 FlexiblePoint::value_type,
96 const FlexiblePoint::value_type*,
97 FlexiblePoint::Construct_coord_iterator
99 typedef CGAL::Orthogonal_k_neighbor_search<
101 FlexiblePoint::Distance
103 typedef K_neighbor_search::Tree Tree;
106 namespace cgal_pca_types
109 typedef CGAL::Cartesian<FT> K;
110 typedef K::Plane_3 Plane_3;
111 typedef K::Line_3 Line_3;
112 typedef K::Point_3 Point_3;