14 #ifndef INCLUDED_core_pack_interaction_graph_SymmOnTheFlyInteractionGraph_hh
15 #define INCLUDED_core_pack_interaction_graph_SymmOnTheFlyInteractionGraph_hh
40 #include <numeric/xyzVector.hh>
46 #include <ObjexxFCL/FArray1D.hh>
47 #include <ObjexxFCL/FArray2D.hh>
48 #include <ObjexxFCL/FArray4D.hh>
50 #include <utility/vector1.hh>
52 #include <numeric/HomogeneousTransform.hh>
57 namespace ObjexxFCL { }
using namespace ObjexxFCL;
63 namespace interaction_graph {
82 virtual void zero_one_body_energies();
83 virtual void add_to_one_body_energies( ObjexxFCL::FArray1< core::PackerEnergy > & energy1b );
87 virtual void zero_one_body_energy(
int state );
95 return num_res_types_;
105 return num_restype_groups_;
112 return num_states_for_restype_group_;
119 return num_states_for_restype_group_;
126 return num_states_for_restype_group_[ restype_group ];
140 return state_offset_for_restype_group_[ restype_group ];
147 return one_body_energies_[ state ];
152 return distinguish_backbone_and_sidechain_;
156 distinguish_backbone_and_sidechain(
bool setting );
158 virtual unsigned int count_static_memory()
const = 0;
159 virtual unsigned int count_dynamic_memory()
const;
162 compute_rotamer_pair_energy(
163 int edge_making_energy_request,
172 get_rotamer(
int state,
int subunit )
const;
176 sc_bounding_sphere(
int state,
int subunit )
const;
180 bb_bounding_sphere(
int subunit )
const;
186 get_incident_otf_edge(
int edge );
190 get_incident_otf_edge(
int edge )
const;
194 get_adjacent_otf_node(
int index );
198 get_adjacent_otf_node(
int index )
const;
202 get_on_the_fly_owner();
206 get_on_the_fly_owner()
const;
245 add_ProCorrection_values(
246 int node_not_necessarily_proline,
261 int which_node = node_ind == get_node_index( 0 ) ? 0 : 1;
262 return get_proline_correction( which_node, state );
266 virtual unsigned int count_static_memory()
const = 0;
267 virtual unsigned int count_dynamic_memory()
const;
277 return eval_types_[ which_node( node_index ) ];
281 set_residues_adjacent_for_subunit_pair(
283 int other_node_subunit
287 residues_adjacent_for_subunit_pair(
289 int other_node_subunit,
290 int whichnode_restypegroup,
291 int othernode_restypegroup
325 return proline_corrections_[ which_node ][ state ];
344 get_otf_owner()
const;
372 typedef numeric::HomogeneousTransform< Real >
HTReal;
385 return num_restype_groups_;
389 distinguish_backbone_and_sidechain_for_node(
int node )
const;
392 distinguish_backbone_and_sidechain_for_node(
int node,
bool setting );
399 set_pose(
Pose const & );
424 assert( score_function_ );
425 return *score_function_;
441 zero_one_body_energy_for_node_state(
447 add_to_one_body_energy_for_node_state(
454 set_one_body_energy_for_node_state(
462 get_one_body_energy_for_node_state(
int node,
int state);
472 set_residues_adjacent_for_subunit_pair_for_edge(
476 int other_node_subunit );
479 reset_rpe_calculations_count();
483 get_num_rpe_calculations_count()
const;
494 add_ProCorrection_values_for_edge(
497 int node_not_neccessarily_proline,
507 note_short_range_interactions_exist_for_edge(
513 note_long_range_interactions_exist_for_edge(
518 virtual unsigned int count_dynamic_memory()
const;
532 return ( static_cast< SymmOnTheFlyNode * > (get_node( node_index )) );
539 return ( static_cast< SymmOnTheFlyNode const * > (get_node( node_index )) );
560 SymmOnTheFlyNode::get_incident_otf_edge(
int edge )
562 assert( dynamic_cast< SymmOnTheFlyEdge * > (get_incident_edge( edge )) );
568 SymmOnTheFlyNode::get_incident_otf_edge(
int edge )
const
570 assert( dynamic_cast< SymmOnTheFlyEdge const * > (get_incident_edge( edge )) );
576 SymmOnTheFlyNode::get_adjacent_otf_node(
int index )
578 assert( dynamic_cast< SymmOnTheFlyNode * > ( get_adjacent_node( index ) ));
584 SymmOnTheFlyNode::get_adjacent_otf_node(
int index )
const
586 assert( dynamic_cast< SymmOnTheFlyNode const * > ( get_adjacent_node( index ) ));
587 return static_cast< SymmOnTheFlyNode const *
> ( get_adjacent_node( index ) );
593 SymmOnTheFlyNode::get_on_the_fly_owner()
595 assert( dynamic_cast< SymmOnTheFlyInteractionGraph * > ( get_owner() ) );
601 SymmOnTheFlyNode::get_on_the_fly_owner()
const
603 assert( dynamic_cast< SymmOnTheFlyInteractionGraph const * > ( get_owner() ) );
609 SymmOnTheFlyEdge::get_otf_owner()
const {
615 SymmOnTheFlyEdge::get_otf_owner() {
623 #endif //INCLUDED_core_pack_interaction_graph_SymmOnTheFlyInteractionGraph_HH