File indexing completed on 2026-07-26 08:22:01
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010 namespace traccc::utils {
0011
0012 template <detray::concepts::algebra ALGEBRA_TYPE>
0013 TRACCC_HOST_DEVICE std::array<float, 2u> to_float_array(
0014 const detray::dpoint2D<ALGEBRA_TYPE>& point) {
0015 return {static_cast<float>(getter::element(point, 0u)),
0016 static_cast<float>(getter::element(point, 1u))};
0017 }
0018
0019 template <detray::concepts::algebra ALGEBRA_TYPE>
0020 TRACCC_HOST_DEVICE std::array<float, 3u> to_float_array(
0021 const detray::dpoint3D<ALGEBRA_TYPE>& point) {
0022 return {static_cast<float>(getter::element(point, 0u)),
0023 static_cast<float>(getter::element(point, 1u)),
0024 static_cast<float>(getter::element(point, 2u))};
0025 }
0026
0027 template <detray::concepts::algebra ALGEBRA_TYPE>
0028 TRACCC_HOST_DEVICE detray::dpoint2D<ALGEBRA_TYPE> to_dpoint2D(
0029 const std::array<float, 2u>& arr) {
0030 detray::dpoint2D<ALGEBRA_TYPE> point;
0031 getter::element(point, 0u) =
0032 static_cast<typename ALGEBRA_TYPE::value_type>(arr[0u]);
0033 getter::element(point, 1u) =
0034 static_cast<typename ALGEBRA_TYPE::value_type>(arr[1u]);
0035 return point;
0036 }
0037
0038 template <detray::concepts::algebra ALGEBRA_TYPE>
0039 TRACCC_HOST_DEVICE detray::dpoint3D<ALGEBRA_TYPE> to_dpoint3D(
0040 const std::array<float, 3u>& arr) {
0041 detray::dpoint3D<ALGEBRA_TYPE> point;
0042 getter::element(point, 0u) =
0043 static_cast<typename ALGEBRA_TYPE::value_type>(arr[0u]);
0044 getter::element(point, 1u) =
0045 static_cast<typename ALGEBRA_TYPE::value_type>(arr[1u]);
0046 getter::element(point, 2u) =
0047 static_cast<typename ALGEBRA_TYPE::value_type>(arr[2u]);
0048 return point;
0049 }
0050
0051 }