45 #ifndef CLIPPER_ROTATION
46 #define CLIPPER_ROTATION
49 #include "clipper_types.h"
77 alpha_(alpha), beta_(beta), gamma_(gamma) {}
87 static void params(
int& r1,
int& r2,
int& r3,
int& s );
88 ftype alpha_, beta_, gamma_;
106 alpha_(alpha), beta_(beta), gamma_(gamma) {}
112 ftype alpha_, beta_, gamma_;
131 omega_(omega), phi_(phi), kappa_(kappa) {}
138 ftype omega_, phi_, kappa_;
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_;
Euler_ccp4()
constructor: null
Definition: rotation.h:103
static Rotation null()
return null rotation
Definition: rotation.h:179
Euler_ccp4 angle class.
Definition: rotation.h:100
const ftype & alpha() const
return alpha
Definition: rotation.h:82
const ftype & alpha() const
return alpha
Definition: rotation.h:107
const ftype & y() const
return y component
Definition: rotation.h:163
friend Rotation operator*(const Rotation &r1, const Rotation &r2)
combine two rotations
Definition: rotation.cpp:298
const ftype & gamma() const
return gamma
Definition: rotation.h:84
Rotation inverse() const
return inverse rotation
Definition: rotation.h:175
static const ftype & nan()
fast Util::nan() value
Definition: clipper_util.h:67
Rotation(const ftype &w, const ftype &x, const ftype &y, const ftype &z)
constructor: from components
Definition: rotation.h:159
const ftype & kappa() const
return kappa
Definition: rotation.h:135
ftype64 ftype
ftype definition for floating point representation
Definition: clipper_precision.h:58
const Rotation & norm()
normalise this quaternion
Definition: rotation.cpp:206
Polar_ccp4 angle class.
Definition: rotation.h:125
Euler(const ftype &alpha, const ftype &beta, const ftype &gamma)
constructor: from specified angles
Definition: rotation.h:76
Rotation class.
Definition: rotation.h:145
Euler_ccp4(const ftype &alpha, const ftype &beta, const ftype &gamma)
constructor: from specified angles
Definition: rotation.h:105
Mat33 matrix() const
return 3x3 matrix
Definition: rotation.cpp:268
const ftype & w() const
return w component
Definition: rotation.h:161
Rotation()
null constructor
Definition: rotation.h:148
String format() const
return formatted String representation
Definition: rotation.cpp:123
Euler< T > euler() const
< return Euler angles
Definition: rotation.h:165
const ftype & omega() const
return omega
Definition: rotation.h:133
String extension with simple parsing methods.
Definition: clipper_types.h:64
static bool is_nan(const ftype32 f)
fast Util::nan() test
Definition: clipper_util.h:82
Euler_ccp4 euler_ccp4() const
return Euler_ccp4 angles
Definition: rotation.cpp:231
Euler angle class.
Definition: rotation.h:71
ftype abs_angle() const
return absolute rotation angle
Definition: rotation.cpp:224
String format() const
return formatted String representation
Definition: rotation.cpp:139
const ftype & phi() const
return phi
Definition: rotation.h:134
const ftype & x() const
return x component
Definition: rotation.h:162
Rotation rotation() const
return rotation
Definition: rotation.cpp:102
const ftype & gamma() const
return gamma
Definition: rotation.h:109
String format() const
return formatted String representation
Definition: rotation.cpp:306
static Rotation zero()
return zero rotation
Definition: rotation.h:177
const ftype & beta() const
return beta
Definition: rotation.h:83
Rotation(const Euler< T > &euler)
constructor: from generic Euler
Definition: rotation.h:150
Polar_ccp4 polar_ccp4() const
return Polar_ccp4 angles
Definition: rotation.cpp:252
const ftype & beta() const
return beta
Definition: rotation.h:108
Polar_ccp4()
null constructor
Definition: rotation.h:128
bool is_null() const
test for null (uninitialised) rotation
Definition: rotation.h:181
Euler()
constructor: null
Definition: rotation.h:74
String format() const
return formatted String representation
Definition: rotation.cpp:142
Polar_ccp4(const ftype &omega, const ftype &phi, const ftype &kappa)
constructor: from specified angles
Definition: rotation.h:130
const ftype & psi() const
return omega
Definition: rotation.h:132
const ftype & z() const
return z component
Definition: rotation.h:164
EULERtype
Enumeration of Euler conventions.
Definition: rotation.h:186
3x3-matrix class
Definition: clipper_types.h:182