template<typename S, typename A>
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>(
} -> 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>>(),
} -> std::same_as<typename S::template bounds_type<dscalar<A>>>;
{
sh.template local_min_bounds<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>>(),
} -> 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
Concept for a geometrical shape.