# | Line 35 | Line 35 | |
---|---|---|
35 | * | |
36 | * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). | |
37 | * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). | |
38 | < | * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
39 | < | * [4] Vardeman & Gezelter, in progress (2009). |
38 | > | * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). |
39 | > | * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
40 | > | * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
41 | */ | |
42 | ||
43 | /** | |
# | Line 48 | Line 49 | |
49 | ||
50 | #ifndef MATH_QUATERNION_HPP | |
51 | #define MATH_QUATERNION_HPP | |
52 | + | #include "config.h" |
53 | + | #include <cmath> |
54 | ||
55 | #include "math/Vector3.hpp" | |
56 | #include "math/SquareMatrix.hpp" | |
# | Line 254 | Line 257 | namespace OpenMD{ | |
257 | return rotation angle from -PI to PI | |
258 | */ | |
259 | inline Real get_rotation_angle() const{ | |
260 | < | if( w < (Real)0.0 ) |
260 | > | if( w() < (Real)0.0 ) |
261 | return 2.0*atan2(-sqrt( x()*x() + y()*y() + z()*z() ), -w() ); | |
262 | else | |
263 | return 2.0*atan2( sqrt( x()*x() + y()*y() + z()*z() ), w() ); | |
# | Line 312 | Line 315 | namespace OpenMD{ | |
315 | c.z()); | |
316 | ||
317 | this->normalize(); // if "from" or "to" not unit, normalize quat | |
318 | < | w += 1.0f; // reducing angle to halfangle |
319 | < | if( w <= 1e-6 ) { // angle close to PI |
318 | > | w() += 1.0f; // reducing angle to halfangle |
319 | > | if( w() <= 1e-6 ) { // angle close to PI |
320 | if( ( from.z()*from.z() ) > ( from.x()*from.x() ) ) { | |
321 | < | this->data_[0] = w; |
321 | > | this->data_[0] = w(); |
322 | this->data_[1] = 0.0; //cross(from , Vector3d(1,0,0)) | |
323 | this->data_[2] = from.z(); | |
324 | this->data_[3] = -from.y(); | |
325 | } else { | |
326 | < | this->data_[0] = w; |
326 | > | this->data_[0] = w(); |
327 | this->data_[1] = from.y(); //cross(from, Vector3d(0,0,1)) | |
328 | this->data_[2] = -from.x(); | |
329 | this->data_[3] = 0.0; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |