12#include "detray/core/concepts.hpp"
13#include "detray/geometry/surface.hpp"
16#include "detray/plugins/svgtools/utils/link_utils.hpp"
17#include "detray/plugins/svgtools/utils/surface_kernels.hpp"
20#include "actsvg/proto/portal.hpp"
25namespace detray::svgtools::conversion {
28template <concepts::detector detector_t>
29inline auto links(
const typename detector_t::geometry_context& context,
30 const detector_t& detector,
31 const detray::geometry::surface<detector_t>& d_portal) {
32 using point3_container_t = std::vector<typename detector_t::point3_type>;
33 using p_link_t =
typename actsvg::proto::portal<point3_container_t>::link;
35 std::vector<p_link_t> pt_links{};
36 typename detector_t::vector3_type dir{};
39 constexpr double link_length = 4.;
41 for (std::size_t i = 0u; i < d_portal.
n_masks(); ++i) {
42 const auto [start, end] = svgtools::utils::link_points(
43 context, detector, d_portal, dir, link_length, i);
46 p_link._start = start;
48 pt_links.push_back(p_link);
std::size_t n_masks() const
Definition surface.hpp:186