Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SymmetricEnergies.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 // This file is part of the Rosetta software suite and is made available under license.
5 // The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6 // (C) 199x-2009 Rosetta Commons participating institutions and developers.
7 // For more information, see http://www.rosettacommons.org/.
8 
9 /// @file core/scoring/symmetry/SymmetricEnergies.hh
10 /// @brief Symmetric Energies class to store cached energies and track the residue
11 /// neighbor relationships
12 /// @author Ingemar Andre
13 
14 #ifndef INCLUDED_core_scoring_symmetry_SymmetricEnergies_hh
15 #define INCLUDED_core_scoring_symmetry_SymmetricEnergies_hh
16 
17 // Unit headers
19 
20 // Package headers
21 #include <core/scoring/Energies.hh>
24 
25 // Project headers
28 
29 // Numeric headers
30 // AUTO-REMOVED #include <numeric/xyzMatrix.hh>
31 
32 #include <utility/vector1.hh>
33 #include <numeric/xyzMatrix.fwd.hh>
34 
35 
36 namespace core {
37 namespace scoring {
38 namespace symmetry {
39 
41 {
42 
43 public:
44 
47 
49 
50 public:
51  /// ctor -- ensure correct initial state
53 
54  // Explicit copy ctor to avoid #include .hh's
55  SymmetricEnergies( Energies const & src );
56 
57  SymmetricEnergies( Energies & src );
58 
59  // Explicit assignmnet operator to avoid #include .hh's
60  virtual Energies const & operator = ( Energies const & rhs );
61 
62  ///@details determine whether my type is the same as another Conformation's
63  virtual
64  bool
65  same_type_as_me( Energies const & other, bool recurse = true ) const;
66 
68 
70  clone() const;
71 
75 
76 private:
77 
78  void update_neighbor_links( pose::Pose const & pose );
79  void fill_point_graph( pose::Pose const & pose, conformation::PointGraphOP pg ) const;
80  void require_context_graph_( scoring::ContextGraphType type, bool external ) const;
81 
82 #ifdef USEBOOSTSERIALIZE
83  friend class boost::serialization::access;
84 
85  template<class Archive>
86  void serialize(Archive & ar, const unsigned int version){
87  ar & boost::serialization::base_object<Energies>(*this);
88  }
89 
90 #endif
91 private:
93 
94 };
95 
96 } // namespace symmetry
97 } // namespace scoring
98 } // namespace core
99 
100 
101 #endif // INCLUDED_core_scoring_symmetry_SymmetricEnergies_HH