18#ifdef DEAL_II_WITH_ARBORX
25 template <
int dim,
typename Number>
29 static_assert(dim != 1,
"dim equal to one is not supported.");
33 for (
unsigned int i = 0; i <
size; ++i)
52 const ::Point<3, float> &
60 template <
int dim,
typename Number>
68 template <
int dim,
typename Number>
71 const unsigned int n_nearest_neighbors)
73 , n_nearest_neighbors(n_nearest_neighbors)
85 template <
int dim,
typename Number>
93 for (
unsigned int i = 0; i <
size; ++i)
95 auto boundary_points =
bb[i].get_boundary_points();
98 for (
unsigned int d = 0; d < dim; ++d)
118 const ::BoundingBox<3, float> &
126 template <
int dim,
typename Number>
134 template <
int dim,
typename Number>
137 const unsigned int n_nearest_neighbors)
139 , n_nearest_neighbors(n_nearest_neighbors)
151 template <
int dim,
typename Number>
156 static_assert(dim != 1,
"dim equal to one is not supported.");
160 for (
unsigned int i = 0; i <
size; ++i)
164 spheres.emplace_back(std::make_pair(
168 dim == 2 ? 0.f :
static_cast<float>(
dim_spheres[i].first[2])),
183 const std::pair<::Point<3, float>,
float> &
191 template <
int dim,
typename Number>
199 template <
int dim,
typename Number>
202 const unsigned int n_nearest_neighbors)
204 , n_nearest_neighbors(n_nearest_neighbors)
221 template <
int dim,
typename Number>
231 template <
int dim,
typename Number>
239 return {
static_cast<float>(v[i][0]),
240 static_cast<float>(v[i][1]),
241 dim == 2 ? 0 :
static_cast<float>(v[i][2])};
247 template <
int dim,
typename Number>
257 template <
int dim,
typename Number>
262 const auto boundary_points = v[i].get_boundary_points();
263 const ::Point<dim, Number>
min_corner = boundary_points.first;
264 const ::Point<dim, Number>
max_corner = boundary_points.second;
269 dim == 2 ? 0.f :
static_cast<float>(
min_corner[2])},
272 dim == 2 ? 0.f :
static_cast<float>(
max_corner[2])}};
278 template <
int dim,
typename Number>
289 template <
int dim,
typename Number>
298 return {{
static_cast<float>(v[i].first[0]),
299 static_cast<float>(v[i].
first[1]),
300 dim == 2 ? 0 :
static_cast<float>(v[i].first[2])},
301 static_cast<float>(v[i].second)};
306# include "access_traits.inst"
BoundingBoxIntersectPredicate(const std::vector<::BoundingBox< dim, Number > > &bounding_boxes)
unsigned int n_nearest_neighbors
BoundingBoxNearestPredicate(const std::vector<::BoundingBox< dim, Number > > &bounding_boxes, const unsigned int n_nearest_neighbors)
unsigned int get_n_nearest_neighbors() const
BoundingBoxPredicate(const std::vector<::BoundingBox< dim, Number > > &bounding_boxes)
std::vector<::BoundingBox< 3, float > > bounding_boxes
const ::BoundingBox< 3, float > & get(unsigned int i) const
PointIntersectPredicate(const std::vector<::Point< dim, Number > > &points)
unsigned int n_nearest_neighbors
unsigned int get_n_nearest_neighbors() const
PointNearestPredicate(const std::vector<::Point< dim, Number > > &points, const unsigned int n_nearest_neighbors)
std::vector<::Point< 3, float > > points
PointPredicate(const std::vector<::Point< dim, Number > > &points)
const ::Point< 3, float > & get(unsigned int i) const
SphereIntersectPredicate(const std::vector< std::pair<::Point< dim, Number >, Number > > &spheres)
unsigned int n_nearest_neighbors
unsigned int get_n_nearest_neighbors() const
SphereNearestPredicate(const std::vector< std::pair<::Point< dim, Number >, Number > > &spheres, const unsigned int n_nearest_neighbors)
const std::pair<::Point< 3, float >, float > & get(unsigned int) const
std::vector< std::pair<::Point< 3, float >, float > > spheres
SpherePredicate(const std::vector< std::pair<::Point< dim, Number >, Number > > &spheres)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE