Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | Friends | List of all members
core::pack::interaction_graph::RotamerDotsCache Class Reference

A lightweight version of the RotamerDots class. Used to cache overlap between interaction graph Nodes and BGNodes. More...

#include <RotamerDots.hh>

Public Member Functions

 RotamerDotsCache ()
 
 RotamerDotsCache (core::Size num_atoms)
 
 RotamerDotsCache (RotamerDotsCache const &rhs)
 copy constructor More...
 
RotamerDotsCacheoperator= (RotamerDotsCache const &rhs)
 assignment operator More...
 
 ~RotamerDotsCache ()
 
void resize (core::Size num_atoms)
 
void zero ()
 sets the dot counts to zero for all atoms More...
 
void increment_count (utility::vector1< utility::vector1< ObjexxFCL::ubyte > > &covered)
 increments the dot coverage counts for all atoms in the cache More...
 
void write_to_compact_array (utility::vector1< utility::vector1< ObjexxFCL::ubyte > > &compact) const
 
void print_bit_string (utility::vector1< ObjexxFCL::ubyte > &values) const
 
void print (std::ostream &os) const
 
utility::vector1< DotSphere >
const & 
get_atom_counts () const
 

Private Attributes

utility::vector1< DotSphereatom_counts_
 

Friends

class RotamerDots
 

Detailed Description

A lightweight version of the RotamerDots class. Used to cache overlap between interaction graph Nodes and BGNodes.

During packing, when a first class node has to respond to another Node changing state, it's faster to decrement the coverage the previous state produced and increment the coverage the new state produces than to completely recalculate how the new state overlaps the node. But instead of holding that coverage information in a RotamerDots object (which does alot of other things), hold it in this cache class instead.

Constructor & Destructor Documentation

core::pack::interaction_graph::RotamerDotsCache::RotamerDotsCache ( )
default
core::pack::interaction_graph::RotamerDotsCache::RotamerDotsCache ( core::Size  num_atoms)
core::pack::interaction_graph::RotamerDotsCache::RotamerDotsCache ( RotamerDotsCache const &  rhs)
default

copy constructor

core::pack::interaction_graph::RotamerDotsCache::~RotamerDotsCache ( )
default

Member Function Documentation

utility::vector1< DotSphere > const& core::pack::interaction_graph::RotamerDotsCache::get_atom_counts ( ) const
inline

References atom_counts_.

void core::pack::interaction_graph::RotamerDotsCache::increment_count ( utility::vector1< utility::vector1< ObjexxFCL::ubyte > > &  covered)

increments the dot coverage counts for all atoms in the cache

Parameters
covered- [in] - compact ubyte array of dots; '1' for any covered dot for the vdw + 1.4 A sphere

References core::pack::interaction_graph::RotamerDots::atom_counts_.

Referenced by core::pack::interaction_graph::RotamerDots::get_overlap_cache().

RotamerDotsCache & core::pack::interaction_graph::RotamerDotsCache::operator= ( RotamerDotsCache const &  rhs)
default

assignment operator

void core::pack::interaction_graph::RotamerDotsCache::print ( std::ostream &  os) const
void core::pack::interaction_graph::RotamerDotsCache::print_bit_string ( utility::vector1< ObjexxFCL::ubyte > &  values) const
void core::pack::interaction_graph::RotamerDotsCache::resize ( core::Size  num_atoms)
void core::pack::interaction_graph::RotamerDotsCache::write_to_compact_array ( utility::vector1< utility::vector1< ObjexxFCL::ubyte > > &  compact) const

Called by BGEdges with a reference to a vector1 of vector1 of ubytes representing where to put the compact (count) based representation of all the atom overlap masks.

Note: This method only writes the standard SASA dot counts to the passed in array. No version of this function exists for expanded polar atom SASA dot counts.

References core::pack::interaction_graph::RotamerDots::atom_counts_.

void core::pack::interaction_graph::RotamerDotsCache::zero ( )

sets the dot counts to zero for all atoms

if the cache already knows the atom's counts are uniformly 0, it skips it

References core::pack::interaction_graph::RotamerDots::atom_counts_.

Referenced by core::pack::interaction_graph::RotamerDots::get_overlap_cache(), and core::pack::interaction_graph::RotamerDots::increment_both().

Friends And Related Function Documentation

friend class RotamerDots
friend

Member Data Documentation

utility::vector1< DotSphere > core::pack::interaction_graph::RotamerDotsCache::atom_counts_
private

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