15 #ifndef BORNAGAIN_CORE_SCATTERING_ROTATIONS_H
16 #define BORNAGAIN_CORE_SCATTERING_ROTATIONS_H
47 bool zInvariant()
const;
82 double getAngle()
const {
return m_angle; }
87 const double& m_angle;
103 double getAngle()
const {
return m_angle; }
108 const double& m_angle;
124 double getAngle()
const {
return m_angle; }
129 const double& m_angle;
145 double getAlpha()
const {
return m_alpha; }
146 double getBeta()
const {
return m_beta; }
147 double getGamma()
const {
return m_gamma; }
152 double m_alpha, m_beta, m_gamma;
Defines and implements the standard mix-in ICloneable.
IRotation * createProduct(const IRotation &left, const IRotation &right)
Returns concatenated rotation (first right, then left).
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Visitor interface to visit ISample objects.
Base class for tree-like structures containing parameterized objects.
Pure virtual interface for rotations.
virtual IRotation * createInverse() const =0
Returns a new IRotation object that is the current object's inverse.
virtual bool isIdentity() const
Returns true if rotation matrix is identity matrix (no rotations)
virtual Transform3D getTransform3D() const =0
Returns transformation.
The identity rotation, which leaves everything in place.
IdentityRotation * createInverse() const
Returns a new IRotation object that is the current object's inverse.
Transform3D getTransform3D() const
Returns transformation.
void accept(INodeVisitor *visitor) const
Calls the INodeVisitor's visit method.
bool isIdentity() const
Returns true if rotation matrix is identity matrix (no rotations)
A sequence of rotations about the z-x'-z'' axes.
Transform3D getTransform3D() const
Returns transformation.
void accept(INodeVisitor *visitor) const
Calls the INodeVisitor's visit method.
IRotation * createInverse() const
Returns a new IRotation object that is the current object's inverse.
A rotation about the x axis.
RotationX * createInverse() const
Returns a new IRotation object that is the current object's inverse.
Transform3D getTransform3D() const
Returns transformation.
void accept(INodeVisitor *visitor) const
Calls the INodeVisitor's visit method.
RotationX(const std::vector< double > P)
Constructor of rotation around x-axis.
A rotation about the y axis.
void accept(INodeVisitor *visitor) const
Calls the INodeVisitor's visit method.
Transform3D getTransform3D() const
Returns transformation.
RotationY * createInverse() const
Returns a new IRotation object that is the current object's inverse.
RotationY(const std::vector< double > P)
Constructor of rotation around y-axis.
A rotation about the z axis.
void accept(INodeVisitor *visitor) const
Calls the INodeVisitor's visit method.
RotationZ * createInverse() const
Returns a new IRotation object that is the current object's inverse.
Transform3D getTransform3D() const
Returns transformation.
RotationZ(const std::vector< double > P)
Constructor of rotation around z-axis.