File indexing completed on 2026-07-26 08:21:57
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010 namespace traccc {
0011
0012 template <covfie::concepts::field_backend bfield_backend_t>
0013 magnetic_field::magnetic_field(covfie::field<bfield_backend_t>&& obj)
0014 : m_field(std::move(obj)) {}
0015
0016 template <covfie::concepts::field_backend bfield_backend_t>
0017 void magnetic_field::set(covfie::field<bfield_backend_t>&& obj) {
0018 m_field = std::move(obj);
0019 }
0020
0021 template <covfie::concepts::field_backend bfield_backend_t>
0022 bool magnetic_field::is() const {
0023 return (m_field.type() == typeid(covfie::field<bfield_backend_t>));
0024 }
0025
0026 template <covfie::concepts::field_backend bfield_backend_t>
0027 typename covfie::field<bfield_backend_t>::view_t magnetic_field::as_view()
0028 const {
0029 return typename covfie::field<bfield_backend_t>::view_t{
0030 std::any_cast<const covfie::field<bfield_backend_t>&>(m_field)};
0031 }
0032
0033 template <covfie::concepts::field_backend bfield_backend_t>
0034 const covfie::field<bfield_backend_t>& magnetic_field::as_field() const {
0035 return std::any_cast<const covfie::field<bfield_backend_t>&>(m_field);
0036 }
0037
0038 }