15 #ifndef BORNAGAIN_CORE_SCATTERING_ROTATIONS_H
16 #define BORNAGAIN_CORE_SCATTERING_ROTATIONS_H
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.
virtual void visit(const BasicLattice *)
Base class for tree-like structures containing parameterized objects.
Pure virtual interface for rotations.
virtual IRotation * clone() const =0
virtual IRotation * createInverse() const =0
Returns a new IRotation object that is the current object's inverse.
IRotation(const NodeMeta &meta, const std::vector< double > &PValues)
static IRotation * createIdentity()
kvector_t transformed(const kvector_t &v) const
virtual bool isIdentity() const
Returns true if rotation matrix is identity matrix (no rotations)
virtual Transform3D getTransform3D() const =0
Returns transformation.
static IRotation * createRotation(const Transform3D &transform)
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.
IdentityRotation * clone() const
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.
RotationEuler(const std::vector< double > P)
RotationEuler * clone() const
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 * clone() const
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 * clone() const
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 * clone() const
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.