Rosetta 3.5
|
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 Types | |
typedef core::Size | Size |
typedef core::Real | Real |
typedef core::Vector | Vector |
typedef numeric::geometry::BoundingBox < Vector > | BoundingBox |
typedef numeric::geometry::hashing::Real3 | Real3 |
typedef numeric::geometry::hashing::Size6 | Size6 |
typedef numeric::geometry::hashing::Bin6D | Bin6D |
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 () |
Private Attributes | |
BoundingBox | bb_ |
Size3 | n_xyz_bins_ |
Size3 | n_euler_bins_ |
Real3 | xyz_bin_widths_ |
Real3 | euler_bin_widths_ |
Real3 | xyz_bin_halfwidths_ |
Real3 | euler_bin_halfwidths_ |
Real6 | point_ |
Bin6D | basebin_ |
Bin6D | basehalfbin_ |
bool | theta_near_0_ |
bool | theta_near_180_ |
utility::fixedsizearray1< Size, 2 > | wrapped_phipsi_bins_ |
utility::fixedsizearray1< Size, 2 > | wrapped_phipsi_halfbins_ |
utility::FixedSizeLexicographicalIterator< 6 > | iter64_ |
Size6 | curr_bin_ |
Size | curr_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.
typedef numeric::geometry::hashing::Bin6D protocols::match::VoxelSetIterator::Bin6D |
typedef numeric::geometry::BoundingBox< Vector > protocols::match::VoxelSetIterator::BoundingBox |
typedef numeric::geometry::hashing::Real3 protocols::match::VoxelSetIterator::Real3 |
typedef numeric::geometry::hashing::Size6 protocols::match::VoxelSetIterator::Size6 |
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_, n_euler_bins_, n_xyz_bins_, point_, 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 |
|
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++ | ( | ) |
References basebin_, basehalfbin_, calc_bin_and_pos(), iter64_, n_xyz_bins_, and protocols::loops::start.
|
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().