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().