template<typename input_collection_t, typename data_t = typename input_collection_t::value_type, typename hash_function_t = default_hash<data_t>, typename hash_t = decltype(std::declval<hash_function_t>()(data_t{0})), template< typename > class vector_t = dvector>
requires std::is_invocable_v<hash_function_t, data_t> && std::is_invocable_v<hash_function_t, hash_t>
class detray::hash_tree< input_collection_t, data_t, hash_function_t, hash_t, vector_t >
Builds a hash tree from the data of an input collection.
This class provides a graph algorithm that walk along the volumes of a given geometry and uses the portals to check reachability between the volumes.
- Template Parameters
-
| hash_function | the type hashing that can be called on the collection data. |
| input | collection the type of data collection to be hased |
| node_type | how carries the hashes and links |
template<typename input_collection_t, typename data_t = typename input_collection_t::value_type, typename hash_function_t = default_hash<data_t>, typename hash_t = decltype(std::declval<hash_function_t>()(data_t{0})), template< typename > class vector_t = dvector>
| detray::hash_tree< input_collection_t, data_t, hash_function_t, hash_t, vector_t >::hash_tree |
( |
const input_collection_t & | data, |
|
|
const hash_function_t & | = {} ) |
|
explicit |
Build from an input collection using the configured hash function.
The optional hash function argument is ignored; the default-constructed hash function is used.
- Parameters
-