Mantid
Loading...
Searching...
No Matches
CyclicGroup.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2014 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
10#include "MantidGeometry/DllConfig.h"
11
12#include <memory>
13#include <set>
14
15namespace Mantid {
16namespace Geometry {
17
67class MANTID_GEOMETRY_DLL CyclicGroup : public Group {
68public:
69 CyclicGroup(const std::string &symmetryOperationString);
70 CyclicGroup(const SymmetryOperation &symmetryOperation);
71
72protected:
73 std::vector<SymmetryOperation> generateAllOperations(const SymmetryOperation &operation) const;
74};
75
76using CyclicGroup_sptr = std::shared_ptr<CyclicGroup>;
77using CyclicGroup_const_sptr = std::shared_ptr<const CyclicGroup>;
78
79} // namespace Geometry
80} // namespace Mantid
A cyclic group G has the property that it can be represented by powers of one symmetry operation S of...
Definition: CyclicGroup.h:67
The class Group represents a set of symmetry operations (or symmetry group).
Definition: Group.h:135
Crystallographic symmetry operations are composed of a rotational component, which is represented by ...
std::shared_ptr< CyclicGroup > CyclicGroup_sptr
Definition: CyclicGroup.h:76
std::shared_ptr< const CyclicGroup > CyclicGroup_const_sptr
Definition: CyclicGroup.h:77
Helper class which provides the Collimation Length for SANS instruments.