![]() |
Rosetta
2019.12
|
#include <UpperEdgeGraph.hh>
Public Types | |
typedef UEVertex< V, E > | VertexClass |
typedef UEEdge< V, E > | EdgeClass |
typedef UpperEdgeGraph< V, E > | GraphClass |
typedef utility::vector1 < EdgeClass > | UpperEdgeVector |
typedef utility::vector1 < EdgeClass >::iterator | UpperEdgeListIter |
typedef utility::vector1 < EdgeClass >::const_iterator | UpperEdgeListConstIter |
![]() | |
typedef platform::Size | Size |
typedef platform::Size | size_type |
Public Member Functions | |
UEVertex (GraphClass *owner, platform::Size index) | |
standard constructor; though if vertices are to be allocated in a single vector1, then this ctor requires creating and destroying an anonymous vertex to add each vertex to the graph... wasteful More... | |
UEVertex () | |
default constructor; useful for allocating all vertices at once in a single vector1 using the resize() method. Note that both index_ and owner_ are set to 0. This state must be corrected before the vertex is of any use. More... | |
~UEVertex () override=default | |
dstor, should be non-virtual More... | |
void | reserve_edge_space () |
reserves space for the edges. Due to the nature of vertex construction in the UEGraph, this method should be called separately from the constructor. More... | |
EdgeClass * | get_edge (platform::Size upper_vertex_id) |
EdgeClass const * | get_edge (platform::Size upper_vertex_id) const |
bool | edge_exists (platform::Size upper_vertex_id) |
UpperEdgeListIter | upper_edge_list_begin () |
UpperEdgeListIter | upper_edge_list_end () |
UpperEdgeListConstIter | const_upper_edge_list_begin () const |
UpperEdgeListConstIter | const_upper_edge_list_end () const |
platform::Size | num_upper_neighbors () const |
platform::Size | num_lower_neighbors () const |
platform::Size | num_neighbors () const |
platform::Size | num_neighbors_counting_self () const |
void | drop_all_edges () |
V & | data () |
V const & | data () const |
![]() | |
ReferenceCount () | |
Default constructor. More... | |
virtual | ~ReferenceCount () |
Private Member Functions | |
void | set_index_and_owner (platform::Size index, GraphClass *owner) |
method for completing the construction of a vertex if the defaul ctor was used. More... | |
void | add_edge (platform::Size upper_vertex_index) |
add an edge More... | |
void | add_edge (platform::Size upper_vertex_index, E const &edge_data) |
void | note_upper_edge_deleted () |
void | note_lower_edge_deleted () |
void | note_lower_edge_added () |
void | make_edge_vector_current () const |
void | add_edge_common () |
Private Attributes | |
platform::Size | index_ |
UpperEdgeVector | upper_edges_ |
platform::Size | num_upper_edges_ |
platform::Size | num_lower_edges_ |
bool | lazily_deleted_edges_present_ |
GraphClass * | owner_ |
V | data_ |
Friends | |
class | UEEdge< V, E > |
class | UpperEdgeGraph< V, E > |
typedef UEEdge< V, E > utility::graph::UEVertex< V, E >::EdgeClass |
typedef UpperEdgeGraph< V, E > utility::graph::UEVertex< V, E >::GraphClass |
typedef utility::vector1< EdgeClass >::const_iterator utility::graph::UEVertex< V, E >::UpperEdgeListConstIter |
typedef utility::vector1< EdgeClass >::iterator utility::graph::UEVertex< V, E >::UpperEdgeListIter |
typedef utility::vector1< EdgeClass > utility::graph::UEVertex< V, E >::UpperEdgeVector |
typedef UEVertex< V, E > utility::graph::UEVertex< V, E >::VertexClass |
|
inline |
standard constructor; though if vertices are to be allocated in a single vector1, then this ctor requires creating and destroying an anonymous vertex to add each vertex to the graph... wasteful
References utility::graph::UEVertex< V, E >::upper_edges_.
|
inline |
default constructor; useful for allocating all vertices at once in a single vector1 using the resize() method. Note that both index_ and owner_ are set to 0. This state must be corrected before the vertex is of any use.
References utility::graph::UEVertex< V, E >::upper_edges_.
|
overridedefault |
dstor, should be non-virtual
|
inlineprivate |
add an edge
do not try to use this method or the other add_edge method to add edges to a vertex; they are for class UpperEdgeGraph only. Invoke add_edge on the graph itself.
References utility::graph::UEVertex< V, E >::add_edge_common(), utility::graph::UEVertex< V, E >::index_, utility::graph::UEVertex< V, E >::owner_, and utility::graph::UEVertex< V, E >::upper_edges_.
|
inlineprivate |
|
inlineprivate |
References utility::graph::UEVertex< V, E >::num_upper_edges_.
Referenced by utility::graph::UEVertex< V, E >::add_edge().
|
inline |
|
inline |
|
inline |
References utility::graph::UEVertex< V, E >::data_.
Referenced by MetalSiteFinderMover::apply().
|
inline |
References utility::graph::UEVertex< V, E >::data_.
|
inline |
|
inline |
|
inline |
|
inline |
References utility::graph::UEVertex< V, E >::get_edge().
|
inlineprivate |
References debug_assert, test.T200_Scoring::ii, utility::graph::UEVertex< V, E >::lazily_deleted_edges_present_, utility::graph::UEVertex< V, E >::num_upper_edges_, and utility::graph::UEVertex< V, E >::upper_edges_.
Referenced by utility::graph::UEVertex< V, E >::const_upper_edge_list_begin(), utility::graph::UEVertex< V, E >::const_upper_edge_list_end(), utility::graph::UEVertex< V, E >::edge_exists(), utility::graph::UEVertex< V, E >::get_edge(), utility::graph::UEVertex< V, E >::upper_edge_list_begin(), and utility::graph::UEVertex< V, E >::upper_edge_list_end().
|
inlineprivate |
References utility::graph::UEVertex< V, E >::num_lower_edges_.
Referenced by utility::graph::UEEdge< V, E >::UEEdge().
|
inlineprivate |
References utility::graph::UEVertex< V, E >::num_lower_edges_.
Referenced by utility::graph::UEEdge< V, E >::delete_edge().
|
inlineprivate |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
reserves space for the edges. Due to the nature of vertex construction in the UEGraph, this method should be called separately from the constructor.
class V must define a static member "NUM_EDGES_TO_RESERVE()"; the UEVertex constructor allocates space for that many edges – if fewer than that many edges are added to a sigle node, then new() need never be called. if more are added, the class does not crash – it simply grows the vector out
References utility::graph::UEVertex< V, E >::upper_edges_.
|
inlineprivate |
method for completing the construction of a vertex if the defaul ctor was used.
to be called by class UEGraph only
References debug_assert, ObjexxFCL::index(), utility::graph::UEVertex< V, E >::index_, and utility::graph::UEVertex< V, E >::owner_.
|
inline |
|
inline |
|
friend |
|
friend |
|
private |
Referenced by utility::graph::UEVertex< V, E >::data().
|
private |
|
mutableprivate |
|
private |
Referenced by utility::graph::UEVertex< V, E >::drop_all_edges(), utility::graph::UEVertex< V, E >::note_lower_edge_added(), utility::graph::UEVertex< V, E >::note_lower_edge_deleted(), utility::graph::UEVertex< V, E >::num_lower_neighbors(), utility::graph::UEVertex< V, E >::num_neighbors(), and utility::graph::UEVertex< V, E >::num_neighbors_counting_self().
|
private |
Referenced by utility::graph::UEVertex< V, E >::add_edge_common(), utility::graph::UEVertex< V, E >::drop_all_edges(), utility::graph::UEVertex< V, E >::make_edge_vector_current(), utility::graph::UEVertex< V, E >::note_upper_edge_deleted(), utility::graph::UEVertex< V, E >::num_neighbors(), utility::graph::UEVertex< V, E >::num_neighbors_counting_self(), and utility::graph::UEVertex< V, E >::num_upper_neighbors().
|
private |
|
mutableprivate |
Referenced by utility::graph::UEVertex< V, E >::add_edge(), utility::graph::UEVertex< V, E >::const_upper_edge_list_begin(), utility::graph::UEVertex< V, E >::const_upper_edge_list_end(), utility::graph::UEVertex< V, E >::drop_all_edges(), utility::graph::UEVertex< V, E >::edge_exists(), utility::graph::UEVertex< V, E >::get_edge(), utility::graph::UEVertex< V, E >::make_edge_vector_current(), utility::graph::UEVertex< V, E >::reserve_edge_space(), utility::graph::UEVertex< V, E >::UEVertex(), utility::graph::UEVertex< V, E >::upper_edge_list_begin(), and utility::graph::UEVertex< V, E >::upper_edge_list_end().