Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PrecomputedPairEnergiesInteractionGraph.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file core/pack/interaction_graph/PrecomputedPairEnergiesInteractionGraph.hh
11 /// @brief Precomputed interaction graph class header
12 /// @author Andrew Leaver-Fay (leaverfa@email.unc.edu)
13 
14 
15 #ifndef INCLUDED_core_pack_interaction_graph_PrecomputedPairEnergiesInteractionGraph_hh
16 #define INCLUDED_core_pack_interaction_graph_PrecomputedPairEnergiesInteractionGraph_hh
17 
18 // Unit Headers
20 
21 // Package Headers
23 
24 // ObjexxFCL Headers
25 
26 // Utility Headers
27 
28 namespace core {
29 namespace pack {
30 namespace interaction_graph {
31 
33 {
34 public:
36 
38  InteractionGraphBase * owner,
39  int node_id,
40  int num_states)
41  :
42  FixedBBNode( owner, node_id, num_states )
43  {}
44 
45 };
46 
48 {
49 public:
51 
53  InteractionGraphBase* owner,
54  int first_node_ind,
55  int second_node_ind)
56  :
57  FixedBBEdge( owner, first_node_ind, second_node_ind )
58  {}
59 
60  virtual
61  void add_to_two_body_energy(int const, int const, core::PackerEnergy const) = 0;
62 
63  virtual
64  void add_to_two_body_energies( ObjexxFCL::FArray2< core::PackerEnergy > const & res_res_energy_array ) = 0;
65 
66  virtual
67  void set_two_body_energy(int const, int const, core::PackerEnergy const) = 0;
68 
69  virtual
70  void clear_two_body_energy(int const, int const) = 0;
71 
72 };
73 
75 {
76 public:
79  :
80  FixedBBInteractionGraph( num_nodes )
81  {}
82 
83 
84  /// @brief interface for PrecomputedPairEnergiesEdge::add_to_two_body_energies
86  (
87  int node1,
88  int node2,
89  ObjexxFCL::FArray2< core::PackerEnergy > const & res_res_energy_array
90  );
91 
92  /// @brief interface to PrecomputedPairEnergiesEdge::add_to_two_body_energies
94  (
95  int node1,
96  int node2,
97  int state_node1,
98  int state_node2,
99  core::PackerEnergy const two_body_energy
100  );
101 
102  /// @brief interface to PDEdge::set_two_body_energy
104  (
105  int node1,
106  int node2,
107  int state_node1,
108  int state_node2,
109  core::PackerEnergy const two_body_energy
110  );
111 
112  /// @brief interface to PDEdge::clear_two_body_energy
114  (
115  int node1,
116  int node2,
117  int state_node1,
118  int state_node2
119  );
120 
121  virtual void declare_edge_energies_final(int node1, int node2);
122 
123 };
124 
125 } //end namespace interaction_graph
126 } //end namespace pack
127 } //end namespace core
128 
129 #endif