template<typename D>
requires viewable<D>;
requires bufferable<D>;
requires std::is_enum_v<typename D::geo_obj_ids>;
typename D::name_map;
typename D::volume_type;
typename D::volume_container;
typename D::surface_type;
typename D::surface_container;
typename D::surface_lookup_container;
typename D::transform_container;
typename D::geometry_context;
typename D::mask_container;
typename D::masks;
typename D::material_container;
typename D::material_link;
typename D::material;
typename D::accelerator_container;
typename D::accel_link;
typename D::accel;
{ d.name(typename D::name_map()) } -> std::same_as<std::string>;
{ d.volumes() } -> std::same_as<const typename D::volume_container&>;
{ d.volume(
dindex()) } -> std::same_as<const typename D::volume_type&>;
{
d.volume(std::string_view(), typename D::name_map())
} -> std::same_as<const typename D::volume_type&>;
{ d.portals() };
{ d.surfaces() } -> std::same_as<const typename D::surface_lookup_container&>;
{
d.transform_store(typename D::geometry_context())
} -> std::same_as<const typename D::transform_container&>;
{ d.mask_store() } -> std::same_as<const typename D::mask_container&>;
{ d.material_store() } -> std::same_as<const typename D::material_container&>;
{
d.accelerator_store()
} -> std::same_as<const typename D::accelerator_container&>;
}
Algebra plugin concept.
Definition concepts.hpp:147
Check if a type can be used as a detector.
Definition concepts.hpp:47
Definition concepts.hpp:74
Definition concepts.hpp:77
Scalar concept: Elements of vectors/matrices (can be simd vectors).
Definition concepts.hpp:40
Definition concepts.hpp:65
unsigned int dindex
Default index type.
Definition indexing.hpp:18
Check if a type can be used as a detector.