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.

Definition at line 45 of file VoxelSetIterator.hh.

Member Typedef Documentation

typedef numeric::geometry::hashing::Bin6D protocols::match::VoxelSetIterator::Bin6D

Definition at line 54 of file VoxelSetIterator.hh.

typedef numeric::geometry::BoundingBox< Vector > protocols::match::VoxelSetIterator::BoundingBox

Definition at line 51 of file VoxelSetIterator.hh.

Definition at line 49 of file VoxelSetIterator.hh.

typedef numeric::geometry::hashing::Real3 protocols::match::VoxelSetIterator::Real3

Definition at line 52 of file VoxelSetIterator.hh.

Definition at line 48 of file VoxelSetIterator.hh.

typedef numeric::geometry::hashing::Size6 protocols::match::VoxelSetIterator::Size6

Definition at line 53 of file VoxelSetIterator.hh.

Definition at line 50 of file VoxelSetIterator.hh.

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.

Definition at line 32 of file VoxelSetIterator.cc.

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

Definition at line 85 of file VoxelSetIterator.hh.

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

Bin6D protocols::match::VoxelSetIterator::basehalfbin_
private

Definition at line 86 of file VoxelSetIterator.hh.

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

BoundingBox protocols::match::VoxelSetIterator::bb_
private

Definition at line 76 of file VoxelSetIterator.hh.

Referenced by VoxelSetIterator().

Size6 protocols::match::VoxelSetIterator::curr_bin_
private

Definition at line 96 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and get_bin_and_pos().

Size protocols::match::VoxelSetIterator::curr_pos_
private

Definition at line 97 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and get_bin_and_pos().

Real3 protocols::match::VoxelSetIterator::euler_bin_halfwidths_
private

Definition at line 82 of file VoxelSetIterator.hh.

Referenced by VoxelSetIterator().

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

Definition at line 80 of file VoxelSetIterator.hh.

Referenced by VoxelSetIterator().

utility::FixedSizeLexicographicalIterator< 6 > protocols::match::VoxelSetIterator::iter64_
private

Definition at line 95 of file VoxelSetIterator.hh.

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

Size3 protocols::match::VoxelSetIterator::n_euler_bins_
private

Definition at line 78 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and VoxelSetIterator().

Size3 protocols::match::VoxelSetIterator::n_xyz_bins_
private

Definition at line 77 of file VoxelSetIterator.hh.

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

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

Definition at line 83 of file VoxelSetIterator.hh.

Referenced by VoxelSetIterator().

bool protocols::match::VoxelSetIterator::theta_near_0_
private

Definition at line 89 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and VoxelSetIterator().

bool protocols::match::VoxelSetIterator::theta_near_180_
private

Definition at line 90 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and VoxelSetIterator().

utility::fixedsizearray1< Size, 2 > protocols::match::VoxelSetIterator::wrapped_phipsi_bins_
private

Definition at line 92 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and VoxelSetIterator().

utility::fixedsizearray1< Size, 2 > protocols::match::VoxelSetIterator::wrapped_phipsi_halfbins_
private

Definition at line 93 of file VoxelSetIterator.hh.

Referenced by calc_bin_and_pos(), and VoxelSetIterator().

Real3 protocols::match::VoxelSetIterator::xyz_bin_halfwidths_
private

Definition at line 81 of file VoxelSetIterator.hh.

Referenced by VoxelSetIterator().

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

Definition at line 79 of file VoxelSetIterator.hh.

Referenced by VoxelSetIterator().


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