Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SurfaceParameters.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;
2 // rm-trailing-spaces:t -*-
3 // vi: set ts=2 noet:
4 // :noTabs=false:tabSize=4:indentSize=4:
5 //
6 // (c) Copyright Rosetta Commons Member Institutions.
7 // (c) This file is part of the Rosetta software suite and is made available
8 // under license.
9 // (c) The Rosetta software is developed by the contributing members of the
10 // Rosetta Commons.
11 // (c) For more information, see http://www.rosettacommons.org. Questions
12 // about this can be
13 // (c) addressed to University of Washington UW TechTransfer,
14 // email: license@u.washington.edu.
15 
16 /// @file SurfaceParameters.hh
17 /// @brief
18 /// @author Robin A Thottungal (rathottungal@gmail.com)
19 #ifndef INCLUDED_protocols_surface_docking_SurfaceParameters_hh
20 #define INCLUDED_protocols_surface_docking_SurfaceParameters_hh
21 
22 // Project header
23 #include <core/pose/datacache/CacheableDataType.hh> //dono if I need this
24 #include <basic/datacache/CacheableData.hh>
25 
26 // Utility headers
27 #include <utility/pointer/owning_ptr.hh>
28 #include <numeric/xyzVector.hh>
29 #include <core/types.hh>
30 #include <utility/vector1_bool.hh>
31 #include <utility/vector1.hh>
32 #include <numeric/xyz.functions.hh>
33 #include <numeric/xyz.io.hh>
34 
35 
36 // Utility Headers
37 #include <utility/pointer/ReferenceCount.hh>
38 #include <utility/vector1.fwd.hh>
39 #include <utility/exit.hh>
40 
41 
42 // C++ headers
43 #include <iostream>
44 #include <map>
45 #include <string>
46 
47 
48 // for storing plane equation, ax+by+cz+d=0
50 using namespace core;
51 
52 namespace protocols {
53 namespace surface_docking {
54 
55 //class SurfaceParameters: public utility::pointer::ReferenceCount {
56 
57 class SurfaceParameters: public basic::datacache::CacheableData {
58 
59 public:
60  ///@brief default constructor to initialize all values
61  SurfaceParameters(); //:
62 
64  std::string strSURFA1, std::string strSURFA2);
65 
66  // Require for CacheableData Copy ctor
67  // @details Copy constructors must copy all data, not just some...
68  SurfaceParameters( SurfaceParameters const & src );
69 
70  // Require for CacheableData, Leaving this makes this class abstract class
71  //~SurfaceParameters();
72 
73 
74  basic::datacache::CacheableDataOP
75  clone() const
76  {
77  return new SurfaceParameters( *this );
78  }
79 
80  void GenerateSurfaceParameters( Vector SurfCG );
81 
82  Vector CalcNormalVector ( Vector Apoint , Vector Bpoint , Vector Cpoint );
83 
84  Vector CalcAxisIntersect ( Vector point1 , Vector point2 , Vector Bvector ,
85  Vector Cvector );
86 
87  Plane GeneratePlane( Vector Apoint ,Vector Bpoint , Vector Cpoint );
88 
89 
90  Vector PlanePointIntersection
91  ( Plane plane_abcd , Vector point_outofplane , Vector normal_plane );
92 
93  //overloading to use in surfaceOrientMover
94  Vector PlanePointIntersection( Vector Point );
95 
96  Vector SplitSurfaceVectorString( std::string surfVectString );
97  // Need to write a print operator for the class
98 // Not a good idea keeping the members private, temporary fix
99 public:
100 
101  // Holds the xyz co-ordinates that form the AB and AC vector
105 
106  //string to hold each line that is used to write in the output pdb
110 
111  // A,B,C points of the unit cell, translated to the centroid of the surface
112  Vector A,B,C; // its xyz coordinates not a vector
113  // AB & AC Vector
114  Vector vecAB,vecAC;
115 
116  Vector SurfaceCG; //Centroid of the surface
117 
118  // Parameters that relates to the plane
122  Plane surfacePlane; // ax+by+cz+d=0
123 
124  // Vector along which the slide into surface need to occur
126 };
127 
128 } // namespace surface_docking
129 } // namespace protocols
130 
131 
132 #endif