Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
XYZ_Func.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
11 /// @brief
12 
13 
14 #ifndef INCLUDED_core_scoring_constraints_XYZ_Func_hh
15 #define INCLUDED_core_scoring_constraints_XYZ_Func_hh
16 
18 
19 #include <core/types.hh>
20 
23 #include <core/id/AtomID.fwd.hh>
24 
25 //Utility Headers
26 
27 // C++ Headers
28 
29 namespace core {
30 namespace scoring {
31 namespace constraints {
32 
33 //////////////////////////////////////////////////////////////////////////////////
34 //////////////////////////////////////////////////////////////////////////////////
35 /// helper classes to reuse code
36 //////////////////////////////////////////////////////////////////////////////////
37 //////////////////////////////////////////////////////////////////////////////////
38 
39 /// just a simple class that takes an AtomID and returns a Vector (position)
40 class XYZ_Func {
41 public:
42  typedef id::AtomID AtomID;
45 
46 public:
47 
48  virtual
49  Vector const &
50  operator()( AtomID const & id ) const = 0;
51 
52 
53  virtual
54  Residue const &
55  residue( Size seqpos ) const = 0;
56 
57  virtual
58  ~XYZ_Func();
59 };
60 
61 
62 class ResidueXYZ : public XYZ_Func {
63 public:
64 
65  ResidueXYZ( Residue const & rsd_in );
66 
67  virtual
68  Vector const &
69  operator()( AtomID const & id ) const;
70 
71  virtual
72  Residue const &
73  residue( Size seqpos ) const;
74 
75  virtual
76  ~ResidueXYZ();
77 
78 private:
79  Residue const & rsd_;
80 
81 };
82 
83 class ResiduePairXYZ : public XYZ_Func {
84 public:
85 
86  ResiduePairXYZ( Residue const & rsd1_in, Residue const & rsd2_in );
87 
88  virtual
89  Vector const &
90  operator()( AtomID const & id ) const;
91 
92  virtual
93  Residue const &
94  residue( Size seqpos ) const;
95 
96  virtual
98 
99 private:
100  Residue const & rsd1_;
101  Residue const & rsd2_;
102 
103 };
104 
105 class ConformationXYZ : public XYZ_Func {
106 public:
107 
108  ConformationXYZ( Conformation const & conformation_in );
109 
110  virtual
111  Vector const &
112  operator()( AtomID const & id ) const;
113 
114  virtual
115  Residue const &
116  residue( Size seqpos ) const;
117 
118  virtual
120 
121 private:
123 
124 };
125 
126 // class BBTorsionXYZ : public ResidueXYZ {
127 //
128 // public:
129 //
130 // virtual
131 // ~BBTorsionXYZ;
132 //
133 // private:
134 // Residue const & rsd_;
135 // };
136 
137 
138 } // constraints
139 } // scoring
140 } // core
141 
142 #endif