45 #ifndef CLIPPER_ROTATION
46 #define CLIPPER_ROTATION
49 #include "clipper_types.h"
77 alpha_(alpha), beta_(beta), gamma_(gamma) {}
82 const ftype& alpha()
const {
return alpha_; }
83 const ftype& beta()
const {
return beta_; }
84 const ftype& gamma()
const {
return 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) {}
107 const ftype& alpha()
const {
return alpha_; }
108 const ftype& beta()
const {
return beta_; }
109 const ftype& gamma()
const {
return gamma_; }
112 ftype alpha_, beta_, gamma_;
131 omega_(omega), phi_(phi), kappa_(kappa) {}
132 const ftype& psi()
const {
return omega_; }
133 const ftype& omega()
const {
return omega_; }
134 const ftype& phi()
const {
return phi_; }
135 const ftype& kappa()
const {
return kappa_; }
138 ftype omega_, phi_, kappa_;
151 { (*this) =
euler.rotation(); }
160 : w_(w), x_(x), y_(y), z_(z) {}
161 const ftype& w()
const {
return w_; }
162 const ftype& x()
const {
return x_; }
163 const ftype& y()
const {
return y_; }
164 const ftype& z()
const {
return 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:182
Rotation class.
Definition: rotation.h:145
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
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
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
Euler_ccp4 euler_ccp4() const
return Euler_ccp4 angles
Definition: rotation.cpp:231
String extension with simple parsing methods.
Definition: clipper_types.h:64
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
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
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