Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ICoorOrbitalData.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 /// @begin AtomTypeSet
11 ///
12 /// @brief
13 /// A class for reading in the orbital type properties
14 ///
15 /// @detailed
16 /// This class contains the ORBITALS INTERNAL_ICOOR data that is read in from residue_io.cc. Actually,
17 /// the data is set when residue_io.cc calls the command from residuetype.cc set_orbital_icoor. The data
18 /// is set and chills out in memory until needed. The actual xyz coordinates are not stored at this point.
19 /// xyz coordinates are constructed when conformation/Residue.hh asks for the build function in this class.
20 /// At that point, the coordinates are built and returned.
21 ///
22 /// But wait, you say, why do you store the names of the atoms instead of the index of the atoms!? Well, the
23 /// problem occurs when residuetype reorders the indices of the atoms. When this occurrs, the indices for the icoor
24 /// are not reordered here. Another problem ocurs because orbital indices are not reordered in this process because
25 /// orbital indices are seperate from the atom indices. Regardless, when you build the xyz coords, this step is transparent
26 /// because the function orbital_xyz() in residue.hh takes care of this conversion of indice to string.
27 ///
28 /// @note NOTE!!!!!!!!!!! The internal coordinates cannot contain an orbital as the stub1, stub2, or stub3 atom.
29 /// This is because the xyz coordinates are not updated when the conformation changes. The stub1, stub2, stub2 atoms
30 /// must be actual atoms and not orbitals!!!!! (design feature or flaw? you decide)
31 ///
32 ///
33 /// @authors
34 /// Steven Combs
35 ///
36 ///
37 /// @last_modified December 12 2010
38 /////////////////////////////////////////////////////////////////////////
39 
40 #ifndef INCLUDED_core_chemical_orbitals_ICoorOrbitalData_hh
41 #define INCLUDED_core_chemical_orbitals_ICoorOrbitalData_hh
42 
43 // Project headers
44 // AUTO-REMOVED #include <core/chemical/ResidueType.fwd.hh>
45 // AUTO-REMOVED #include <core/conformation/Residue.fwd.hh>
46 // AUTO-REMOVED #include <core/conformation/Conformation.fwd.hh>
47 // AUTO-REMOVED #include <core/id/AtomID.hh>
48 
49 // Utility headers
50 // AUTO-REMOVED #include <utility/exit.hh>
51 
52 #include <core/types.hh>
53 #include <string>
54 
55 //Auto Headers
56 namespace core{
57 namespace chemical{
58 namespace orbitals{
59 
61 public:
62 
63 public:
64  /// @brief default constructor
66 
67  /// @brief construct ICoorAtomID by atom name and its ResidueType
69  Real phi,
70  Real theta,
71  Real distance,
75  );
76 
78  Real phi,
79  Real theata,
80  Real distance,
81  Size stub1,
82  Size stub2,
83  Size stub3
84  );
85 
86 
87 
88 
89  Real phi() const;
90  Real theta() const;
91  Real distance() const;
92  std::string stub1() const;
93  std::string stub2() const;
94  std::string stub3() const;
95 
96  Vector
97  build(
98  Vector stub1_xyz,
99  Vector stub2_xyz,
100  Vector stub3_xyz
101  ) const;
102 
103 
104  void replace_stub1(const core::Size atom1 )
105  {
106  s_stub1_=atom1;
107  }
108 
109  void replace_stub2(const core::Size atom2)
110  {
111  s_stub2_=atom2;
112  }
113  void replace_stub3(const core::Size atom3)
114  {
115  s_stub3_=atom3;
116  }
117 
119  {
120  return s_stub1_;
121  }
123  {
124  return s_stub2_;
125  }
127  {
128  return s_stub3_;
129  }
130 
131 
132 private:
139 
143 
144 
145 
146 };
147 
148 
149 
150 
151 }
152 }
153 }
154 
155 
156 #endif /* ICOORORBITALID_HH_ */