Rosetta 3.4
Public Types | Public Member Functions | Protected Member Functions
core::pack::interaction_graph::FirstClassNode< V, E, G > Class Template Reference

#include <AdditionalBackgroundNodesInteractionGraph.hh>

Inheritance diagram for core::pack::interaction_graph::FirstClassNode< V, E, G >:
Inheritance graph
[legend]
Collaboration diagram for core::pack::interaction_graph::FirstClassNode< V, E, G >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef std::list
< BackgroundToFirstClassEdge
< V, E, G > * > 
BackgroundEdgeList
typedef std::list
< BackgroundToFirstClassEdge
< V, E, G > * >::iterator 
BackgroundEdgeListIter
typedef std::vector
< BackgroundNode< V, E, G > * > 
BackgroundNodeVector
typedef std::vector
< BackgroundToFirstClassEdge
< V, E, G > * > 
BackgroundEdgeVector
typedef std::vector
< BackgroundToFirstClassEdge
< V, E, G > * >::iterator 
BackgroundEdgeVectorIter

Public Member Functions

virtual ~FirstClassNode ()
 FirstClassNode destructor.
 FirstClassNode (G *owner, int node_id, int num_states)
 FirstClassNode constructor.
BackgroundEdgeListIter add_background_edge (BackgroundToFirstClassEdge< V, E, G > *edge)
 Adds a BackgroundToFirstClassEdge to the node's list of such edges and returns an iterator to that list position.
void drop_background_edge (BackgroundEdgeListIter edge)
 Removes an edge from the node's BackgroundToFirstClassEdge list.
virtual unsigned int count_dynamic_memory () const
 Returns an int representing the amount of memory in bytes used by this node.

Protected Member Functions

int get_num_edges_to_background_nodes () const
BackgroundToFirstClassEdge< V,
E, G > * 
get_edge_to_bg_node (int index) const
int get_index_of_adjacent_background_node (int index) const
BackgroundNode< V, E, G > * get_adjacent_background_node (int index) const
bool get_bg_edge_vector_up_to_date_ () const
void update_bg_edge_vector ()
 Syncs the background edge vector with the background edge list.

Detailed Description

template<typename V, typename E, typename G>
class core::pack::interaction_graph::FirstClassNode< V, E, G >

FirstClassNode

Detailed:
A background node is a node which is not changing type or rotamer throughout a simulation.
Remarks:
No public default constructor makes this class uncopyable.

Member Typedef Documentation

template<typename V, typename E, typename G>
typedef std::list< BackgroundToFirstClassEdge< V, E, G >* > core::pack::interaction_graph::FirstClassNode< V, E, G >::BackgroundEdgeList
template<typename V, typename E, typename G>
typedef std::list< BackgroundToFirstClassEdge< V, E, G >* >::iterator core::pack::interaction_graph::FirstClassNode< V, E, G >::BackgroundEdgeListIter
template<typename V, typename E, typename G>
typedef std::vector< BackgroundToFirstClassEdge< V, E, G >* > core::pack::interaction_graph::FirstClassNode< V, E, G >::BackgroundEdgeVector
template<typename V, typename E, typename G>
typedef std::vector< BackgroundToFirstClassEdge< V, E, G >* >::iterator core::pack::interaction_graph::FirstClassNode< V, E, G >::BackgroundEdgeVectorIter
template<typename V, typename E, typename G>
typedef std::vector< BackgroundNode< V, E, G >* > core::pack::interaction_graph::FirstClassNode< V, E, G >::BackgroundNodeVector

Constructor & Destructor Documentation

template<typename V , typename E , typename G >
core::pack::interaction_graph::FirstClassNode< V, E, G >::~FirstClassNode ( ) [virtual]
template<typename V , typename E , typename G >
core::pack::interaction_graph::FirstClassNode< V, E, G >::FirstClassNode ( G owner,
int  node_id,
int  num_states 
)

FirstClassNode constructor.

FirstClassNode::FirstClassNode

Parameters:
owner- [in] - the owning interaction graph node_id - [in] - the index for this node amongst its owners set num_states - [in] - the number of states for this node

Member Function Documentation

template<typename V , typename E , typename G >
std::list< BackgroundToFirstClassEdge< V, E, G > * >::iterator core::pack::interaction_graph::FirstClassNode< V, E, G >::add_background_edge ( BackgroundToFirstClassEdge< V, E, G > *  edge_ptr)

Adds a BackgroundToFirstClassEdge to the node's list of such edges and returns an iterator to that list position.

FirstClassNode::add_background_edge

Remarks:
Edge addition invalidates the bg_edge_vector_up_to_date_ flag
Parameters:
edge_ptr- [in] - a pointer to the BackgroundToFirstClassEdge
template<typename V , typename E , typename G >
unsigned int core::pack::interaction_graph::FirstClassNode< V, E, G >::count_dynamic_memory ( ) const [virtual]

Returns an int representing the amount of memory in bytes used by this node.

FirstClassNode::count_dynamic_memory

Remarks:
ronj lists consume more memory because they maintain pointers to the previous and next nodes ronj current calculation uses 4 * # elements in list * sizeof(pointer), but I think this is wrong ronj isn't it only 3 * # elements in list * sizeof(pointer)?
Parameters:
total_memory- [out] - the amount of memory used by this node

Reimplemented in core::pack::interaction_graph::HPatchNode< V, E, G >, and core::pack::interaction_graph::SurfaceNode< V, E, G >.

template<typename V , typename E , typename G >
void core::pack::interaction_graph::FirstClassNode< V, E, G >::drop_background_edge ( BackgroundEdgeListIter  edge)

Removes an edge from the node's BackgroundToFirstClassEdge list.

FirstClassNode::drop_background_edge

Remarks:
Invalidates bg_edge_vector_up_to_date_ flag
Parameters:
edge- [in] - the iterator to the edge; in order to guarantee constant time edge deletion, each edge keeps iterators to its position in the edge lists of the nodes it's incident upon. It hands these iterators back to the nodes when it wants to delete itself.
template<typename V, typename E, typename G>
BackgroundNode< V, E, G >* core::pack::interaction_graph::FirstClassNode< V, E, G >::get_adjacent_background_node ( int  index) const [inline, protected]
template<typename V, typename E, typename G>
bool core::pack::interaction_graph::FirstClassNode< V, E, G >::get_bg_edge_vector_up_to_date_ ( ) const [inline, protected]
template<typename V, typename E, typename G>
BackgroundToFirstClassEdge< V, E, G >* core::pack::interaction_graph::FirstClassNode< V, E, G >::get_edge_to_bg_node ( int  index) const [inline, protected]
template<typename V, typename E, typename G>
int core::pack::interaction_graph::FirstClassNode< V, E, G >::get_index_of_adjacent_background_node ( int  index) const [inline, protected]
template<typename V, typename E, typename G>
int core::pack::interaction_graph::FirstClassNode< V, E, G >::get_num_edges_to_background_nodes ( ) const [inline, protected]
template<typename V , typename E , typename G >
void core::pack::interaction_graph::FirstClassNode< V, E, G >::update_bg_edge_vector ( ) [protected]

Syncs the background edge vector with the background edge list.

FirstClassNode::update_bg_edge_vector

Detailed:
Updates the vector of pointers to background edges to correspond to the list of background edges. Informs its incident edges of their position in its vector.
Remarks:
We are resizing these vectors to num_edges_to_bg_nodes PLUS ONE. This makes the vector 1-based.

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines