ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::concepts::shape Concept Reference

Concept for a geometrical shape. More...

#include <detray/geometry/concepts.hpp>

Concept definition

template<typename S, typename A>
concept detray::concepts::shape = concepts::algebra<A> && requires(const S sh, std::ostream os) {
requires std::is_enum_v<typename S::boundaries>;
typename S::template result_type<dbool<A>>;
typename S::template bounds_type<dscalar<A>>;
S::dim;
{
sh.min_dist_to_boundary(typename S::template bounds_type<dscalar<A>>(),
} -> std::same_as<dscalar<A>>;
{
sh.template check_boundaries<A>(
typename S::template bounds_type<dscalar<A>>(), dtransform3D<A>(),
} -> std::same_as<typename S::template result_type<dbool<A>>>;
{
sh.measure(typename S::template bounds_type<dscalar<A>>())
} -> std::same_as<dscalar<A>>;
{
sh.merge(typename S::template bounds_type<dscalar<A>>(),
typename S::template bounds_type<dscalar<A>>())
} -> std::same_as<typename S::template bounds_type<dscalar<A>>>;
{
sh.template local_min_bounds<A>(
typename S::template bounds_type<dscalar<A>>(), dscalar<A>())
} -> std::same_as<darray<dscalar<A>, 6>>;
{
sh.template centroid<A>(typename S::template bounds_type<dscalar<A>>())
} -> std::same_as<dpoint3D<A>>;
{
sh.template vertices<A>(typename S::template bounds_type<dscalar<A>>(),
dindex())
} -> std::same_as<dvector<dpoint3D<A>>>;
{
sh.check_consistency(typename S::template bounds_type<dscalar<A>>(), os)
} -> std::same_as<bool>;
}
Algebra plugin concept.
Definition concepts.hpp:147
Concept for a type that performs coordinate shape transformations.
Definition concepts.hpp:25
Concept for a geometrical shape.
Definition concepts.hpp:54
get_scalar_t< A, T > dscalar
Scalar type for algebra A and value type T.
Definition algebra.hpp:64
unsigned int dindex
Default index type.
Definition indexing.hpp:18
get_transform3D_t< A, T > dtransform3D
Three-dimensional transform type for algebra A and value type T.
Definition algebra.hpp:84
get_point3D_t< A, T > dpoint3D
Three-dimensional point type for algebra A and value type T.
Definition algebra.hpp:72
get_point2D_t< A, T > dpoint2D
Two-dimensional point type for algebra A and value type T.
Definition algebra.hpp:68

Detailed Description

Concept for a geometrical shape.