![]() |
Rosetta Protocols
2014.35
|
Helper class for the OccupiedSpaceHasher which manages the logic for how to iterate across the 64 voxels that each 6-D point covers. More...
#include <VoxelSetIterator.hh>
Public Member Functions | |
VoxelSetIterator (BoundingBox const &bb, Size3 const &n_xyz_bins, Size3 const &n_euler_bins, Real3 const &xyz_bin_widths, Real3 const &euler_bin_widths, Real3 const &xyz_bin_halfwidths, Real3 const &euler_bin_halfwidths, Real6 const &point) | |
void | operator++ () |
bool | at_end () const |
void | get_bin_and_pos (Size6 &bin, Size &pos) const |
Private Member Functions | |
void | calc_bin_and_pos () |
Helper class for the OccupiedSpaceHasher which manages the logic for how to iterate across the 64 voxels that each 6-D point covers.
This class ensures that the bounding box for the hash is not walked outside of, that the phi and psi are wrapped at 360, and that when theta is near a gimbal-lock angle of 180 or 0, that phi and psi are appropriately wrapped to the negative rotation. This class may be rapidly allocated and deallocated on the stack – no calls to new are made anywhere.
protocols::match::VoxelSetIterator::VoxelSetIterator | ( | BoundingBox const & | bb, |
Size3 const & | n_xyz_bins, | ||
Size3 const & | n_euler_bins, | ||
Real3 const & | xyz_bin_widths, | ||
Real3 const & | euler_bin_widths, | ||
Real3 const & | xyz_bin_halfwidths, | ||
Real3 const & | euler_bin_halfwidths, | ||
Real6 const & | point | ||
) |
Initalize the iterator with both the bounding volume and discritezation data from the OccupiedSpaceHasher, and also with the coordinates of the 6-d point that this instance will be responsible for. One point per VoxelSetIterator.
References basebin_, basehalfbin_, bb_, calc_bin_and_pos(), euler_bin_halfwidths_, euler_bin_widths_, iter64_, numeric::geometry::BoundingBox< class >::lower(), n_euler_bins_, n_xyz_bins_, point_, utility::FixedSizeLexicographicalIterator< S >::set_dimension_sizes(), theta_near_0_, theta_near_180_, wrapped_phipsi_bins_, wrapped_phipsi_halfbins_, xyz_bin_halfwidths_, and xyz_bin_widths_.
bool protocols::match::VoxelSetIterator::at_end | ( | ) | const |
References utility::FixedSizeLexicographicalIterator< S >::at_end(), and iter64_.
Referenced by calc_bin_and_pos(), get_bin_and_pos(), protocols::match::OccupiedSpaceHash::insert_hit_geometry(), protocols::match::OccupiedSpaceHash::match_possible_for_hit_geometry(), and protocols::match::OccupiedSpaceHash::note_hit_geometry().
|
private |
References at_end(), basebin_, basehalfbin_, curr_bin_, curr_pos_, iter64_, n_euler_bins_, theta_near_0_, theta_near_180_, wrapped_phipsi_bins_, and wrapped_phipsi_halfbins_.
Referenced by operator++(), and VoxelSetIterator().
void protocols::match::VoxelSetIterator::operator++ | ( | ) |
|
private |
Referenced by calc_bin_and_pos(), operator++(), and VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), operator++(), and VoxelSetIterator().
|
private |
Referenced by VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), and get_bin_and_pos().
|
private |
Referenced by calc_bin_and_pos(), and get_bin_and_pos().
|
private |
Referenced by VoxelSetIterator().
|
private |
Referenced by VoxelSetIterator().
|
private |
Referenced by at_end(), calc_bin_and_pos(), operator++(), and VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), and VoxelSetIterator().
|
private |
Referenced by operator++(), and VoxelSetIterator().
|
private |
Referenced by VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), and VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), and VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), and VoxelSetIterator().
|
private |
Referenced by calc_bin_and_pos(), and VoxelSetIterator().
|
private |
Referenced by VoxelSetIterator().
|
private |
Referenced by VoxelSetIterator().