Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LK_BallInfo.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 made available under the Rosetta Commons license.
5 // See http://www.rosettacommons.org/license
6 // (C) 199x-2007 University of Washington
7 // (C) 199x-2007 University of California Santa Cruz
8 // (C) 199x-2007 University of California San Francisco
9 // (C) 199x-2007 Johns Hopkins University
10 // (C) 199x-2007 University of North Carolina, Chapel Hill
11 // (C) 199x-2007 Vanderbilt University
12 
13 /// @file core/scoring/methods/LK_BallEnergy.hh
14 /// @brief LK Solvation using hemisphere culling class declaration
15 /// @author David Baker
16 /// @author Andrew Leaver-Fay
17 
18 #ifndef INCLUDED_core_scoring_methods_LK_BallInfo_HH
19 #define INCLUDED_core_scoring_methods_LK_BallInfo_HH
20 
21 
22 // Unit headers
23 // #include <core/scoring/methods/LK_BallEnergy.hh>
24 
25 // // Package headers
26 // #include <core/scoring/methods/LK_BallEnergy.hh>
27 // #include <core/scoring/ScoringManager.hh>
28 // #include <core/scoring/NeighborList.hh>
29 // #include <core/scoring/EnergyGraph.hh>
30 // #include <core/scoring/etable/Etable.hh>
31 // #include <core/scoring/etable/count_pair/CountPairFunction.hh>
32 // #include <core/scoring/etable/count_pair/CountPairFactory.hh>
33 // #include <core/scoring/etable/count_pair/types.hh>
34 
35 // // Project headers
36 #include <core/pose/Pose.fwd.hh>
37 // #include <core/scoring/ScoreFunction.hh>
38 // #include <ObjexxFCL/formatted.o.hh>
40 // #include <core/conformation/ResidueFactory.hh>
41 // // #include <core/io/pdb/pose_io.hh> // HACK
42 // // #include <fstream> // HACK
43 
44 // #include <core/scoring/constraints/AngleConstraint.hh>
45 
46 // #include <core/options/util.hh> // HACK
47 
48 // #include <core/util/prof.hh>
49 // #include <core/util/tracer.hh>
50 #include <basic/datacache/CacheableData.hh>
51 
52 // #include <numeric/constants.hh>
53 // #include <numeric/xyz.functions.hh>
54 
55 // #include <utility/vector1.functions.hh> // HACK
56 namespace core {
57 namespace scoring {
58 namespace methods {
59 
60 /// @details Stores the internal coordinates of an ideal water position
61 class WaterBuilder {
62 public:
64  Vector const & water,
65  conformation::Residue const & rsd,
66  Size const atom1,
67  Size const atom2,
68  Size const atom3
69  );
70 
71  Vector
72  build( conformation::Residue const & rsd ) const;
73 
74 private:
79 };
80 
82 
83 
84 /// @details Holds the locations of ideal waters attached to the atoms of a Residue
85 class LKB_ResidueInfo; // fwd
87 
89 public:
90  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
91  virtual ~LKB_ResidueInfo();
93 
94 public:
95 
96  LKB_ResidueInfo( pose::Pose const & pose, conformation::Residue const & rsd );
97 
98  LKB_ResidueInfo( LKB_ResidueInfo const & src );
99 
101  clone() const;
102 
103  void
104  build_waters( conformation::Residue const & rsd );
105 
107  waters() const { return waters_; }
108 
109  bool
110  has_waters() const { return has_waters_; }
111 
112 
113 /////////////////////////////////////////////////////////////////////////////
114 // STATIC data
115 private:
116 /////////////////////////////////////////////////////////////////////////////
117 
118  typedef std::map< chemical::ResidueTypeCOP, utility::vector1< WaterBuilders > > WaterBuilderMap;
120 
121  void
122  initialize_residue_type( chemical::ResidueType const & rsd_type ) const;
123 
124 private:
127 
128 };
129 
131 
132 class LKB_ResiduesInfo : public basic::datacache::CacheableData {
133 public:
135 
136  LKB_ResiduesInfo( LKB_ResiduesInfo const & src );
137 
138  basic::datacache::CacheableDataOP
139  clone() const;
140 
141  Size
142  size() const { return residues_info_.size(); }
143 
144  LKB_ResidueInfo const &
145  operator[]( Size const index ) const { return *( residues_info_[ index ] ); }
146 
148  operator[]( Size const index ) { return *( residues_info_[ index ] ); }
149 
150  void
151  append( LKB_ResidueInfoOP rsd_info ) { residues_info_.push_back( rsd_info ); }
152 
153 private:
155 
156 };
157 
160 
163 
164 
165 
166 }
167 }
168 }
169 #endif