Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ResidueCoordinateChangeList.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/kinematics/ResidueCoordinateChangeList.fwd.hh
11 /// @brief AtomTree/Conformation communication vector class forward declaration
12 /// @author Andrew Leaver-Fay
13 
14 
15 #ifndef INCLUDED_core_kinematics_ResidueCoordinateChangeList_hh
16 #define INCLUDED_core_kinematics_ResidueCoordinateChangeList_hh
17 
18 // Unit headers
20 
21 // Package headers
22 #include <core/id/AtomID.fwd.hh>
23 
24 // Utility headers
25 // AUTO-REMOVED #include <utility/vector1.hh>
26 #include <utility/pointer/ReferenceCount.hh>
27 
28 
29 namespace core {
30 namespace kinematics {
31 
32 /// @brief The AtomTree is responsible for informing the conformation
33 /// of which residues have had either internal (DOF) or external
34 /// (xyz) coordinate changes so that the Conformation may shuttle
35 /// O(k) -- output sensitive -- data from the AtomTree to the
36 /// Residue objects it manages.
38 {
39 public:
41 
43 
46 
47  /// @brief Set the number of residues in the conformation being tracked.
48  void
50 
51  /// @brief Return the number of
52  Size
53  total_residue() const {
54  return total_residue_;
55  }
56 
57  /// @brief Is the list of the changed residues empty?
58  bool
59  empty() const;
60 
61  /// @brief Reset the list of those residues that have moved. O(k).
62  void
63  clear();
64 
65  /// @brief Mark a residue as having changed by passing in an AtomId for one atom
66  /// in that residue
67  void
69 
70  /// @brief Mark a residue as having changed by passing in the index of that residue.
71  void
72  mark_residue_moved( Size resid );
73 
74  /// @brief returns an iterator to the beginning of the (unordered) list of
75  /// residues that have moved.
77  residues_moved_begin() const;
78 
79  /// @brief returns an iterator to the end of the (unordered) list of
80  /// residues that have moved.
82  residues_moved_end() const;
83 
84 private:
85  /// @brief O(N) -- used in assert statements in debug mode
86  bool
88 
89 private:
91 
92  /// @brief The reverse mapping from residue index to its position in the
93  /// list of residues that have changed. Size total_residue_
95 
97 
98 };
99 
100 
101 
102 } // namespace kinematics
103 } // namespace core
104 
105 
106 #endif // INCLUDED_core_kinematics_ResidueCoordinateChangeList_HH