|
|
using | algebra_type = algebra_t |
| | Algebra policy used by the intersection calculations.
|
|
using | helix_intersector_type = helix_intersector<shape_t, algebra_t> |
| | How to intersect surfaces with helices.
|
|
using | ray_intersector_type = ray_intersector<shape_t, algebra_t, resolve_pos> |
| | How to intersect surfaces with rays.
|
|
using | result_type = typename helix_intersector_type::result_type |
| | Common result representation, which accommodates helix error estimates.
|
|
using | scalar_type = dscalar<algebra_t> |
| | Scalar type associated with the algebra policy.
|
|
using | transform3_type = dtransform3D<algebra_t> |
| | Transform type used to place surfaces in 3D.
|
|
| template<typename surface_descr_t, typename mask_t> |
| decltype(auto) | operator() (const detail::helix< algebra_t > &h, const surface_descr_t &sf, const mask_t &mask, const transform3_type &trf, const intersection::config &cfg={}, const scalar_type=0.f) const |
| | Resolve a helix intersection against the surface mask.
|
| template<typename surface_descr_t, typename mask_t> |
| decltype(auto) | operator() (const detail::ray< algebra_t > &ray, const surface_descr_t &sf, const mask_t &mask, const transform3_type &trf, const intersection::config &cfg={}, const scalar_type external_mask_tol=0.f) const |
| | Resolve a ray intersection against the surface mask.
|
template<typename S = shape_t>
requires (!concepts::cylindrical_shape<S, algebra_type>) |
| constexpr result_type | point_of_intersection (const detail::ray< algebra_t > &ray, const transform3_type &trf, const scalar_type overstep_tol=0.f) const |
| | Operator function to find intersections between ray and planar mask.
|
template<typename mask_t, typename S = shape_t>
requires concepts::cylindrical_shape<S, algebra_type> |
| constexpr result_type | point_of_intersection (const detail::ray< algebra_t > &ray, const transform3_type &trf, const mask_t &mask, const scalar_type overstep_tol=0.f) const |
| | Intersect a ray with a cylindrical surface using its radius mask.
|
template<typename S = shape_t>
requires (!concepts::cylindrical_shape<S, algebra_type>) |
| constexpr result_type | point_of_intersection (const detail::helix< algebra_t > &h, const transform3_type &trf, const scalar_type=0.f) const |
| | Intersect a helix with a planar or line surface.
|
template<typename mask_t, typename S = shape_t>
requires concepts::cylindrical_shape<S, algebra_type> |
| constexpr result_type | point_of_intersection (const detail::helix< algebra_t > &h, const transform3_type &trf, const mask_t &mask, const scalar_type=0.f) const |
| | Intersect a helix with a cylindrical surface using its radius mask.
|
template<typename shape_t, concepts::algebra algebra_t, bool resolve_pos = false>
struct detray::intersector< shape_t, algebra_t, resolve_pos >
Intersection interface for detector surfaces.
Composes the different intersector options into a unifyed interface