26 namespace Experimental {
43 for (
auto&
c : nCandidates) {
46 c.surface !=
nullptr ? *
c.surface :
c.portal->surface();
52 c.objectIntersection = sIntersection[
c.objectIntersection.index()];
59 template <
typename object_type,
typename filler_type>
74 filler_type::fill(nState,
object);
79 const object_type*
object =
nullptr;
87 template <
typename extractor_type,
typename filler_type>
98 auto extracted = extractor_type::extract(gctx, nState);
99 filler_type::fill(nState, extracted);
114 template <
typename gr
id_t,
typename extractor_type,
typename filler_type>
127 std::array<BinningValue, grid_type::DIM>
casts{};
137 const std::array<BinningValue, grid_type::DIM>& icasts,
138 const Transform3& itr = Transform3::Identity())
154 filler_type::fill(nState, extracted);
167 std::array<ActsScalar, grid_type::DIM> casted{};
169 std::make_integer_sequence<std::size_t, grid_type::DIM>{});
177 template <
typename Array, std::size_t...
idx>
179 std::index_sequence<idx...> )
const {
189 template <
typename... updators_t>
210 [&](
auto&&... updator) { ((updator.update(gctx, nState)), ...); },