14 #ifndef INCLUDED_core_pack_interaction_graph_OnTheFlyInteractionGraph_hh
15 #define INCLUDED_core_pack_interaction_graph_OnTheFlyInteractionGraph_hh
37 #include <numeric/xyzVector.hh>
43 #include <ObjexxFCL/FArray1D.hh>
44 #include <ObjexxFCL/FArray2D.hh>
46 #include <utility/vector1.hh>
52 namespace ObjexxFCL { }
using namespace ObjexxFCL;
58 namespace interaction_graph {
84 virtual void zero_one_body_energies();
85 virtual void add_to_one_body_energies( ObjexxFCL::FArray1< core::PackerEnergy > & energy1b );
89 virtual void zero_one_body_energy(
int state );
102 return num_states_for_aatype_;
109 return num_states_for_aatype_;
116 return num_states_for_aatype_[ aa_type ];
123 assert( state > 0 && state <= get_num_states() );
124 return sparse_mat_info_for_state_[ state ];
130 return state_offset_for_aatype_[ aatype ];
137 return one_body_energies_[ state ];
142 return distinguish_backbone_and_sidechain_;
146 distinguish_backbone_and_sidechain(
bool setting );
148 virtual unsigned int count_static_memory()
const = 0;
149 virtual unsigned int count_dynamic_memory()
const;
152 compute_rotamer_pair_energy(
153 int edge_making_energy_request,
162 get_incident_otf_edge(
int edge );
166 get_incident_otf_edge(
int edge )
const;
170 get_adjacent_otf_node(
int index );
174 get_adjacent_otf_node(
int index )
const;
178 get_on_the_fly_owner();
182 get_on_the_fly_owner()
const;
188 return *rotamers_[ state ];
192 BoundingSphere
const &
195 return sc_bounding_spheres_[ state ];
227 set_ProCorrection_values(
228 int node_not_necessarily_proline,
243 int which_node = node_ind == get_node_index( 0 ) ? 0 : 1;
244 return get_proline_correction( which_node, state );
248 virtual unsigned int count_static_memory()
const = 0;
249 virtual unsigned int count_dynamic_memory()
const;
259 return eval_types_[ which_node( node_index ) ];
271 return proline_corrections_[ which_node ][ state ];
278 return static_cast< OnTheFlyNode const *
> (get_node( which_node ));
285 return static_cast< OnTheFlyNode *
> (get_node( which_node ));
313 return num_aa_types_;
317 distinguish_backbone_and_sidechain_for_node(
int node )
const;
320 distinguish_backbone_and_sidechain_for_node(
int node,
bool setting );
327 set_pose(
Pose const & );
349 assert( score_function_ );
350 return *score_function_;
366 zero_one_body_energy_for_node_state(
372 add_to_one_body_energy_for_node_state(
379 set_one_body_energy_for_node_state(
387 get_one_body_energy_for_node_state(
int node,
int state);
390 set_sparse_aa_info_for_edge(
393 FArray2_bool
const & sparse_conn_info
398 reset_rpe_calculations_count();
402 get_num_rpe_calculations_count()
const;
413 set_ProCorrection_values_for_edge(
416 int node_not_neccessarily_proline,
426 note_short_range_interactions_exist_for_edge(
432 note_long_range_interactions_exist_for_edge(
437 virtual unsigned int count_dynamic_memory()
const;
445 return ( static_cast< OnTheFlyNode * > (get_node( node_index )) );
452 return ( static_cast< OnTheFlyNode const * > (get_node( node_index )) );
471 OnTheFlyNode::get_incident_otf_edge(
int edge )
473 assert( dynamic_cast< OnTheFlyEdge * > (get_incident_edge( edge )) );
474 return static_cast< OnTheFlyEdge *
> (get_incident_edge( edge ));
479 OnTheFlyNode::get_incident_otf_edge(
int edge )
const
481 assert( dynamic_cast< OnTheFlyEdge const * > (get_incident_edge( edge )) );
482 return static_cast< OnTheFlyEdge const *
> (get_incident_edge( edge ));
487 OnTheFlyNode::get_adjacent_otf_node(
int index )
489 assert( dynamic_cast< OnTheFlyNode * > ( get_adjacent_node( index ) ));
490 return static_cast< OnTheFlyNode *
> ( get_adjacent_node( index ) );
495 OnTheFlyNode::get_adjacent_otf_node(
int index )
const
497 assert( dynamic_cast< OnTheFlyNode const * > ( get_adjacent_node( index ) ));
498 return static_cast< OnTheFlyNode const *
> ( get_adjacent_node( index ) );
504 OnTheFlyNode::get_on_the_fly_owner()
506 assert( dynamic_cast< OnTheFlyInteractionGraph * > ( get_owner() ) );
512 OnTheFlyNode::get_on_the_fly_owner()
const
514 assert( dynamic_cast< OnTheFlyInteractionGraph const * > ( get_owner() ) );
522 #endif //INCLUDED_core_pack_interaction_graph_OnTheFlyInteractionGraph_HH