Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::match::VoxelSetIterator Class Reference

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>

Collaboration diagram for protocols::match::VoxelSetIterator:
Collaboration graph
[legend]

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_
 

Detailed Description

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.

Member Typedef Documentation

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

Constructor & Destructor Documentation

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_.

Member Function Documentation

bool protocols::match::VoxelSetIterator::at_end ( ) const
void protocols::match::VoxelSetIterator::calc_bin_and_pos ( )
private
void protocols::match::VoxelSetIterator::get_bin_and_pos ( Size6 bin,
Size pos 
) const
void protocols::match::VoxelSetIterator::operator++ ( )

Member Data Documentation

Bin6D protocols::match::VoxelSetIterator::basebin_
private
Bin6D protocols::match::VoxelSetIterator::basehalfbin_
private
BoundingBox protocols::match::VoxelSetIterator::bb_
private

Referenced by VoxelSetIterator().

Size6 protocols::match::VoxelSetIterator::curr_bin_
private
Size protocols::match::VoxelSetIterator::curr_pos_
private
Real3 protocols::match::VoxelSetIterator::euler_bin_halfwidths_
private

Referenced by VoxelSetIterator().

Real3 protocols::match::VoxelSetIterator::euler_bin_widths_
private

Referenced by VoxelSetIterator().

utility::FixedSizeLexicographicalIterator< 6 > protocols::match::VoxelSetIterator::iter64_
private
Size3 protocols::match::VoxelSetIterator::n_euler_bins_
private
Size3 protocols::match::VoxelSetIterator::n_xyz_bins_
private

Referenced by operator++(), and VoxelSetIterator().

Real6 protocols::match::VoxelSetIterator::point_
private

Referenced by VoxelSetIterator().

bool protocols::match::VoxelSetIterator::theta_near_0_
private
bool protocols::match::VoxelSetIterator::theta_near_180_
private
utility::fixedsizearray1< Size, 2 > protocols::match::VoxelSetIterator::wrapped_phipsi_bins_
private
utility::fixedsizearray1< Size, 2 > protocols::match::VoxelSetIterator::wrapped_phipsi_halfbins_
private
Real3 protocols::match::VoxelSetIterator::xyz_bin_halfwidths_
private

Referenced by VoxelSetIterator().

Real3 protocols::match::VoxelSetIterator::xyz_bin_widths_
private

Referenced by VoxelSetIterator().


The documentation for this class was generated from the following files: