Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VirtualCoordinates.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 /// @brief Symmetry data container
14 /// @file core/conformation/symmetry/SymmData.hh
15 /// @author Ingemar Andre
16 
17 
18 #ifndef INCLUDED_core_conformation_symmetry_VirtualCoordinates_hh
19 #define INCLUDED_core_conformation_symmetry_VirtualCoordinates_hh
20 
21 // Utility headers
22 #include <utility/pointer/owning_ptr.hh>
23 #include <utility/pointer/ReferenceCount.hh>
24 #include <core/types.hh>
25 #include <numeric/xyzVector.hh>
26 #include <numeric/xyzMatrix.hh>
27 
28 // C++ headers
29 #include <string>
30 #include <vector>
31 
32 namespace core {
33 namespace conformation {
34 namespace symmetry {
35 
37 {
38 
39  public:
40 
42 
43  /// @brief copy constructor
45 
46 // {
47 // axis_x_ = src.axis_x_;
48 // axis_y_ = src.axis_y_;
49 // axis_origin_ = src.axis_origin_;
50 // }
51 
53  operator=( VirtualCoordinates const & src ) {
54  axis_x_ = src.axis_x_;
55  axis_y_ = src.axis_y_;
57  return *this;
58  }
59 
61 
62  void
64  {
65  axis_x_.push_back( vector );
66  }
67 
68  void
70  {
71  axis_y_.push_back( vector );
72  }
73 
74  void
76  {
77  axis_origin_.push_back( vector );
78  }
79 
80  void
84  {
85  push_back_x( x );
86  push_back_y( y );
87  push_back_origin( origin );
88  }
89 
92  {
93  assert( axis_y_.size() >= num );
94  return axis_x_[num-1];
95 
96  }
97 
100  {
101  assert( axis_y_.size() >= num );
102  return axis_y_[num-1];
103  }
104 
107  {
108  assert( axis_y_.size() >= num );
109  return axis_origin_[num-1];
110  }
111 
112  bool
114  {
115  if ( axis_x_.size() == axis_y_.size() && axis_x_.size() == axis_origin_.size() ) return true;
116  else return false;
117  }
118 
119  Size
121  {
122  assert( kosher() );
123  return axis_x_.size();
124  }
125 
126 
127  void
128  add_coordinate_from_string( std::vector< std::string > coords,
129  core::Size coord_start=2 );
130 
131 
132  private:
133 
134  std::vector < numeric::xyzVector< core::Real> > axis_x_;
135  std::vector < numeric::xyzVector< core::Real> > axis_y_;
136  std::vector < numeric::xyzVector< core::Real> > axis_origin_;
137 };
138 
139 } // symmetry
140 } // conformation
141 } // core
142 #endif