45 #ifndef CLIPPER_ROTATION
46 #define CLIPPER_ROTATION
49 #include "clipper_types.h"
87 static void params(
int& r1,
int& r2,
int& r3,
int& s );
88 ftype alpha_, beta_, gamma_;
112 ftype alpha_, beta_, gamma_;
138 ftype omega_, phi_, kappa_;
151 { (*this) =
euler.rotation(); }
160 : w_(
w), x_(
x), y_(
y), z_(
z) {}
185 enum EULERtype { EulerXYZr,EulerXYZs,EulerXYXr,EulerXYXs,
187 EulerXZXr,EulerXZXs,EulerXZYr,EulerXZYs,
188 EulerYZXr,EulerYZXs,EulerYZYr,EulerYZYs,
189 EulerYXYr,EulerYXYs,EulerYXZr,EulerYXZs,
190 EulerZXYr,EulerZXYs,EulerZXZr,EulerZXZs,
191 EulerZYZr,EulerZYZs,EulerZYXr,EulerZYXs };
193 ftype w_, x_, y_, z_;
Polar_ccp4 polar_ccp4() const
return Polar_ccp4 angles
Definition: rotation.cpp:252
3x3-matrix class
Definition: clipper_types.h:183
Rotation class.
Definition: rotation.h:145
const ftype & x() const
return x component
Definition: rotation.h:162
const ftype & w() const
return w component
Definition: rotation.h:161
const ftype & y() const
return y component
Definition: rotation.h:163
const ftype & beta() const
return beta
Definition: rotation.h:108
const ftype & phi() const
return phi
Definition: rotation.h:134
String format() const
return formatted String representation
Definition: rotation.cpp:306
String format() const
return formatted String representation
Definition: rotation.cpp:123
Euler_ccp4()
constructor: null
Definition: rotation.h:103
ftype64 ftype
ftype definition for floating point representation
Definition: clipper_precision.h:58
String format() const
return formatted String representation
Definition: rotation.cpp:142
const ftype & alpha() const
return alpha
Definition: rotation.h:82
const ftype & kappa() const
return kappa
Definition: rotation.h:135
Euler_ccp4(const ftype &alpha, const ftype &beta, const ftype &gamma)
constructor: from specified angles
Definition: rotation.h:105
friend Rotation operator*(const Rotation &r1, const Rotation &r2)
combine two rotations
Definition: rotation.cpp:298
EULERtype
Enumeration of Euler conventions.
Definition: rotation.h:186
Euler()
constructor: null
Definition: rotation.h:74
ftype abs_angle() const
return absolute rotation angle
Definition: rotation.cpp:224
Polar_ccp4()
null constructor
Definition: rotation.h:128
Polar_ccp4(const ftype &omega, const ftype &phi, const ftype &kappa)
constructor: from specified angles
Definition: rotation.h:130
Rotation(const ftype &w, const ftype &x, const ftype &y, const ftype &z)
constructor: from components
Definition: rotation.h:159
const ftype & gamma() const
return gamma
Definition: rotation.h:109
Euler angle class.
Definition: rotation.h:71
Rotation(const Euler< T > &euler)
constructor: from generic Euler
Definition: rotation.h:150
const Rotation & norm()
normalise this quaternion
Definition: rotation.cpp:206
static bool is_nan(const ftype32 f)
fast Util::nan() test
Definition: clipper_util.h:84
const ftype & gamma() const
return gamma
Definition: rotation.h:84
const ftype & beta() const
return beta
Definition: rotation.h:83
Euler_ccp4 euler_ccp4() const
return Euler_ccp4 angles
Definition: rotation.cpp:231
String extension with simple parsing methods.
Definition: clipper_types.h:65
Euler(const ftype &alpha, const ftype &beta, const ftype &gamma)
constructor: from specified angles
Definition: rotation.h:76
Rotation inverse() const
return inverse rotation
Definition: rotation.h:175
Euler< T > euler() const
< return Euler angles
Definition: rotation.h:165
Rotation()
null constructor
Definition: rotation.h:148
static const ftype & nan()
fast Util::nan() value
Definition: clipper_util.h:67
String format() const
return formatted String representation
Definition: rotation.cpp:139
const ftype & alpha() const
return alpha
Definition: rotation.h:107
Polar_ccp4 angle class.
Definition: rotation.h:125
static Rotation zero()
return zero rotation
Definition: rotation.h:177
Rotation rotation() const
return rotation
Definition: rotation.cpp:102
const ftype & omega() const
return omega
Definition: rotation.h:133
bool is_null() const
test for null (uninitialised) rotation
Definition: rotation.h:181
Euler_ccp4 angle class.
Definition: rotation.h:100
Mat33 matrix() const
return 3x3 matrix
Definition: rotation.cpp:268
const ftype & psi() const
return omega
Definition: rotation.h:132
const ftype & z() const
return z component
Definition: rotation.h:164