![]() |
Rosetta Protocols
2014.35
|
This object hashes hits into 6D voxels. This hash can then be traversed to retrieve the hits that hash to the same voxel (matches!). There are 64 hashes representing the 2^6 ways to perturb the bins in 6D by 1/2 of their bin width. More...
#include <MatchSet.hh>
Public Types | |
typedef core::Real | Real |
typedef core::Size | Size |
typedef core::Vector | Vector |
typedef numeric::geometry::BoundingBox < Vector > | BoundingBox |
typedef numeric::geometry::hashing::Real3 | Real3 |
typedef utility::vector1 < std::list< Hit const * > > | MatchSet |
typedef boost::unordered_map < boost::uint64_t, MatchSet, numeric::geometry::hashing::bin_index_hasher > | HitHash |
Public Member Functions | |
HitHasher () | |
virtual | ~HitHasher () |
void | set_bounding_box (BoundingBox const &bb) |
void | set_uniform_xyz_bin_width (Real bin_width) |
void | set_uniform_euler_angle_bin_width (Real bin_width_degrees) |
void | set_xyz_bin_widths (Vector const &bin_widths) |
void | set_euler_bin_widths (Vector const &euler_bin_widths) |
void | set_nhits_per_match (Size num_geometric_constraints) |
void | initialize () |
void | insert_hit (Size geometric_constraint_id, Hit const *hit) |
Insert a hits into all 64 hash maps. More... | |
void | insert_hit (Size which_hash_map, Size geometric_constraint_id, Hit const *hit) |
Insert a hits into a particular hash maps. More... | |
void | clear_hash_map (Size which_hash_map) |
HitHash::const_iterator | hit_hash_begin (Size which_hash_map) const |
HitHash::const_iterator | hit_hash_end (Size which_hash_map) const |
numeric::geometry::hashing::SixDCoordinateBinner const & | binner (Size which_hash_map) const |
Static Private Attributes | |
static Size const | N_HASH_MAPS = 64 |
This object hashes hits into 6D voxels. This hash can then be traversed to retrieve the hits that hash to the same voxel (matches!). There are 64 hashes representing the 2^6 ways to perturb the bins in 6D by 1/2 of their bin width.
The hit hasher expects someone else to own the hits. It takes as input constant pointers to the hits that exist and uses their addresses to hash upon. The hit hasher should only be used if you can guarantee that the hits it points to will outlive the hasher.
typedef boost::unordered_map< boost::uint64_t, MatchSet, numeric::geometry::hashing::bin_index_hasher > protocols::match::HitHasher::HitHash |
typedef utility::vector1< std::list< Hit const * > > protocols::match::HitHasher::MatchSet |
protocols::match::HitHasher::HitHasher | ( | ) |
|
virtual |
|
inline |
References hit_hashes_.
Referenced by protocols::match::Matcher::process_matches_all_hit_combos_for_hit_subsets().
void protocols::match::HitHasher::clear_hash_map | ( | Size | which_hash_map | ) |
HitHasher::HitHash::const_iterator protocols::match::HitHasher::hit_hash_begin | ( | Size | which_hash_map | ) | const |
HitHasher::HitHash::const_iterator protocols::match::HitHasher::hit_hash_end | ( | Size | which_hash_map | ) | const |
void protocols::match::HitHasher::initialize | ( | ) |
References utility::LexicographicalIterator::at_end(), bb_, euler_bin_widths_, hit_hashes_, initialized_, numeric::geometry::BoundingBox< class >::lower(), N_HASH_MAPS, numeric::geometry::BoundingBox< class >::upper(), and xyz_bin_widths_.
Referenced by protocols::match::Matcher::process_matches_main_loop_enumerating_all_hit_combos(), protocols::match::Matcher::process_matches_where_one_geomcst_defines_downstream_location(), and protocols::match::Matcher::subsample_hits().
Insert a hits into all 64 hash maps.
References bb_, numeric::geometry::BoundingBox< class >::contains(), hit_hashes_, initialized_, ms, n_geometric_constraints_per_match_, N_HASH_MAPS, runtime_assert, protocols::match::Hit::second(), and utility_exit_with_message.
Referenced by protocols::match::Matcher::process_matches_all_hit_combos_for_hit_subsets(), protocols::match::Matcher::process_matches_where_one_geomcst_defines_downstream_location(), and protocols::match::Matcher::subsample_hits().
void protocols::match::HitHasher::insert_hit | ( | Size | which_hash_map, |
Size | geometric_constraint_id, | ||
Hit const * | hit | ||
) |
Insert a hits into a particular hash maps.
References bb_, numeric::geometry::BoundingBox< class >::contains(), hit_hashes_, initialized_, numeric::geometry::BoundingBox< class >::lower(), ms, n_geometric_constraints_per_match_, runtime_assert, protocols::match::Hit::second(), and numeric::geometry::BoundingBox< class >::upper().
void protocols::match::HitHasher::set_bounding_box | ( | BoundingBox const & | bb | ) |
void protocols::match::HitHasher::set_euler_bin_widths | ( | Vector const & | euler_bin_widths | ) |
void protocols::match::HitHasher::set_nhits_per_match | ( | Size | num_geometric_constraints | ) |
References initialized_, and n_geometric_constraints_per_match_.
Referenced by protocols::match::Matcher::process_matches_main_loop_enumerating_all_hit_combos(), protocols::match::Matcher::process_matches_where_one_geomcst_defines_downstream_location(), and protocols::match::Matcher::subsample_hits().
void protocols::match::HitHasher::set_uniform_euler_angle_bin_width | ( | Real | bin_width_degrees | ) |
References euler_bin_widths_, and initialized_.
void protocols::match::HitHasher::set_uniform_xyz_bin_width | ( | Real | bin_width | ) |
References initialized_, and xyz_bin_widths_.
void protocols::match::HitHasher::set_xyz_bin_widths | ( | Vector const & | bin_widths | ) |
|
private |
Referenced by initialize(), insert_hit(), and set_bounding_box().
|
private |
Referenced by initialize(), set_euler_bin_widths(), and set_uniform_euler_angle_bin_width().
|
private |
Referenced by binner(), clear_hash_map(), hit_hash_begin(), hit_hash_end(), initialize(), and insert_hit().
|
private |
|
private |
Referenced by insert_hit(), and set_nhits_per_match().
|
staticprivate |
Referenced by initialize(), and insert_hit().
|
private |
Referenced by initialize(), set_uniform_xyz_bin_width(), and set_xyz_bin_widths().