41 if (axis ==
V3R(0, 0, 0)) {
42 throw std::invalid_argument(
"Axis cannot be (0,0,0).");
73 return std::make_shared<SymmetryElementTranslation>(
m_translation);
SymmetryElementIdentity()
SymmetryElement_sptr clone() const override
Returns a clone of the identity element.
SymmetryElement_sptr clone() const override
Returns a clone of the inversion element.
SymmetryElementInversion(const V3R &inversionPoint=V3R(0, 0, 0))
Constructor with inversion point, default is (0,0,0).
SymmetryElementMirror(const std::string &symbol, const V3R &axis, const V3R &translation=V3R(0, 0, 0))
Constructor for mirror planes.
SymmetryElement_sptr clone() const override
Returns a clone of the mirror plane.
SymmetryElementRotation(const std::string &symbol, const V3R &axis, const V3R &translation=V3R(0, 0, 0), const RotationSense &rotationSense=Positive)
Constructor for rotation-,rotoinversion- and screw-axes.
SymmetryElement_sptr clone() const override
Returns a clone of the symmetry element.
RotationSense m_rotationSense
SymmetryElementTranslation(const V3R &translation)
Constructor for translation element, requires translation vector.
SymmetryElement_sptr clone() const override
Returns a clone of the translation.
SymmetryElementWithAxis does not represent any symmetry element directly.
void setAxis(const V3R &axis)
Sets the axis, throws std::invalid_argument if the axis is (0,0,0).
SymmetryElementWithAxis(const std::string &symbol, const V3R &axis, const V3R &translation)
Constructor for SymmetryElementWithAxis.
SymmetryElement is an interface for representing symmetry elements that occur for example in space an...
SymmetryElement(std::string symbol)
Constructor with symbol argument.
std::shared_ptr< SymmetryElement > SymmetryElement_sptr