ProSHADE  0.7.6.1 (AUG 2021)
Protein Shape Detection
ProSHADE_precomputedValues.cpp
Go to the documentation of this file.
1 
22 //==================================================== ProSHADE
24 
28 {
29  //================================================ Create the object with the pre-computed values
30  this->tetrahedronAxesVals = std::vector < std::vector < proshade_double > > {
31  { 3.0, 0.816496580927726, 0.000000000000000, -0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 1
32  { 3.0,-0.816496580927726, 0.000000000000000, -0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 2
33  { 3.0, 0.000000000000000, 0.816496580927726, 0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 3
34  { 3.0, 0.000000000000000, -0.816496580927726, 0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 4
35 
36  { 2.0, 0.000000000000000, 0.000000000000000, -1.000000000000000, M_PI, 0.0 }, // C2 axis 1
37  { 2.0,-0.707106781186547, 0.707106781186547, 0.000000000000000, M_PI, 0.0 }, // C2 axis 2
38  { 2.0, 0.707106781186547, 0.707106781186547, 0.000000000000000, M_PI, 0.0 }, // C2 axis 3
39  };
40 
41  //================================================ Done
42 
43 }
44 
48 {
49  //================================================ Delete the pre-computed values
50  for ( size_t axIt = 0; axIt < this->tetrahedronAxesVals.size(); axIt++ )
51  {
52  this->tetrahedronAxesVals.at(axIt).clear ( );
53  }
54  this->tetrahedronAxesVals.clear ( );
55 
56  //================================================ Done
57 
58 }
59 
68 proshade_double ProSHADE_internal_precomputedVals::tetrahedronAxes::getValue ( proshade_unsign axis, proshade_unsign element )
69 {
70  //================================================ Done
71  return ( this->tetrahedronAxesVals.at(axis).at(element) );
72 
73 }
74 
80 {
81  //================================================ Done
82  return ( static_cast< proshade_unsign > ( this->tetrahedronAxesVals.size() ) );
83 
84 }
85 
89 {
90  //================================================ Create the object with the pre-computed values
91  this->octahedronAxesVals = std::vector < std::vector < proshade_double > > {
92  { 4.0, 1.000000000000000, 0.000000000000000, 0.000000000000000, (2.0 * M_PI) / 4.0, 0.0 }, // C4 axis 1
93  { 4.0, 0.000000000000000, 1.000000000000000, 0.000000000000000, (2.0 * M_PI) / 4.0, 0.0 }, // C4 axis 2
94  { 4.0, 0.000000000000000, 0.000000000000000, 1.000000000000000, (2.0 * M_PI) / 4.0, 0.0 }, // C4 axis 3
95 
96  { 3.0, 0.577350269189626, 0.577350269189626, 0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 1
97  { 3.0,-0.577350269189626, 0.577350269189626, 0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 2
98  { 3.0, 0.577350269189626, 0.577350269189626, -0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 3
99  { 3.0,-0.577350269189626, 0.577350269189626, -0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 4
100 
101  { 2.0, 0.707106781186547, 0.707106781186547, 0.000000000000000, M_PI, 0.0 }, // C2 axis 1
102  { 2.0, 0.000000000000000, 0.707106781186547, 0.707106781186547, M_PI, 0.0 }, // C2 axis 2
103  { 2.0, 0.707106781186547, 0.000000000000000, 0.707106781186547, M_PI, 0.0 }, // C2 axis 3
104  { 2.0,-0.707106781186547, 0.707106781186547, 0.000000000000000, M_PI, 0.0 }, // C2 axis 4
105  { 2.0,-0.707106781186547, 0.000000000000000, 0.707106781186547, M_PI, 0.0 }, // C2 axis 5
106  { 2.0, 0.000000000000000, 0.707106781186547, -0.707106781186547, M_PI, 0.0 } // C2 axis 6
107  };
108 
109  //================================================ Done
110 
111 }
112 
116 {
117  //================================================ Delete the pre-computed values
118  for ( size_t axIt = 0; axIt < this->octahedronAxesVals.size(); axIt++ )
119  {
120  this->octahedronAxesVals.at(axIt).clear ( );
121  }
122  this->octahedronAxesVals.clear ( );
123 
124  //================================================ Done
125 
126 }
127 
136 proshade_double ProSHADE_internal_precomputedVals::octahedronAxes::getValue ( proshade_unsign axis, proshade_unsign element )
137 {
138  //================================================ Done
139  return ( this->octahedronAxesVals.at(axis).at(element) );
140 
141 }
142 
148 {
149  //================================================ Done
150  return ( static_cast< proshade_unsign > ( this->octahedronAxesVals.size() ) );
151 
152 }
153 
154 
158 {
159  //================================================ Create the object with the pre-computed values
160  this->icosahedronAxesVals = std::vector < std::vector < proshade_double > > {
161  { 5.0, 0.850650808352040, 0.525731112119134, 0.000000000000000, (2.0 * M_PI) / 5.0, 0.0 }, // C5 axis 1
162  { 5.0, 0.850650808352040, -0.525731112119134, 0.000000000000000, (2.0 * M_PI) / 5.0, 0.0 }, // C5 axis 2
163  { 5.0, 0.525731112119134, 0.000000000000000, 0.850650808352040, (2.0 * M_PI) / 5.0, 0.0 }, // C5 axis 3
164  { 5.0, 0.525731112119134, 0.000000000000000, -0.850650808352040, (2.0 * M_PI) / 5.0, 0.0 }, // C5 axis 4
165  { 5.0, 0.000000000000000, 0.850650808352040, 0.525731112119134, (2.0 * M_PI) / 5.0, 0.0 }, // C5 axis 5
166  { 5.0, 0.000000000000000, 0.850650808352040, -0.525731112119134, (2.0 * M_PI) / 5.0, 0.0 }, // C5 axis 6
167 
168  { 3.0, 0.577350269189626, 0.577350269189626, 0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 1
169  { 3.0, 0.577350269189626, 0.577350269189626, -0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 2
170  { 3.0, 0.577350269189626, -0.577350269189626, 0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 3
171  { 3.0, 0.577350269189626, -0.577350269189626, -0.577350269189626, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 4
172  { 3.0, 0.356822089773090, 0.934172358962716, 0.000000000000000, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 5
173  { 3.0,-0.356822089773090, 0.934172358962716, 0.000000000000000, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 6
174  { 3.0, 0.934172358962716, 0.000000000000000, 0.356822089773090, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 7
175  { 3.0, 0.934172358962716, 0.000000000000000, -0.356822089773090, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 8
176  { 3.0, 0.000000000000000, 0.356822089773090, 0.934172358962716, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 9
177  { 3.0, 0.000000000000000, 0.356822089773090, -0.934172358962716, (2.0 * M_PI) / 3.0, 0.0 }, // C3 axis 10
178 
179  { 2.0, 0.500000000000000, 0.809016994374947, 0.309016994374947, M_PI, 0.0 }, // C2 axis 1
180  { 2.0, 0.309016994374947, 0.500000000000000, 0.809016994374947, M_PI, 0.0 }, // C2 axis 2
181  { 2.0, 0.809016994374947, 0.309016994374947, 0.500000000000000, M_PI, 0.0 }, // C2 axis 3
182  { 2.0, 0.809016994374947, 0.309016994374947, -0.500000000000000, M_PI, 0.0 }, // C2 axis 4
183  { 2.0, 0.309016994374947, 0.500000000000000, -0.809016994374947, M_PI, 0.0 }, // C2 axis 5
184  { 2.0, 0.500000000000000, 0.809016994374947, -0.309016994374947, M_PI, 0.0 }, // C2 axis 6
185  { 2.0, 0.809016994374947, -0.309016994374947, 0.500000000000000, M_PI, 0.0 }, // C2 axis 7
186  { 2.0, 0.309016994374947, -0.500000000000000, 0.809016994374947, M_PI, 0.0 }, // C2 axis 8
187  { 2.0, 0.500000000000000, -0.809016994374947, 0.309016994374947, M_PI, 0.0 }, // C2 axis 9
188  { 2.0, 0.500000000000000, -0.809016994374947, -0.309016994374947, M_PI, 0.0 }, // C2 axis 10
189  { 2.0, 0.309016994374947, -0.500000000000000, -0.809016994374947, M_PI, 0.0 }, // C2 axis 11
190  { 2.0, 0.809016994374947, -0.309016994374947, -0.500000000000000, M_PI, 0.0 }, // C2 axis 12
191  { 2.0, 0.500000000000000, 0.809016994374947, -0.309016994374947, M_PI, 0.0 }, // C2 axis 13
192  { 2.0, 0.000000000000000, 1.000000000000000, 0.000000000000000, M_PI, 0.0 }, // C2 axis 14
193  { 2.0, 0.500000000000000, 0.809016994374947, 0.309016994374947, M_PI, 0.0 } // C2 axis 15
194  };
195 
196  //================================================ Done
197 
198 }
199 
203 {
204  //================================================ Delete the pre-computed values
205  for ( size_t axIt = 0; axIt < this->icosahedronAxesVals.size(); axIt++ )
206  {
207  this->icosahedronAxesVals.at(axIt).clear ( );
208  }
209  this->icosahedronAxesVals.clear ( );
210 
211  //================================================ Done
212 
213 }
214 
223 proshade_double ProSHADE_internal_precomputedVals::icosahedronAxes::getValue ( proshade_unsign axis, proshade_unsign element )
224 {
225  //================================================ Done
226  return ( this->icosahedronAxesVals.at(axis).at(element) );
227 
228 }
229 
235 {
236  //================================================ Done
237  return ( static_cast< proshade_unsign > ( this->icosahedronAxesVals.size() ) );
238 
239 }
ProSHADE_internal_precomputedVals::icosahedronAxes::getValue
proshade_double getValue(proshade_unsign axis, proshade_unsign element)
Accessor for the icosahedronAxesVals variable.
Definition: ProSHADE_precomputedValues.cpp:223
ProSHADE_precomputedValues.hpp
This header file contains the pre-computed values in classes that would take too long to obtain in ru...
ProSHADE_internal_precomputedVals::octahedronAxes::~octahedronAxes
~octahedronAxes()
Destructor of the octahedronAxes class.
Definition: ProSHADE_precomputedValues.cpp:115
ProSHADE_internal_precomputedVals::icosahedronAxes::icosahedronAxes
icosahedronAxes()
Constructor of the icosahedronAxes class.
Definition: ProSHADE_precomputedValues.cpp:157
ProSHADE_internal_precomputedVals::octahedronAxes::getValue
proshade_double getValue(proshade_unsign axis, proshade_unsign element)
Accessor for the octahedronAxesVals variable.
Definition: ProSHADE_precomputedValues.cpp:136
ProSHADE_internal_precomputedVals::icosahedronAxes::~icosahedronAxes
~icosahedronAxes()
Destructor of the icosahedronAxes class.
Definition: ProSHADE_precomputedValues.cpp:202
ProSHADE_internal_precomputedVals::tetrahedronAxes::getValue
proshade_double getValue(proshade_unsign axis, proshade_unsign element)
Accessor for the tetrahedronAxesVals variable.
Definition: ProSHADE_precomputedValues.cpp:68
ProSHADE_internal_precomputedVals::tetrahedronAxes::tetrahedronAxes
tetrahedronAxes()
Constructor of the tetrahedronAxes class.
Definition: ProSHADE_precomputedValues.cpp:27
ProSHADE_internal_precomputedVals::tetrahedronAxes::getNoAxes
proshade_unsign getNoAxes()
Accessor for the tetrahedronAxesVals variable number of axes.
Definition: ProSHADE_precomputedValues.cpp:79
ProSHADE_internal_precomputedVals::tetrahedronAxes::~tetrahedronAxes
~tetrahedronAxes()
Destructor of the tetrahedronAxes class.
Definition: ProSHADE_precomputedValues.cpp:47
ProSHADE_internal_precomputedVals::octahedronAxes::getNoAxes
proshade_unsign getNoAxes()
Accessor for the octahedronAxesVals variable number of axes.
Definition: ProSHADE_precomputedValues.cpp:147
ProSHADE_internal_precomputedVals::icosahedronAxes::getNoAxes
proshade_unsign getNoAxes()
Accessor for the octahedronAxesVals variable number of axes.
Definition: ProSHADE_precomputedValues.cpp:234
ProSHADE_internal_precomputedVals::octahedronAxes::octahedronAxes
octahedronAxes()
Constructor of the octahedronAxes class.
Definition: ProSHADE_precomputedValues.cpp:88