Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
protocols
surface_docking
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
49
typedef
utility::vector1< core::Real >
Plane
;
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
63
SurfaceParameters
(
std::string
strSURFA0,
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
102
Vector
SURFA0
;
103
Vector
SURFA1
;
104
Vector
SURFA2
;
105
106
//string to hold each line that is used to write in the output pdb
107
std::string
strSURFA0
;
108
std::string
strSURFA1
;
109
std::string
strSURFA2
;
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
119
Vector
surfaceNormalVec
;
120
Vector
unitsurfaceNormalVec
;
121
Vector
surfaceAntiNormalVec
;
122
Plane
surfacePlane
;
// ax+by+cz+d=0
123
124
// Vector along which the slide into surface need to occur
125
Vector
slideaxis
;
126
};
127
128
}
// namespace surface_docking
129
}
// namespace protocols
130
131
132
#endif
Generated on Sat Jun 1 2013 12:18:54 for Rosetta 3.5 by
1.8.4