@@ -65,7 +65,7 @@ class BoundingVolumeHierarchy
6565
6666 BoundingVolumeHierarchy () = default ; // build an empty tree
6767
68- template <typename ExecutionSpace, typename Values,
68+ template <typename ExecutionSpace, Concepts::Primitives Values,
6969 typename SpaceFillingCurve = Experimental::Morton64>
7070 BoundingVolumeHierarchy (
7171 ExecutionSpace const &space, Values const &values,
@@ -81,13 +81,14 @@ class BoundingVolumeHierarchy
8181 KOKKOS_FUNCTION
8282 bounding_volume_type bounds () const noexcept { return _bounds; }
8383
84- template <typename ExecutionSpace, typename Predicates, typename Callback>
84+ template <typename ExecutionSpace, Concepts::Predicates Predicates,
85+ typename Callback>
8586 void query (ExecutionSpace const &space, Predicates const &predicates,
8687 Callback const &callback,
8788 Experimental::TraversalPolicy const &policy =
8889 Experimental::TraversalPolicy ()) const ;
8990
90- template <typename ExecutionSpace, typename UserPredicates,
91+ template <typename ExecutionSpace, Concepts::Predicates UserPredicates,
9192 typename CallbackOrView, typename View, typename ... Args>
9293 std::enable_if_t <Kokkos::is_view_v<std::decay_t <View>>>
9394 query (ExecutionSpace const &space, UserPredicates const &user_predicates,
@@ -140,13 +141,14 @@ class BoundingVolumeHierarchy
140141 IndexableGetter _indexable_getter;
141142};
142143
143- template <typename ExecutionSpace, typename Values>
144+ template <typename ExecutionSpace, Concepts::Primitives Values>
144145KOKKOS_DEDUCTION_GUIDE BoundingVolumeHierarchy (ExecutionSpace, Values)
145146 -> BoundingVolumeHierarchy<
146147 typename Details::AccessValues<Values>::memory_space,
147148 typename Details::AccessValues<Values>::value_type>;
148149
149- template <typename ExecutionSpace, typename Values, typename IndexableGetter>
150+ template <typename ExecutionSpace, Concepts::Primitives Values,
151+ typename IndexableGetter>
150152KOKKOS_DEDUCTION_GUIDE BoundingVolumeHierarchy (ExecutionSpace, Values,
151153 IndexableGetter)
152154 -> BoundingVolumeHierarchy<
@@ -165,7 +167,7 @@ using BVH = BoundingVolumeHierarchy<MemorySpace, Value, IndexableGetter,
165167
166168template <typename MemorySpace, typename Value, typename IndexableGetter,
167169 typename BoundingVolume>
168- template <typename ExecutionSpace, typename UserValues,
170+ template <typename ExecutionSpace, Concepts::Primitives UserValues,
169171 typename SpaceFillingCurve>
170172BoundingVolumeHierarchy<MemorySpace, Value, IndexableGetter, BoundingVolume>::
171173 BoundingVolumeHierarchy (ExecutionSpace const &space,
@@ -183,8 +185,6 @@ BoundingVolumeHierarchy<MemorySpace, Value, IndexableGetter, BoundingVolume>::
183185{
184186 static_assert (Details::KokkosExt::is_accessible_from<MemorySpace,
185187 ExecutionSpace>::value);
186- Details::check_valid_access_traits (user_values);
187-
188188 using Values = Details::AccessValues<UserValues>;
189189 Values values{user_values}; // NOLINT
190190
@@ -256,7 +256,8 @@ BoundingVolumeHierarchy<MemorySpace, Value, IndexableGetter, BoundingVolume>::
256256
257257template <typename MemorySpace, typename Value, typename IndexableGetter,
258258 typename BoundingVolume>
259- template <typename ExecutionSpace, typename UserPredicates, typename Callback>
259+ template <typename ExecutionSpace, Concepts::Predicates UserPredicates,
260+ typename Callback>
260261void BoundingVolumeHierarchy<
261262 MemorySpace, Value, IndexableGetter,
262263 BoundingVolume>::query(ExecutionSpace const &space,
@@ -266,8 +267,6 @@ void BoundingVolumeHierarchy<
266267{
267268 static_assert (Details::KokkosExt::is_accessible_from<MemorySpace,
268269 ExecutionSpace>::value);
269- Details::check_valid_access_traits (user_predicates,
270- Details::CheckReturnTypeTag{});
271270 Details::check_valid_callback<value_type>(callback, user_predicates);
272271
273272 using Predicates = Details::AccessValues<UserPredicates>;
0 commit comments