|
Mantid
|
SymmetryElementRotationGenerator inherits from SymmetryElementWithAxisGenerator, using its methods for determination of rotation axis and translations in case of screw axes. More...
#include <SymmetryElementFactory.h>
Public Member Functions | |
| bool | canProcess (const SymmetryOperation &operation) const override |
| Checks the trace and determinat of the matrix to determine if the matrix belongs to a rotation. More... | |
| SymmetryElement_sptr | generateElement (const SymmetryOperation &operation) const override |
| Generates an instance of SymmetryElementRotation with the corresponding symbol, axis, translation vector and rotation sense. More... | |
Public Member Functions inherited from Mantid::Geometry::AbstractSymmetryElementGenerator | |
| virtual bool | canProcess (const SymmetryOperation &operation) const =0 |
| Should return true if the generator can produce a valid SymmetryElement from the provided SymmetryOperation. More... | |
| virtual SymmetryElement_sptr | generateElement (const SymmetryOperation &operation) const =0 |
| Must generate a valid SymmetryElement from the given operation. More... | |
| virtual | ~AbstractSymmetryElementGenerator ()=default |
Protected Member Functions | |
| SymmetryElementRotation::RotationSense | determineRotationSense (const SymmetryOperation &operation, const V3R &rotationAxis) const |
| Determines the rotation sense according to the description in ITA 11.2. More... | |
| std::string | determineSymbol (const SymmetryOperation &operation) const override |
| Determines the Hermann-Mauguin symbol of the rotation-, rotoinversion- or screw-axis. More... | |
Protected Member Functions inherited from Mantid::Geometry::SymmetryElementWithAxisGenerator | |
| V3R | determineAxis (const Kernel::IntMatrix &matrix) const |
| Returns the symmetry axis for the given matrix. More... | |
| virtual std::string | determineSymbol (const SymmetryOperation &operation) const =0 |
| V3R | determineTranslation (const SymmetryOperation &operation) const |
| Returns the reduced vector of the operation. More... | |
SymmetryElementRotationGenerator inherits from SymmetryElementWithAxisGenerator, using its methods for determination of rotation axis and translations in case of screw axes.
Furthermore it determines the rotation sense and of course the Hermann-Mauguin symbol.
Definition at line 116 of file SymmetryElementFactory.h.
|
overridevirtual |
Checks the trace and determinat of the matrix to determine if the matrix belongs to a rotation.
Implements Mantid::Geometry::AbstractSymmetryElementGenerator.
Definition at line 188 of file SymmetryElementFactory.cpp.
References Mantid::Kernel::Matrix< T >::determinant(), Mantid::Geometry::SymmetryOperation::matrix(), and Mantid::Kernel::Matrix< T >::Trace().
|
protected |
Determines the rotation sense according to the description in ITA 11.2.
Definition at line 198 of file SymmetryElementFactory.cpp.
References Mantid::Kernel::Matrix< T >::determinant(), Mantid::Geometry::SymmetryOperation::matrix(), Mantid::Geometry::SymmetryElementRotation::Negative, Mantid::Geometry::SymmetryElementRotation::Positive, and Mantid::Kernel::Matrix< T >::setColumn().
Referenced by generateElement().
|
overrideprotectedvirtual |
Determines the Hermann-Mauguin symbol of the rotation-, rotoinversion- or screw-axis.
Implements Mantid::Geometry::SymmetryElementWithAxisGenerator.
Definition at line 221 of file SymmetryElementFactory.cpp.
References Mantid::Kernel::Matrix< T >::determinant(), Mantid::Geometry::SymmetryElementWithAxisGenerator::determineTranslation(), Mantid::Geometry::SymmetryOperation::matrix(), Mantid::Geometry::SymmetryOperation::order(), std::to_string(), and Mantid::Kernel::Matrix< T >::Trace().
Referenced by generateElement().
|
overridevirtual |
Generates an instance of SymmetryElementRotation with the corresponding symbol, axis, translation vector and rotation sense.
Implements Mantid::Geometry::AbstractSymmetryElementGenerator.
Definition at line 175 of file SymmetryElementFactory.cpp.
References Mantid::Geometry::SymmetryElementWithAxisGenerator::determineAxis(), determineRotationSense(), determineSymbol(), Mantid::Geometry::SymmetryElementWithAxisGenerator::determineTranslation(), and Mantid::Geometry::SymmetryOperation::matrix().